Jelajahi Sumber

Avoid jank in extensions list if install permissions already granted

arkon 1 tahun lalu
induk
melakukan
14510f1d26

+ 2 - 2
app/src/main/java/eu/kanade/presentation/browse/ExtensionsScreen.kt

@@ -133,13 +133,13 @@ private fun ExtensionContent(
 ) {
     val context = LocalContext.current
     var trustState by remember { mutableStateOf<Extension.Untrusted?>(null) }
-    val installGranted = rememberRequestPackageInstallsPermissionState()
+    val installGranted = rememberRequestPackageInstallsPermissionState(initialValue = true)
 
     FastScrollLazyColumn(
         contentPadding = contentPadding + topSmallPaddingValues,
     ) {
         if (!installGranted && state.installer?.requiresSystemPermission == true) {
-            item {
+            item(key = "extension-permissions-warning") {
                 WarningBanner(
                     textRes = MR.strings.ext_permission_install_apps_warning,
                     modifier = Modifier.clickable {

+ 2 - 2
app/src/main/java/eu/kanade/presentation/util/Permissions.kt

@@ -14,11 +14,11 @@ import androidx.lifecycle.DefaultLifecycleObserver
 import androidx.lifecycle.LifecycleOwner
 
 @Composable
-fun rememberRequestPackageInstallsPermissionState(): Boolean {
+fun rememberRequestPackageInstallsPermissionState(initialValue: Boolean = false): Boolean {
     val context = LocalContext.current
     val lifecycleOwner = LocalLifecycleOwner.current
 
-    var installGranted by remember { mutableStateOf(false) }
+    var installGranted by remember { mutableStateOf(initialValue) }
 
     DisposableEffect(lifecycleOwner.lifecycle) {
         val observer = object : DefaultLifecycleObserver {