From 32d672fd7244ee3903f9d248d7f4b94dc9ac184e Mon Sep 17 00:00:00 2001 From: MohitMaliFtechiz Date: Wed, 8 Jun 2022 14:18:41 +0530 Subject: [PATCH 1/4] merging fixes with develop --- .github/workflows/coverage.yml | 5 + .github/workflows/nightly.yml | 6 +- .github/workflows/pull_request.yml | 10 ++ .github/workflows/release.yml | 5 + app/build.gradle.kts | 15 +- app/detekt_baseline.xml | 16 +- app/src/androidTest/java/DebugFunctions.kt | 2 +- .../org/kiwix/kiwixmobile/BaseActivityTest.kt | 2 +- .../kiwix/kiwixmobile/testutils/Matcher.kt | 4 +- app/src/main/AndroidManifest.xml | 6 +- .../kiwix/kiwixmobile/intro/IntroFragment.kt | 18 ++- .../kiwixmobile/language/LanguageFragment.kt | 8 +- .../LocalFileTransferFragment.kt | 3 +- .../localFileTransfer/PeerGroupHandshake.kt | 3 +- .../localFileTransfer/WifiDirectManager.kt | 65 ++++---- .../library/LocalLibraryFragment.kt | 10 +- .../library/OnlineLibraryFragment.kt | 27 ++-- .../settings/KiwixPrefsFragment.kt | 5 +- .../HotspotNotificationManager.kt | 21 +-- .../zim_manager/ZimManageViewModel.kt | 3 +- .../layout/fragment_destination_download.xml | 3 +- .../layout/fragment_destination_library.xml | 1 + buildSrc/build.gradle.kts | 9 +- buildSrc/src/main/kotlin/Versions.kt | 6 +- .../kotlin/plugin/AllProjectConfigurer.kt | 32 ++-- config/detekt/detekt.yml | 150 +++--------------- core/build.gradle.kts | 27 +++- core/detekt_baseline.xml | 38 +++-- core/src/main/AndroidManifest.xml | 3 +- .../core/base/adapter/BaseViewHolder.kt | 8 +- .../kiwixmobile/core/dao/NewBookmarksDao.kt | 11 +- .../kiwix/kiwixmobile/core/data/Repository.kt | 3 +- .../core/di/modules/NetworkModule.kt | 8 +- .../fetch/FetchDownloadNotificationManager.kt | 2 + .../kiwixmobile/core/error/ErrorActivity.kt | 7 +- .../core/extensions/BookExtensions.kt | 6 +- .../kiwixmobile/core/help/HelpFragment.kt | 12 +- .../kiwixmobile/core/main/AddNoteDialog.kt | 12 +- .../kiwixmobile/core/main/CoreSearchWidget.kt | 2 + .../core/main/KiwixTextToSpeech.kt | 23 +-- .../kiwixmobile/core/main/KiwixWebView.kt | 8 +- .../kiwixmobile/core/page/PageFragment.kt | 18 ++- .../effects/ShowDeleteBookmarksDialog.kt | 6 +- .../page/history/viewmodel/HistoryState.kt | 6 +- .../kiwixmobile/core/search/SearchFragment.kt | 13 +- .../kiwixmobile/core/utils/DimenUtils.kt | 8 +- .../core/utils/ExternalLinkOpener.kt | 3 +- .../kiwixmobile/core/utils/LanguageUtils.kt | 21 ++- .../core/utils/dialog/KiwixDialog.kt | 30 ++-- .../kiwixmobile/core/utils/files/FileUtils.kt | 8 +- .../kiwixmobile/core/zim_manager/KiloByte.kt | 10 +- .../fileselect_view/ArticleCount.kt | 3 +- .../strings.xml | 0 .../core/downloader/ChunkUtilsTest.kt | 6 +- .../core/utils/NetworkUtilsTest.kt | 15 +- .../kiwixmobile/core/utils/ServerUtilsTest.kt | 2 +- .../core/utils/files/FileSearchTest.kt | 3 +- custom/build.gradle.kts | 2 +- custom/src/main/AndroidManifest.xml | 6 +- .../custom/main/CustomReaderFragment.kt | 8 +- gradle/wrapper/gradle-wrapper.properties | 6 +- lintConfig.xml | 18 ++- 62 files changed, 435 insertions(+), 362 deletions(-) rename core/src/main/res/{values-b+be+tarask => values-b+be+tarask+old}/strings.xml (100%) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 94155e7c3..2dd52d6a6 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -24,6 +24,11 @@ jobs: with: fetch-depth: 1 + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + - name: create instrumentation coverage uses: ReactiveCircus/android-emulator-runner@v2.23.0 env: diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index e431882fa..735d72303 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -44,6 +44,11 @@ jobs: with: fetch-depth: 1 + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + - name: Install NDK run: echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;22.0.7026061" --sdk_root=${ANDROID_SDK_ROOT} @@ -70,4 +75,3 @@ jobs: mkdir $DATE cp $UNIVERSAL_DEBUG_APK $DATE scp -P 30022 -vrp -i ssh_key -o StrictHostKeyChecking=no $DATE ci@master.download.kiwix.org:/data/download/nightly/ - diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 184d11048..4fe14f28d 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -13,6 +13,11 @@ jobs: with: fetch-depth: 1 + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + - name: Static Analysis run: ./gradlew ktlintCheck detekt app:lintDebug custom:lintCustomexampleDebug @@ -34,6 +39,11 @@ jobs: with: fetch-depth: 1 + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + - name: Install NDK run: echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;22.0.7026061" --sdk_root=${ANDROID_SDK_ROOT} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 431d58787..78701ba78 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,6 +17,11 @@ jobs: steps: - uses: actions/checkout@v1 + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + - name: Decrypt files env: keystore: ${{ secrets.keystore }} diff --git a/app/build.gradle.kts b/app/build.gradle.kts index db44ea235..9b9db8b5a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -30,8 +30,8 @@ fun generateVersionName() = "${ext["versionMajor"]}.${ext["versionMinor"]}.${ext fun generateVersionCode() = 20 * 10000 + - ((ext["versionMajor"] as Int) * 10000) + - ((ext["versionMinor"] as Int) * 100) + + ext["versionMajor"] as Int * 10000 + + ext["versionMinor"] as Int * 100 + ext["versionPatch"] as Int val apkPrefix get() = System.getenv("TAG") ?: "dev" @@ -45,7 +45,6 @@ android { versionCode = generateVersionCode() versionName = generateVersionName() } - lintOptions { isCheckDependencies = true } @@ -78,11 +77,11 @@ android { } play { - isEnabled = true - serviceAccountCredentials = file("../google.json") - track = "alpha" - releaseStatus = "draft" - resolutionStrategy = "fail" + enabled.set(true) + serviceAccountCredentials.set(file("../google.json")) + track.set("alpha") + releaseStatus.set(com.github.triplet.gradle.androidpublisher.ReleaseStatus.DRAFT) + resolutionStrategy.set(com.github.triplet.gradle.androidpublisher.ResolutionStrategy.FAIL) } dependencies { diff --git a/app/detekt_baseline.xml b/app/detekt_baseline.xml index 2c43a15d6..cf7dd6549 100644 --- a/app/detekt_baseline.xml +++ b/app/detekt_baseline.xml @@ -1,19 +1,19 @@ - + - - + + EmptyFunctionBlock:None.kt$None${ } EmptyFunctionBlock:SimplePageChangeListener.kt$SimplePageChangeListener${ } - LongParameterList:ZimManageViewModel.kt$ZimManageViewModel$( booksOnFileSystem: List<BookOnDisk>, activeDownloads: List<DownloadModel>, allLanguages: List<Language>, libraryNetworkEntity: LibraryNetworkEntity, filter: String, fileSystemState: FileSystemState ) + LongParameterList:ZimManageViewModel.kt$ZimManageViewModel$( booksOnFileSystem: List<BookOnDisk>, activeDownloads: List<DownloadModel>, allLanguages: List<Language>, libraryNetworkEntity: LibraryNetworkEntity, filter: String, fileSystemState: FileSystemState ) LongParameterList:ZimManageViewModel.kt$ZimManageViewModel$( private val downloadDao: FetchDownloadDao, private val bookDao: NewBookDao, private val languageDao: NewLanguagesDao, private val storageObserver: StorageObserver, private val kiwixService: KiwixService, private val context: Application, private val connectivityBroadcastReceiver: ConnectivityBroadcastReceiver, private val bookUtils: BookUtils, private val fat32Checker: Fat32Checker, private val defaultLanguageProvider: DefaultLanguageProvider, private val dataSource: DataSource, private val connectivityManager: ConnectivityManager, private val sharedPreferenceUtil: SharedPreferenceUtil ) MagicNumber:LibraryListItem.kt$LibraryListItem.LibraryDownloadItem$1000L MagicNumber:PeerGroupHandshake.kt$PeerGroupHandshake$15000 MagicNumber:ShareFiles.kt$ShareFiles$24 MagicNumber:ZimManageViewModel.kt$ZimManageViewModel$5 MagicNumber:ZimManageViewModel.kt$ZimManageViewModel$500 - NestedBlockDepth:LocalLibraryFragment.kt$LocalLibraryFragment$checkPermissions - NestedBlockDepth:PeerGroupHandshake.kt$PeerGroupHandshake$readHandshakeAndExchangeMetaData - NestedBlockDepth:ReceiverHandShake.kt$ReceiverHandShake$exchangeFileTransferMetadata + NestedBlockDepth:LocalLibraryFragment.kt$LocalLibraryFragment$private fun checkPermissions() + NestedBlockDepth:PeerGroupHandshake.kt$PeerGroupHandshake$private fun readHandshakeAndExchangeMetaData(): InetAddress? + NestedBlockDepth:ReceiverHandShake.kt$ReceiverHandShake$override fun exchangeFileTransferMetadata(inputStream: InputStream, outputStream: OutputStream) PackageNaming:AvailableSpaceCalculator.kt$package org.kiwix.kiwixmobile.zim_manager.library_view PackageNaming:ConnectivityBroadcastReceiver.kt$package org.kiwix.kiwixmobile.zim_manager PackageNaming:DefaultLanguageProvider.kt$package org.kiwix.kiwixmobile.zim_manager @@ -46,5 +46,5 @@ TooGenericExceptionThrown:LibraryViewHolder.kt$LibraryViewHolder.LibraryBookViewHolder$throw RuntimeException("impossible invalid state: ${item.fileSystemState}") TooGenericExceptionThrown:ZimManageViewModel.kt$ZimManageViewModel$throw RuntimeException("Impossible state") VariableNaming:PeerGroupHandshake.kt$PeerGroupHandshake$private val HANDSHAKE_MESSAGE = "Request Kiwix File Sharing" - + diff --git a/app/src/androidTest/java/DebugFunctions.kt b/app/src/androidTest/java/DebugFunctions.kt index a90474d25..d514354cd 100644 --- a/app/src/androidTest/java/DebugFunctions.kt +++ b/app/src/androidTest/java/DebugFunctions.kt @@ -108,4 +108,4 @@ private fun resourceId(view: View) = if (view.id > 0 && view.resources != null) " id:${view.resources.getResourceName(view.id)}" else "" -private fun numSpaces(marginOffset: Int) = (0..marginOffset).fold("", { acc, _ -> "$acc-" }) +private fun numSpaces(marginOffset: Int) = (0..marginOffset).fold("") { acc, _ -> "$acc-" } diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/BaseActivityTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/BaseActivityTest.kt index 6fdb17461..8e98056ac 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/BaseActivityTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/BaseActivityTest.kt @@ -48,7 +48,7 @@ abstract class BaseActivityTest { getInstrumentation().targetContext.applicationContext } - inline fun activityTestRule( + protected inline fun activityTestRule( noinline beforeActivityAction: (() -> Unit)? = null ) = object : ActivityTestRule(T::class.java) { diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/testutils/Matcher.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/testutils/Matcher.kt index 88c5e92b9..56b375b7c 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/testutils/Matcher.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/testutils/Matcher.kt @@ -40,8 +40,8 @@ class Matcher { public override fun matchesSafely(view: View): Boolean { val parent = view.parent return parent is ViewGroup && parentMatcher.matches(parent) && view == parent.getChildAt( - position - ) + position + ) } } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a68032508..f079adb33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -32,7 +32,8 @@ android:label="@string/app_name" android:launchMode="singleTop" android:theme="@style/KiwixTheme.Launcher" - android:windowSoftInputMode="adjustPan"> + android:windowSoftInputMode="adjustPan" + android:exported="true"> @@ -145,7 +146,8 @@ - + diff --git a/app/src/main/java/org/kiwix/kiwixmobile/intro/IntroFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/intro/IntroFragment.kt index bce427ab1..5598daa63 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/intro/IntroFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/intro/IntroFragment.kt @@ -72,14 +72,18 @@ class IntroFragment : BaseFragment(), IntroContract.View, FragmentActivityExtens addOnPageChangeListener(SimplePageChangeListener(::updateView, ::handleDraggingState)) } tab_indicator.setViewPager(view_pager) - timer?.schedule(object : TimerTask() { - override fun run() { - handler.post { - if (currentPage == views.size) currentPage = 0 - view_pager.setCurrentItem(currentPage++, true) + timer?.schedule( + object : TimerTask() { + override fun run() { + handler.post { + if (currentPage == views.size) currentPage = 0 + view_pager.setCurrentItem(currentPage++, true) + } } - } - }, timerDelay, timerPeriod) + }, + timerDelay, + timerPeriod + ) views.forEach { it.setOnClickListener { dismissAutoRotate() } } diff --git a/app/src/main/java/org/kiwix/kiwixmobile/language/LanguageFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/language/LanguageFragment.kt index 970400dde..8d9bab2c4 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/language/LanguageFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/language/LanguageFragment.kt @@ -125,9 +125,11 @@ class LanguageFragment : BaseFragment() { super.onCreateOptionsMenu(menu, inflater) inflater.inflate(R.menu.menu_language, menu) val search = menu.findItem(R.id.menu_language_search) - (search.actionView as SearchView).setOnQueryTextListener(SimpleTextListener { - languageViewModel.actions.offer(Filter(it)) - }) + (search.actionView as SearchView).setOnQueryTextListener( + SimpleTextListener { + languageViewModel.actions.offer(Filter(it)) + } + ) } override fun onOptionsItemSelected(item: MenuItem): Boolean { diff --git a/app/src/main/java/org/kiwix/kiwixmobile/localFileTransfer/LocalFileTransferFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/localFileTransfer/LocalFileTransferFragment.kt index d901d455e..3ad46a443 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/localFileTransfer/LocalFileTransferFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/localFileTransfer/LocalFileTransferFragment.kt @@ -82,7 +82,8 @@ import javax.inject.Inject const val URIS_KEY = "uris" @SuppressLint("GoogleAppIndexingApiWarning", "Registered") -class LocalFileTransferFragment : BaseFragment(), +class LocalFileTransferFragment : + BaseFragment(), WifiDirectManager.Callbacks { @Inject lateinit var alertDialogShower: AlertDialogShower diff --git a/app/src/main/java/org/kiwix/kiwixmobile/localFileTransfer/PeerGroupHandshake.kt b/app/src/main/java/org/kiwix/kiwixmobile/localFileTransfer/PeerGroupHandshake.kt index f4c5ee6ac..53f0611f0 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/localFileTransfer/PeerGroupHandshake.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/localFileTransfer/PeerGroupHandshake.kt @@ -66,7 +66,8 @@ abstract class PeerGroupHandshake(private var groupInfo: WifiP2pInfo) { InetSocketAddress( groupInfo.groupOwnerAddress.hostAddress, PEER_HANDSHAKE_PORT - ), 15000 + ), + 15000 ) val objectOutputStream = ObjectOutputStream(client.getOutputStream()) // Send message for the peer device to verify diff --git a/app/src/main/java/org/kiwix/kiwixmobile/localFileTransfer/WifiDirectManager.kt b/app/src/main/java/org/kiwix/kiwixmobile/localFileTransfer/WifiDirectManager.kt index f8342256f..4a1b48747 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/localFileTransfer/WifiDirectManager.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/localFileTransfer/WifiDirectManager.kt @@ -112,16 +112,19 @@ class WifiDirectManager @Inject constructor( private fun unregisterWifiDirectBroadcastReceiver() = context.unregisterReceiver(receiver) fun discoverPeerDevices() { - manager?.discoverPeers(channel, object : ActionListener { - override fun onSuccess() { - context.toast(R.string.discovery_initiated, Toast.LENGTH_SHORT) - } + manager?.discoverPeers( + channel, + object : ActionListener { + override fun onSuccess() { + context.toast(R.string.discovery_initiated, Toast.LENGTH_SHORT) + } - override fun onFailure(reason: Int) { - Log.d(TAG, "${context.getString(R.string.discovery_failed)}: ${getErrorMessage(reason)}") - context.toast(R.string.discovery_failed, Toast.LENGTH_SHORT) + override fun onFailure(reason: Int) { + Log.d(TAG, "${context.getString(R.string.discovery_failed)}: ${getErrorMessage(reason)}") + context.toast(R.string.discovery_failed, Toast.LENGTH_SHORT) + } } - }) + ) } /* From KiwixWifiP2pBroadcastReceiver.P2pEventListener callback-interface*/ @@ -188,7 +191,8 @@ class WifiDirectManager @Inject constructor( hasSenderStartedConnection = true connect(senderSelectedPeerDevice) context.toast(R.string.performing_handshake, Toast.LENGTH_LONG) - }) + } + ) } } @@ -197,17 +201,21 @@ class WifiDirectManager @Inject constructor( deviceAddress = senderSelectedPeerDevice.deviceAddress wps.setup = WpsInfo.PBC } - manager?.connect(channel, config, object : ActionListener { - override fun onSuccess() { - // UI updated from broadcast receiver - } + manager?.connect( + channel, + config, + object : ActionListener { + override fun onSuccess() { + // UI updated from broadcast receiver + } - override fun onFailure(reason: Int) { - val errorMessage = getErrorMessage(reason) - Log.d(TAG, context.getString(R.string.connection_failed) + ": " + errorMessage) - context.toast(R.string.connection_failed, Toast.LENGTH_LONG) + override fun onFailure(reason: Int) { + val errorMessage = getErrorMessage(reason) + Log.d(TAG, context.getString(R.string.connection_failed) + ": " + errorMessage) + context.toast(R.string.connection_failed, Toast.LENGTH_LONG) + } } - }) + ) } private fun performHandshakeWith(groupInfo: WifiP2pInfo) { @@ -291,17 +299,20 @@ class WifiDirectManager @Inject constructor( } private fun disconnect() { - manager?.removeGroup(channel, object : ActionListener { - override fun onFailure(reasonCode: Int) { - Log.d(TAG, "Disconnect failed. Reason: $reasonCode") - closeChannel() - } + manager?.removeGroup( + channel, + object : ActionListener { + override fun onFailure(reasonCode: Int) { + Log.d(TAG, "Disconnect failed. Reason: $reasonCode") + closeChannel() + } - override fun onSuccess() { - Log.d(TAG, "Disconnect successful") - closeChannel() + override fun onSuccess() { + Log.d(TAG, "Disconnect successful") + closeChannel() + } } - }) + ) } private fun closeChannel() { diff --git a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryFragment.kt index 6708c83f7..ba91a0451 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryFragment.kt @@ -94,10 +94,12 @@ class LocalLibraryFragment : BaseFragment() { } private val bookDelegate: BookOnDiskDelegate.BookDelegate by lazy { - BookOnDiskDelegate.BookDelegate(sharedPreferenceUtil, + BookOnDiskDelegate.BookDelegate( + sharedPreferenceUtil, { offerAction(RequestNavigateTo(it)) }, { offerAction(RequestMultiSelection(it)) }, - { offerAction(RequestSelect(it)) }) + { offerAction(RequestSelect(it)) } + ) } private val booksOnDiskAdapter: BooksOnDiskAdapter by lazy { BooksOnDiskAdapter(bookDelegate, BookOnDiskDelegate.LanguageDelegate) @@ -138,9 +140,9 @@ class LocalLibraryFragment : BaseFragment() { } zimManageViewModel.fileSelectListStates.observe(viewLifecycleOwner, Observer(::render)) disposable.add(sideEffects()) - zimManageViewModel.deviceListIsRefreshing.observe(viewLifecycleOwner, Observer { + zimManageViewModel.deviceListIsRefreshing.observe(viewLifecycleOwner) { zim_swiperefresh.isRefreshing = it!! - }) + } if (savedInstanceState != null && savedInstanceState.getBoolean(WAS_IN_ACTION_MODE)) { zimManageViewModel.fileSelectActions.offer(FileSelectActions.RestartActionMode) } diff --git a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/OnlineLibraryFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/OnlineLibraryFragment.kt index 21460ab37..9947798b2 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/OnlineLibraryFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/OnlineLibraryFragment.kt @@ -43,6 +43,7 @@ import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.observe import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import eu.mhutti1.utils.storage.StorageDevice @@ -107,7 +108,8 @@ class OnlineLibraryFragment : BaseFragment(), FragmentActivityExtensions { LibraryDelegate.DownloadDelegate { dialogShower.show( KiwixDialog.YesNoDialog.StopDownload, - { downloader.cancelDownload(it.downloadId) }) + { downloader.cancelDownload(it.downloadId) } + ) }, LibraryDelegate.DividerDelegate ) @@ -153,18 +155,21 @@ class OnlineLibraryFragment : BaseFragment(), FragmentActivityExtensions { viewLifecycleOwner, Observer(::onRefreshStateChange) ) zimManageViewModel.networkStates.observe(viewLifecycleOwner, Observer(::onNetworkStateChange)) - zimManageViewModel.shouldShowWifiOnlyDialog.observe(viewLifecycleOwner, Observer { + zimManageViewModel.shouldShowWifiOnlyDialog.observe( + viewLifecycleOwner + ) { if (it) { showInternetPermissionDialog() } - }) + } // hides keyboard when scrolled - libraryList.addOnScrollListener(SimpleRecyclerViewScrollListener { _, newState -> - if (newState == RecyclerView.SCROLL_STATE_DRAGGING) { - libraryList.closeKeyboard() - } - }) + libraryList.addOnScrollListener( + SimpleRecyclerViewScrollListener { _, newState -> + if (newState == RecyclerView.SCROLL_STATE_DRAGGING) { + libraryList.closeKeyboard() + } + }) allowInternetPermissionButton.setOnClickListener { showInternetPermissionDialog() @@ -405,7 +410,8 @@ class OnlineLibraryFragment : BaseFragment(), FragmentActivityExtensions { }) return } - else -> availableSpaceCalculator.hasAvailableSpaceFor(item, + else -> availableSpaceCalculator.hasAvailableSpaceFor( + item, { downloadFile(item.book) }, { libraryList.snack( @@ -415,7 +421,8 @@ class OnlineLibraryFragment : BaseFragment(), FragmentActivityExtensions { R.string.download_change_storage, ::showStorageSelectDialog ) - }) + } + ) } } } diff --git a/app/src/main/java/org/kiwix/kiwixmobile/settings/KiwixPrefsFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/settings/KiwixPrefsFragment.kt index f3ff379f4..d42fb63eb 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/settings/KiwixPrefsFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/settings/KiwixPrefsFragment.kt @@ -41,8 +41,9 @@ class KiwixPrefsFragment : CorePrefsFragment() { override fun setStorage() { findPreference(PREF_STORAGE)?.title = getString( - if (sharedPreferenceUtil.prefStorage == internalStorage()?.let - (sharedPreferenceUtil::getPublicDirectoryPath) + if (sharedPreferenceUtil.prefStorage == internalStorage()?.let( + sharedPreferenceUtil::getPublicDirectoryPath + ) ) R.string.internal_storage else R.string.external_storage ) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/webserver/wifi_hotspot/HotspotNotificationManager.kt b/app/src/main/java/org/kiwix/kiwixmobile/webserver/wifi_hotspot/HotspotNotificationManager.kt index 698206004..c52e9e9de 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/webserver/wifi_hotspot/HotspotNotificationManager.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/webserver/wifi_hotspot/HotspotNotificationManager.kt @@ -17,6 +17,7 @@ */ package org.kiwix.kiwixmobile.webserver.wifi_hotspot +import android.annotation.SuppressLint import android.app.Notification import android.app.NotificationChannel import android.app.NotificationManager @@ -38,18 +39,20 @@ class HotspotNotificationManager @Inject constructor( private fun hotspotNotificationChannel() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - notificationManager.createNotificationChannel(NotificationChannel( - HOTSPOT_SERVICE_CHANNEL_ID, - context.getString(R.string.hotspot_service_channel_name), - NotificationManager.IMPORTANCE_DEFAULT - ).apply { - description = context.getString(R.string.hotspot_channel_description) - setSound(null, null) - }) + notificationManager.createNotificationChannel( + NotificationChannel( + HOTSPOT_SERVICE_CHANNEL_ID, + context.getString(R.string.hotspot_service_channel_name), + NotificationManager.IMPORTANCE_DEFAULT + ).apply { + description = context.getString(R.string.hotspot_channel_description) + setSound(null, null) + } + ) } } - fun buildForegroundNotification(): Notification { + @SuppressLint("UnspecifiedImmutableFlag") fun buildForegroundNotification(): Notification { val contentIntent = NavDeepLinkBuilder(context).setComponentName( KiwixMainActivity::class.java ) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimManageViewModel.kt b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimManageViewModel.kt index 6af108842..d9bed0d68 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimManageViewModel.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimManageViewModel.kt @@ -483,6 +483,7 @@ class ZimManageViewModel @Inject constructor( oldBookOnDisk.id == newBookOnDisk.id } newBookOnDisk.apply { isSelected = firstOrNull?.isSelected ?: false } - }) + } + ) } } diff --git a/app/src/main/res/layout/fragment_destination_download.xml b/app/src/main/res/layout/fragment_destination_download.xml index 6d64282d4..fcaee60d5 100644 --- a/app/src/main/res/layout/fragment_destination_download.xml +++ b/app/src/main/res/layout/fragment_destination_download.xml @@ -61,7 +61,8 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="0.45" /> + app:layout_constraintVertical_bias="0.45" + tools:ignore="RequiredSize" />