From 28d2b92abbd3a982bdad2eb965a0f3e6b058c9f7 Mon Sep 17 00:00:00 2001 From: tarsin Date: Tue, 31 Jan 2023 10:31:47 +0800 Subject: [PATCH] Fix NPE caused by compose components compatibility when click TextField java.lang.NullPointerException at androidx.compose.ui.node.OnPositionedDispatcher.androidx.compose.ui.node.LayoutNode.dispatchOnPositionedCallbacks$ui_release(Unknown Source:46) dispatchHierarchy at androidx.compose.ui.node.OnPositionedDispatcher.dispatchHierarchy(Unknown Source:89) at androidx.compose.ui.node.OnPositionedDispatcher.dispatchHierarchy(Unknown Source:89) at androidx.compose.ui.node.OnPositionedDispatcher.dispatchHierarchy(Unknown Source:89) at androidx.compose.ui.node.MeasureAndLayoutDelegate.androidx.compose.ui.node.OnPositionedDispatcher.dispatch(Unknown Source:61) dispatchOnPositionedCallbacks at androidx.compose.ui.platform.AndroidComposeView.updatePositionCacheAndDispatch(Unknown Source:53) at androidx.compose.ui.platform.AndroidComposeView.onLayout(Unknown Source:10) at android.view.View.layout(View.java:23700) at android.view.ViewGroup.layout(ViewGroup.java:6413) at androidx.compose.ui.platform.AbstractComposeView.internalOnLayout$ui_release(Unknown Source:27) at androidx.compose.ui.platform.AbstractComposeView.onLayout(Unknown Source:0) at android.view.View.layout(View.java:23700) at android.view.ViewGroup.layout(ViewGroup.java:6413) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at android.view.View.layout(View.java:23700) at android.view.ViewGroup.layout(ViewGroup.java:6413) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729) at android.widget.LinearLayout.onLayout(LinearLayout.java:1638) at android.view.View.layout(View.java:23700) at android.view.ViewGroup.layout(ViewGroup.java:6413) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at android.view.View.layout(View.java:23700) at android.view.ViewGroup.layout(ViewGroup.java:6413) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729) at android.widget.LinearLayout.onLayout(LinearLayout.java:1638) at android.view.View.layout(View.java:23700) at android.view.ViewGroup.layout(ViewGroup.java:6413) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at com.android.internal.policy.DecorView.onLayout(DecorView.java:799) at android.view.View.layout(View.java:23700) at android.view.ViewGroup.layout(ViewGroup.java:6413) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3999) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3372) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2328) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9084) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1231) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1239) at android.view.Choreographer.doCallbacks(Choreographer.java:899) at android.view.Choreographer.doFrame(Choreographer.java:832) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1214) at android.os.Handler.handleCallback(Handler.java:942) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7872) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936) --- app/build.gradle | 2 +- .../hippo/ehviewer/ui/scene/history/HistoryScreen.kt | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index fcabe3b42..42ed40d89 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -127,7 +127,7 @@ dependencies { // https://developer.android.com/jetpack/androidx/releases/compose-material3 implementation platform("androidx.compose:compose-bom:2023.01.00") implementation "androidx.compose.material:material-icons-extended" - implementation "androidx.compose.material3:material3:1.1.0-alpha05" + implementation "androidx.compose.material3:material3" implementation "androidx.constraintlayout:constraintlayout:2.2.0-alpha06" implementation "androidx.coordinatorlayout:coordinatorlayout:1.2.0" diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/history/HistoryScreen.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/history/HistoryScreen.kt index aaa031b9b..bb2d6a718 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/history/HistoryScreen.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/history/HistoryScreen.kt @@ -13,19 +13,19 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Menu import androidx.compose.material3.AlertDialog -import androidx.compose.material3.DismissDirection -import androidx.compose.material3.DismissValue +// import androidx.compose.material3.DismissDirection +// import androidx.compose.material3.DismissValue import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold -import androidx.compose.material3.SwipeToDismiss +// import androidx.compose.material3.SwipeToDismiss import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.material3.TopAppBar import androidx.compose.material3.TopAppBarDefaults -import androidx.compose.material3.rememberDismissState +// import androidx.compose.material3.rememberDismissState import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -100,6 +100,7 @@ fun HistoryScreen(hostFragment: HistoryComposeScreenFragmentBridge) { key = { item -> item.gid } ) { info -> info?.let { + /* val dismissState = rememberDismissState( confirmValueChange = { if (it == DismissValue.DismissedToStart) @@ -141,6 +142,8 @@ fun HistoryScreen(hostFragment: HistoryComposeScreenFragmentBridge) { }, directions = setOf(DismissDirection.EndToStart) ) + + */ } } }