diff --git a/app/src/main/java/dev/beefers/vendetta/manager/ui/screen/home/HomeScreen.kt b/app/src/main/java/dev/beefers/vendetta/manager/ui/screen/home/HomeScreen.kt
index 1c5f4a9..5f9c5c9 100644
--- a/app/src/main/java/dev/beefers/vendetta/manager/ui/screen/home/HomeScreen.kt
+++ b/app/src/main/java/dev/beefers/vendetta/manager/ui/screen/home/HomeScreen.kt
@@ -54,6 +54,7 @@ import dev.beefers.vendetta.manager.ui.screen.about.AboutScreen
import dev.beefers.vendetta.manager.ui.screen.installer.InstallerScreen
import dev.beefers.vendetta.manager.ui.viewmodel.home.HomeViewModel
import dev.beefers.vendetta.manager.ui.widgets.home.Commit
+import dev.beefers.vendetta.manager.utils.Constants
import dev.beefers.vendetta.manager.utils.DiscordVersion
import dev.beefers.vendetta.manager.utils.ManagerTab
import dev.beefers.vendetta.manager.utils.TabOptions
@@ -73,6 +74,7 @@ class HomeScreen : ManagerTab {
val nav = LocalNavigator.currentOrThrow
val prefs: PreferenceManager = get()
val viewModel: HomeViewModel = getScreenModel()
+ val currentVersion = DiscordVersion.fromVersionCode(viewModel.installManager.current?.versionCode.toString())
val latestVersion = when {
prefs.discordVersion.isBlank() -> viewModel.discordVersions?.get(prefs.channel)
else -> DiscordVersion.fromVersionCode(prefs.discordVersion)
@@ -132,13 +134,15 @@ class HomeScreen : ManagerTab {
val version = viewModel.discordVersions!![prefs.channel]!!
nav.navigate(InstallerScreen(version))
},
- enabled = viewModel.discordVersions != null,
+ enabled = latestVersion != null && latestVersion >= (currentVersion ?: Constants.DUMMY_VERSION),
modifier = Modifier.fillMaxWidth()
) {
val label = when {
- viewModel.installManager.current == null -> R.string.action_install
- viewModel.installManager.current?.versionName == latestVersion.toString() -> R.string.action_reinstall
- else -> R.string.action_update
+ latestVersion == null -> R.string.msg_loading
+ currentVersion == null -> R.string.action_install
+ currentVersion == latestVersion -> R.string.action_reinstall
+ latestVersion > currentVersion -> R.string.action_update
+ else -> R.string.msg_downgrade
}
Text(stringResource(label))
}
diff --git a/app/src/main/java/dev/beefers/vendetta/manager/utils/Constants.kt b/app/src/main/java/dev/beefers/vendetta/manager/utils/Constants.kt
index 001353f..bc0986a 100644
--- a/app/src/main/java/dev/beefers/vendetta/manager/utils/Constants.kt
+++ b/app/src/main/java/dev/beefers/vendetta/manager/utils/Constants.kt
@@ -11,6 +11,8 @@ object Constants {
val VENDETTA_DIR = Environment.getExternalStorageDirectory().resolve("Vendetta")
+ val DUMMY_VERSION = DiscordVersion(1,0, DiscordVersion.Type.STABLE)
+
}
data class TeamMember(
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8eb25b6..bb40413 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -8,6 +8,8 @@
7 more taps
5 more taps
2 more taps
+ Loading…
+ Cannot downgrade, try uninstalling first
You are now a developer
In order for Vendetta Manager to function, file permissions are required. Since shared data is stored in ~/Vendetta, permissions are required in order to access it.