From 93b3b5d22b60e997807af2c7adf3ddce413ba18e Mon Sep 17 00:00:00 2001 From: Ushie Date: Sun, 7 Jul 2024 02:01:04 +0300 Subject: [PATCH] feat(Installer): Temporarily use DEFAULT if SHIZUKU permissions are not granted --- .../manager/ui/activity/MainActivity.kt | 19 ------------------- .../ui/viewmodel/home/HomeViewModel.kt | 11 ++++++++++- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/dev/beefers/vendetta/manager/ui/activity/MainActivity.kt b/app/src/main/java/dev/beefers/vendetta/manager/ui/activity/MainActivity.kt index 7d98d57..62641cd 100644 --- a/app/src/main/java/dev/beefers/vendetta/manager/ui/activity/MainActivity.kt +++ b/app/src/main/java/dev/beefers/vendetta/manager/ui/activity/MainActivity.kt @@ -6,27 +6,17 @@ import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge -import androidx.compose.animation.ExperimentalAnimationApi import androidx.core.app.ActivityCompat import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen -import androidx.lifecycle.lifecycleScope import cafe.adriel.voyager.navigator.Navigator import cafe.adriel.voyager.transitions.SlideTransition -import dev.beefers.vendetta.manager.domain.manager.InstallMethod -import dev.beefers.vendetta.manager.domain.manager.PreferenceManager -import dev.beefers.vendetta.manager.installer.shizuku.ShizukuPermissions import dev.beefers.vendetta.manager.ui.screen.home.HomeScreen import dev.beefers.vendetta.manager.ui.screen.installer.InstallerScreen import dev.beefers.vendetta.manager.ui.theme.VendettaManagerTheme import dev.beefers.vendetta.manager.utils.DiscordVersion import dev.beefers.vendetta.manager.utils.Intents -import kotlinx.coroutines.launch -import org.koin.android.ext.android.inject class MainActivity : ComponentActivity() { - - private val preferences: PreferenceManager by inject() - override fun onCreate(savedInstanceState: Bundle?) { installSplashScreen() enableEdgeToEdge() @@ -41,14 +31,6 @@ class MainActivity : ComponentActivity() { ) } - if (preferences.installMethod == InstallMethod.SHIZUKU) { - lifecycleScope.launch { - if (!ShizukuPermissions.waitShizukuPermissions()) { - preferences.installMethod = InstallMethod.DEFAULT - } - } - } - val screen = if (intent.action == Intents.Actions.INSTALL && version != null) { InstallerScreen(DiscordVersion.fromVersionCode(version)!!) } else { @@ -63,5 +45,4 @@ class MainActivity : ComponentActivity() { } } } - } diff --git a/app/src/main/java/dev/beefers/vendetta/manager/ui/viewmodel/home/HomeViewModel.kt b/app/src/main/java/dev/beefers/vendetta/manager/ui/viewmodel/home/HomeViewModel.kt index c335a21..d514711 100644 --- a/app/src/main/java/dev/beefers/vendetta/manager/ui/viewmodel/home/HomeViewModel.kt +++ b/app/src/main/java/dev/beefers/vendetta/manager/ui/viewmodel/home/HomeViewModel.kt @@ -22,6 +22,7 @@ import dev.beefers.vendetta.manager.domain.repository.RestRepository import dev.beefers.vendetta.manager.installer.Installer import dev.beefers.vendetta.manager.installer.session.SessionInstaller import dev.beefers.vendetta.manager.installer.shizuku.ShizukuInstaller +import dev.beefers.vendetta.manager.installer.shizuku.ShizukuPermissions import dev.beefers.vendetta.manager.network.dto.Release import dev.beefers.vendetta.manager.network.utils.CommitsPagingSource import dev.beefers.vendetta.manager.network.utils.dataOrNull @@ -129,11 +130,19 @@ class HomeViewModel( downloadManager.downloadUpdate(update) isUpdating = false - val installer: Installer = when (prefs.installMethod) { + val installMethod = if (prefs.installMethod == InstallMethod.SHIZUKU && !ShizukuPermissions.waitShizukuPermissions()) { + // Temporarily use DEFAULT if SHIZUKU permissions are not granted + InstallMethod.DEFAULT + } else { + prefs.installMethod + } + + val installer: Installer = when (installMethod) { InstallMethod.DEFAULT -> SessionInstaller(context) InstallMethod.SHIZUKU -> ShizukuInstaller(context) } + installer.installApks(silent = !isMiui, update) } }