From 443cacca00c002b7c8d418c37110a160cdabfbe3 Mon Sep 17 00:00:00 2001 From: tarsin Date: Thu, 11 May 2023 16:55:03 +0800 Subject: [PATCH] Fixup androidx core NPE --- app/build.gradle.kts | 2 +- .../com/hippo/ehviewer/ui/scene/BaseScene.kt | 38 ++----------------- 2 files changed, 4 insertions(+), 36 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 24a7621d6..8ad862663 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -169,7 +169,7 @@ dependencies { implementation("androidx.compose.material3:material3") implementation("androidx.compose.material3:material3-window-size-class") - implementation("androidx.core:core-ktx:1.10.1") + implementation("androidx.core:core-ktx:1.11.0-alpha04") implementation("androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha09") implementation("androidx.coordinatorlayout:coordinatorlayout:1.2.0") diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/BaseScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/BaseScene.kt index 02efe922e..86ca0980f 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/BaseScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/BaseScene.kt @@ -26,9 +26,7 @@ import android.view.View import android.view.ViewGroup import androidx.annotation.StringRes import androidx.core.view.GravityCompat -import androidx.core.view.ViewCompat -import androidx.core.view.WindowInsetsCompat -import androidx.core.view.WindowInsetsControllerCompat +import androidx.core.view.SoftwareKeyboardControllerCompat import androidx.drawerlayout.widget.DrawerLayout import androidx.fragment.app.Fragment import androidx.navigation.NavOptions @@ -38,7 +36,6 @@ import com.hippo.ehviewer.ui.MainActivity import rikka.core.res.resolveDrawable abstract class BaseScene : Fragment() { - private var insetsController: WindowInsetsControllerCompat? = null private var drawerView: View? = null private var drawerViewState: SparseArray? = null fun addAboveSnackView(view: View?) { @@ -163,6 +160,7 @@ abstract class BaseScene : Fragment() { } else { setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.START) } + hideSoftInput() mainActivity!!.createDrawerView(this) } @@ -186,37 +184,7 @@ abstract class BaseScene : Fragment() { } } - fun hideSoftInput() { - val insetsController = getInsetsController() - insetsController?.hide(WindowInsetsCompat.Type.ime()) - } - - fun showSoftInput(view: View?) { - if (view != null) { - view.requestFocus() - view.post( - Runnable { - val insetsController = getInsetsController() - insetsController?.show(WindowInsetsCompat.Type.ime()) - }, - ) - } - } - - private fun getInsetsController(): WindowInsetsControllerCompat? { - if (insetsController == null) { - val activity = activity - if (activity != null) { - insetsController = ViewCompat.getWindowInsetsController(activity.window.decorView) - } - } - return insetsController - } - - override fun onDestroy() { - super.onDestroy() - insetsController = null - } + fun hideSoftInput() = activity?.window?.decorView?.run { SoftwareKeyboardControllerCompat(this) }?.hide() override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState)