Avoid jank in extensions list if install permissions already granted

This commit is contained in:
arkon 2024-01-07 12:32:33 -05:00
parent f115edf2ea
commit 14510f1d26
2 changed files with 4 additions and 4 deletions

View File

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

View File

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