From f2d130c547fd15f8f7b41f4ed9ebfb5cc56fa88e Mon Sep 17 00:00:00 2001 From: MohitMali Date: Mon, 3 Jul 2023 18:44:33 +0530 Subject: [PATCH 1/2] Fixes of Some deprecation warnings are showing in the logs but they are already fixed --- .../kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt | 1 + .../kiwixmobile/zimManager/ConnectivityBroadcastReceiver.kt | 1 + .../java/org/kiwix/kiwixmobile/zimManager/Fat32Checker.kt | 1 + .../kiwix/kiwixmobile/zimManager/ZimManageViewModelTest.kt | 3 +++ .../org/kiwix/kiwixmobile/core/data/remote/KiwixService.kt | 1 + .../java/org/kiwix/kiwixmobile/core/error/ErrorActivity.kt | 1 + .../kiwix/kiwixmobile/core/extensions/ContextExtensions.kt | 4 +++- .../java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.kt | 1 + .../org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt | 3 +++ .../org/kiwix/kiwixmobile/core/main/NavigationHostFragment.kt | 1 + .../java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt | 1 + .../kiwixmobile/core/search/viewmodel/SearchViewModel.kt | 4 ++++ .../core/search/viewmodel/effects/StartSpeechInput.kt | 1 + .../java/org/kiwix/kiwixmobile/core/utils/LanguageUtils.kt | 1 + .../core/search/viewmodel/effects/StartSpeechInputTest.kt | 2 ++ .../org/kiwix/kiwixmobile/custom/main/CustomReaderFragment.kt | 1 + 16 files changed, 26 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt index 41ccef621..4e242cc6c 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt @@ -212,6 +212,7 @@ class KiwixReaderFragment : CoreReaderFragment() { setBottomMarginToNavHostContainer(0) } + @Suppress("DEPRECATION") override fun onCreateOptionsMenu(menu: Menu, menuInflater: MenuInflater) { super.onCreateOptionsMenu(menu, menuInflater) if (zimReaderContainer?.zimFileReader == null) { diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zimManager/ConnectivityBroadcastReceiver.kt b/app/src/main/java/org/kiwix/kiwixmobile/zimManager/ConnectivityBroadcastReceiver.kt index 1aa4a5ea0..95298a219 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zimManager/ConnectivityBroadcastReceiver.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/zimManager/ConnectivityBroadcastReceiver.kt @@ -32,6 +32,7 @@ class ConnectivityBroadcastReceiver @Inject constructor( ) : BaseBroadcastReceiver() { + @Suppress("DEPRECATION") override val action: String = ConnectivityManager.CONNECTIVITY_ACTION private val _networkStates = BehaviorProcessor.createDefault(connectivityManager.networkState) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zimManager/Fat32Checker.kt b/app/src/main/java/org/kiwix/kiwixmobile/zimManager/Fat32Checker.kt index ce53d6739..3dab2b4b2 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zimManager/Fat32Checker.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/zimManager/Fat32Checker.kt @@ -63,6 +63,7 @@ class Fat32Checker constructor( ) } + @Suppress("DEPRECATION") private fun fileObserver(it: String): FileObserver { return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { return object : FileObserver(File(it), MOVED_FROM or DELETE) { diff --git a/app/src/test/java/org/kiwix/kiwixmobile/zimManager/ZimManageViewModelTest.kt b/app/src/test/java/org/kiwix/kiwixmobile/zimManager/ZimManageViewModelTest.kt index 39745518d..aa812e9f6 100644 --- a/app/src/test/java/org/kiwix/kiwixmobile/zimManager/ZimManageViewModelTest.kt +++ b/app/src/test/java/org/kiwix/kiwixmobile/zimManager/ZimManageViewModelTest.kt @@ -95,6 +95,8 @@ class ZimManageViewModelTest { private val defaultLanguageProvider: DefaultLanguageProvider = mockk() private val dataSource: DataSource = mockk() private val connectivityManager: ConnectivityManager = mockk() + + @Suppress("DEPRECATION") private val networkInfo: NetworkInfo = mockk() private val sharedPreferenceUtil: SharedPreferenceUtil = mockk() lateinit var viewModel: ZimManageViewModel @@ -119,6 +121,7 @@ class ZimManageViewModelTest { resetSchedulers() } + @Suppress("DEPRECATION") @BeforeEach fun init() { clearAllMocks() diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/data/remote/KiwixService.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/data/remote/KiwixService.kt index b310917ca..a9a8c0fee 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/data/remote/KiwixService.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/data/remote/KiwixService.kt @@ -35,6 +35,7 @@ interface KiwixService { /******** Helper class that sets up new services */ object ServiceCreator { + @Suppress("DEPRECATION") fun newHackListService(okHttpClient: OkHttpClient, baseUrl: String): KiwixService { val retrofit = Retrofit.Builder() .baseUrl(baseUrl) diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/error/ErrorActivity.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/error/ErrorActivity.kt index ffbcb2677..bfa88d3ea 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/error/ErrorActivity.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/error/ErrorActivity.kt @@ -69,6 +69,7 @@ open class ErrorActivity : BaseActivity() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { extras.getSerializable(EXCEPTION_KEY, Throwable::class.java) } else { + @Suppress("DEPRECATION") extras.getSerializable(EXCEPTION_KEY) as Throwable } } else { diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/ContextExtensions.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/ContextExtensions.kt index 8da70d794..0ac7f5bd9 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/ContextExtensions.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/ContextExtensions.kt @@ -55,7 +55,9 @@ fun Context.registerReceiver(baseBroadcastReceiver: BaseBroadcastReceiver): Inte val Context.locale: Locale get() = if (VERSION.SDK_INT >= VERSION_CODES.N) resources.configuration.locales.get(0) - else resources.configuration.locale + else + @Suppress("DEPRECATION") + resources.configuration.locale fun Context.getAttribute(@AttrRes attributeRes: Int) = with(TypedValue()) { if (theme.resolveAttribute(attributeRes, this, true)) diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.kt index 20a64025c..0919cb88e 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.kt @@ -98,6 +98,7 @@ abstract class CoreMainActivity : BaseActivity(), WebViewProvider { } } + @Suppress("DEPRECATION") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) activeFragments().iterator().forEach { it.onActivityResult(requestCode, resultCode, data) } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt index d7c003d47..22c3103e0 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt @@ -387,6 +387,7 @@ abstract class CoreReaderFragment : savedInstanceState: Bundle? ) { super.onViewCreated(view, savedInstanceState) + @Suppress("DEPRECATION") setHasOptionsMenu(true) val activity = requireActivity() as AppCompatActivity? activity?.let { @@ -1173,6 +1174,7 @@ abstract class CoreReaderFragment : } } + @Suppress("DEPRECATION") override fun onOptionsItemSelected(item: MenuItem): Boolean = mainMenu?.onOptionsItemSelected(item) == true || super.onOptionsItemSelected(item) @@ -1747,6 +1749,7 @@ abstract class CoreReaderFragment : } } + @Suppress("DEPRECATION") override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { super.onCreateOptionsMenu(menu, inflater) menu.clear() diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/NavigationHostFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/main/NavigationHostFragment.kt index 82b1a4df5..b4595e8fb 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/NavigationHostFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/NavigationHostFragment.kt @@ -28,6 +28,7 @@ import org.kiwix.kiwixmobile.core.base.FragmentActivityExtensions.Super.ShouldCa import org.kiwix.kiwixmobile.core.base.FragmentActivityExtensions.Super.ShouldNotCall class NavigationHostFragment : NavHostFragment(), WebViewProvider, FragmentActivityExtensions { + @Suppress("DEPRECATION") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) childFragmentManager.fragments.iterator() diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt index cb02ba522..fada01a05 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt @@ -209,6 +209,7 @@ class SearchFragment : BaseFragment() { searchViewModel.actions.trySend(OnOpenInNewTabClick(it)).isSuccess } + @Suppress("DEPRECATION") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) searchViewModel.actions.trySend(ActivityResultReceived(requestCode, resultCode, data)).isSuccess diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/SearchViewModel.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/SearchViewModel.kt index cadad92bc..22a9c08cb 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/SearchViewModel.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/SearchViewModel.kt @@ -82,6 +82,7 @@ class SearchViewModel @Inject constructor( viewModelScope.launch { actionMapper() } } + @Suppress("DEPRECATION") private suspend fun reducer() { combine( filter.asFlow(), @@ -97,6 +98,7 @@ class SearchViewModel @Inject constructor( .collect { state.value = it } } + @Suppress("DEPRECATION") private fun searchResults() = filter.asFlow() .mapLatest { val zimFileReader = zimReaderContainer.copyReader() @@ -122,6 +124,7 @@ class SearchViewModel @Inject constructor( actions ) ).isSuccess + ReceivedPromptForSpeechInput -> _effects.trySend(StartSpeechInput(actions)).isSuccess StartSpeechInputFailed -> _effects.trySend(ShowToast(R.string.speech_not_supported)).isSuccess is ActivityResultReceived -> @@ -133,6 +136,7 @@ class SearchViewModel @Inject constructor( actions ) ).isSuccess + is ScreenWasStartedFrom -> searchOrigin.trySendBlocking(it.searchOrigin) } } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/StartSpeechInput.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/StartSpeechInput.kt index e886d281a..a92f0f8ab 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/StartSpeechInput.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/StartSpeechInput.kt @@ -31,6 +31,7 @@ import java.util.Locale data class StartSpeechInput(private val actions: Channel) : SideEffect { + @Suppress("DEPRECATION") override fun invokeWith(activity: AppCompatActivity) { try { activity.startActivityForResult( diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/LanguageUtils.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/LanguageUtils.kt index 4ccd459d3..2edceda80 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/LanguageUtils.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/LanguageUtils.kt @@ -156,6 +156,7 @@ class LanguageUtils(private val context: Context) { } @SuppressLint("AppBundleLocaleChanges") + @Suppress("DEPRECATION") @JvmStatic fun handleLocaleChange( activity: Activity, diff --git a/core/src/test/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/StartSpeechInputTest.kt b/core/src/test/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/StartSpeechInputTest.kt index 112707de8..c7f030b1c 100644 --- a/core/src/test/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/StartSpeechInputTest.kt +++ b/core/src/test/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/StartSpeechInputTest.kt @@ -37,6 +37,7 @@ internal class StartSpeechInputTest { private val actions = mockk>(relaxed = true) + @Suppress("DEPRECATION") @Test fun `when invoke with throws exception offer StartSpeechInputFailed action`() { val activity = mockk(relaxed = true) @@ -45,6 +46,7 @@ internal class StartSpeechInputTest { verify { actions.trySend(StartSpeechInputFailed).isSuccess } } + @Suppress("DEPRECATION") @Test fun `invoke with starts an activity for speech recognition`() { val activity = mockk() diff --git a/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomReaderFragment.kt b/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomReaderFragment.kt index 8f8dfc01a..15c3b33d8 100644 --- a/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomReaderFragment.kt +++ b/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomReaderFragment.kt @@ -157,6 +157,7 @@ class CustomReaderFragment : CoreReaderFragment() { ) } + @Suppress("DEPRECATION") override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { super.onCreateOptionsMenu(menu, inflater) menu.findItem(R.id.menu_help)?.isVisible = false From 7445da9bfcb5d6de3f4bae37dadaa42df9694d12 Mon Sep 17 00:00:00 2001 From: MohitMali Date: Wed, 5 Jul 2023 18:06:39 +0530 Subject: [PATCH 2/2] Replaced deprecated `onOptionsItemSelected` and `onCreateOptionsMenu` methods with new MenuProvider API. --- .../core/main/CoreReaderFragment.kt | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt index 22c3103e0..2c6f2427f 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt @@ -69,11 +69,14 @@ import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import androidx.core.view.GravityCompat +import androidx.core.view.MenuHost +import androidx.core.view.MenuProvider import androidx.core.view.WindowCompat import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsControllerCompat import androidx.core.widget.ContentLoadingProgressBar import androidx.drawerlayout.widget.DrawerLayout +import androidx.lifecycle.Lifecycle import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -387,8 +390,7 @@ abstract class CoreReaderFragment : savedInstanceState: Bundle? ) { super.onViewCreated(view, savedInstanceState) - @Suppress("DEPRECATION") - setHasOptionsMenu(true) + setupMenu() val activity = requireActivity() as AppCompatActivity? activity?.let { WebView(it).destroy() // Workaround for buggy webViews see #710 @@ -1174,9 +1176,21 @@ abstract class CoreReaderFragment : } } - @Suppress("DEPRECATION") - override fun onOptionsItemSelected(item: MenuItem): Boolean = - mainMenu?.onOptionsItemSelected(item) == true || super.onOptionsItemSelected(item) + private fun setupMenu() { + (requireActivity() as MenuHost).addMenuProvider( + object : MenuProvider { + override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) { + menu.clear() + mainMenu = createMainMenu(menu) + } + + override fun onMenuItemSelected(menuItem: MenuItem): Boolean = + mainMenu?.onOptionsItemSelected(menuItem) == true + }, + viewLifecycleOwner, + Lifecycle.State.RESUMED + ) + } override fun onFullscreenMenuClicked() { if (isInFullScreenMode()) { @@ -1749,13 +1763,6 @@ abstract class CoreReaderFragment : } } - @Suppress("DEPRECATION") - override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { - super.onCreateOptionsMenu(menu, inflater) - menu.clear() - mainMenu = createMainMenu(menu) - } - protected open fun createMainMenu(menu: Menu?): MainMenu? = menuFactory?.create( menu!!,