diff --git a/app/apk-ng/src/main/java/com/topjohnwu/magisk/terminal/TerminalEmulator.kt b/app/apk-ng/src/main/java/com/topjohnwu/magisk/terminal/TerminalEmulator.kt index bbc516162..628a394bf 100644 --- a/app/apk-ng/src/main/java/com/topjohnwu/magisk/terminal/TerminalEmulator.kt +++ b/app/apk-ng/src/main/java/com/topjohnwu/magisk/terminal/TerminalEmulator.kt @@ -1130,7 +1130,7 @@ class TerminalEmulator( code in 100..107 -> mBackColor = code - 100 + 8 else -> { if (LOG_ESCAPE_SEQUENCES) - Timber.tag(LOG_TAG).w(String.format("SGR unknown code %d", code)) + Timber.tag(LOG_TAG).w("SGR unknown code %d", code) } } i++ diff --git a/app/apk-ng/src/main/java/com/topjohnwu/magisk/ui/MainActivity.kt b/app/apk-ng/src/main/java/com/topjohnwu/magisk/ui/MainActivity.kt index 9ca5c6764..e6efba34c 100644 --- a/app/apk-ng/src/main/java/com/topjohnwu/magisk/ui/MainActivity.kt +++ b/app/apk-ng/src/main/java/com/topjohnwu/magisk/ui/MainActivity.kt @@ -8,6 +8,7 @@ import android.content.Intent import android.content.pm.ApplicationInfo import android.net.Uri import android.os.Bundle +import androidx.core.net.toUri import android.view.WindowManager import android.widget.Toast import androidx.activity.ComponentActivity @@ -133,7 +134,7 @@ class MainActivity : ComponentActivity(), SplashScreenHost { LaunchedEffect(key) { if (vm.flashAction.isEmpty()) { vm.flashAction = key.action - vm.flashUri = key.additionalData?.let { Uri.parse(it) } + vm.flashUri = key.additionalData?.toUri() vm.startFlashing() } } diff --git a/app/apk-ng/src/main/java/com/topjohnwu/magisk/ui/MainScreen.kt b/app/apk-ng/src/main/java/com/topjohnwu/magisk/ui/MainScreen.kt index b3785a3b7..a318b8bf9 100644 --- a/app/apk-ng/src/main/java/com/topjohnwu/magisk/ui/MainScreen.kt +++ b/app/apk-ng/src/main/java/com/topjohnwu/magisk/ui/MainScreen.kt @@ -35,7 +35,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.shadow import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.platform.LocalContext +import androidx.activity.compose.LocalActivity import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.semantics.Role @@ -102,7 +102,7 @@ fun MainScreen(initialTab: Int = Tab.HOME.ordinal) { HomeScreen(vm, installVm) } Tab.SUPERUSER -> { - val activity = LocalContext.current as MainActivity + val activity = LocalActivity.current as MainActivity val vm: SuperuserViewModel = viewModel(viewModelStoreOwner = activity, factory = VMFactory) LaunchedEffect(Unit) { vm.authenticate = { onSuccess -> @@ -124,7 +124,7 @@ fun MainScreen(initialTab: Int = Tab.HOME.ordinal) { ModuleScreen(vm) } Tab.SETTINGS -> { - val activity = LocalContext.current as MainActivity + val activity = LocalActivity.current as MainActivity val vm: SettingsViewModel = viewModel(factory = VMFactory) LaunchedEffect(Unit) { vm.authenticate = { onSuccess -> diff --git a/app/apk-ng/src/main/java/com/topjohnwu/magisk/ui/module/ModuleScreen.kt b/app/apk-ng/src/main/java/com/topjohnwu/magisk/ui/module/ModuleScreen.kt index c37a3f0b9..a13c05f0a 100644 --- a/app/apk-ng/src/main/java/com/topjohnwu/magisk/ui/module/ModuleScreen.kt +++ b/app/apk-ng/src/main/java/com/topjohnwu/magisk/ui/module/ModuleScreen.kt @@ -59,6 +59,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalResources import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.text.style.TextOverflow @@ -82,6 +83,7 @@ fun ModuleScreen(viewModel: ModuleViewModel) { val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior() val colorScheme = MaterialTheme.colorScheme val context = LocalContext.current + val resources = LocalResources.current val scope = rememberCoroutineScope() val activity = context as MainActivity @@ -100,7 +102,7 @@ fun ModuleScreen(viewModel: ModuleViewModel) { scope.launch { val result = localInstallDialog.awaitConfirm( title = confirmInstallTitle, - content = context.getString(CoreR.string.confirm_install, displayName), + content = resources.getString(CoreR.string.confirm_install, displayName), ) if (result == ConfirmResult.Confirmed) { viewModel.confirmLocalInstall(uri) diff --git a/app/apk-ng/src/main/java/com/topjohnwu/magisk/ui/settings/SettingsScreen.kt b/app/apk-ng/src/main/java/com/topjohnwu/magisk/ui/settings/SettingsScreen.kt index a0049de64..b4c6a09c5 100644 --- a/app/apk-ng/src/main/java/com/topjohnwu/magisk/ui/settings/SettingsScreen.kt +++ b/app/apk-ng/src/main/java/com/topjohnwu/magisk/ui/settings/SettingsScreen.kt @@ -29,6 +29,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalResources import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.core.content.pm.ShortcutManagerCompat @@ -117,7 +118,7 @@ private fun CustomizationSection(viewModel: SettingsViewModel) { } // Color Mode - val resources = context.resources + val resources = LocalResources.current val colorModeEntries = remember { resources.getStringArray(CoreR.array.color_mode).toList() } @@ -148,7 +149,7 @@ private fun CustomizationSection(viewModel: SettingsViewModel) { @Composable private fun AppSettingsSection() { val context = LocalContext.current - val resources = context.resources + val resources = LocalResources.current SmallTitle(text = stringResource(CoreR.string.home_app_title)) Card(modifier = Modifier.fillMaxWidth()) { @@ -294,7 +295,7 @@ private fun MagiskSection(viewModel: SettingsViewModel) { @Composable private fun SuperuserSection(viewModel: SettingsViewModel) { val context = LocalContext.current - val resources = context.resources + val resources = LocalResources.current SmallTitle(text = stringResource(CoreR.string.superuser)) Card(modifier = Modifier.fillMaxWidth()) { diff --git a/app/apk-ng/src/main/java/com/topjohnwu/magisk/ui/surequest/SuRequestViewModel.kt b/app/apk-ng/src/main/java/com/topjohnwu/magisk/ui/surequest/SuRequestViewModel.kt index 897e142df..c561a5d2c 100644 --- a/app/apk-ng/src/main/java/com/topjohnwu/magisk/ui/surequest/SuRequestViewModel.kt +++ b/app/apk-ng/src/main/java/com/topjohnwu/magisk/ui/surequest/SuRequestViewModel.kt @@ -2,6 +2,7 @@ package com.topjohnwu.magisk.ui.surequest import android.content.Intent import android.content.SharedPreferences +import androidx.core.content.edit import android.graphics.drawable.Drawable import android.os.CountDownTimer import androidx.compose.runtime.getValue @@ -100,7 +101,7 @@ class SuRequestViewModel( timer.cancel() val pos = selectedItemPosition - timeoutPrefs.edit().putInt(packageName, pos).apply() + timeoutPrefs.edit { putInt(packageName, pos) } viewModelScope.launch { handler.respond(action, Config.Value.TIMEOUT_LIST[pos])