app installer: reject self-update

close #47
This commit is contained in:
BinTianqi
2024-07-06 12:36:02 +08:00
parent 89cfafb03a
commit 4ebb9b48f0
4 changed files with 14 additions and 5 deletions

View File

@@ -58,28 +58,34 @@ class InstallAppActivity: FragmentActivity() {
) )
fd?.close() fd?.close()
withContext(Dispatchers.Main) { withContext(Dispatchers.Main) {
status = "waiting"
apkInfoText = "${context.getString(R.string.package_name)}: ${apkInfo.packageName}\n" apkInfoText = "${context.getString(R.string.package_name)}: ${apkInfo.packageName}\n"
apkInfoText += "${context.getString(R.string.version_name)}: ${apkInfo.versionName}\n" apkInfoText += "${context.getString(R.string.version_name)}: ${apkInfo.versionName}\n"
apkInfoText += "${context.getString(R.string.version_code)}: ${apkInfo.versionCode}" apkInfoText += "${context.getString(R.string.version_code)}: ${apkInfo.versionCode}"
if(apkInfo.packageName == packageName) {
status = "self_update"
apkInfoText += "\n" + context.getString(R.string.update_using_system_installer)
} else {
status = "waiting"
}
} }
} }
setContent { setContent {
val canExit = status == "waiting" || status == "self_update"
OwnDroidTheme( OwnDroidTheme(
sharedPref.getBoolean("material_you", true), sharedPref.getBoolean("material_you", true),
sharedPref.getBoolean("black_theme", false) sharedPref.getBoolean("black_theme", false)
) { ) {
AlertDialog( AlertDialog(
properties = DialogProperties(dismissOnBackPress = false, dismissOnClickOutside = false), properties = DialogProperties(dismissOnBackPress = canExit, dismissOnClickOutside = canExit),
title = { title = {
Text(stringResource(R.string.install_app)) Text(stringResource(R.string.install_app))
}, },
onDismissRequest = { onDismissRequest = {
if(status != "installing") finish() if(canExit) finish()
}, },
text = { text = {
Column { Column {
AnimatedVisibility(status != "waiting") { AnimatedVisibility(status != "waiting" && status != "self_update") {
LinearProgressIndicator(modifier = Modifier.fillMaxWidth()) LinearProgressIndicator(modifier = Modifier.fillMaxWidth())
} }
Text(text = apkInfoText, modifier = Modifier.padding(top = 4.dp)) Text(text = apkInfoText, modifier = Modifier.padding(top = 4.dp))
@@ -99,7 +105,7 @@ class InstallAppActivity: FragmentActivity() {
status = "installing" status = "installing"
uriToStream(applicationContext, this.intent.data) { stream -> installPackage(applicationContext, stream) } uriToStream(applicationContext, this.intent.data) { stream -> installPackage(applicationContext, stream) }
}, },
enabled = status != "installing" enabled = status == "waiting"
) { ) {
Text(stringResource(R.string.install)) Text(stringResource(R.string.install))
} }

View File

@@ -574,5 +574,6 @@
<string name="version_name">Version name</string> <!--TODO--> <string name="version_name">Version name</string> <!--TODO-->
<string name="version_code">Version code</string> <!--TODO--> <string name="version_code">Version code</string> <!--TODO-->
<string name="update_using_system_installer">Please update OwnDroid with system installer.</string> <!--TODO-->
<string name="parsing_apk_info" tools:ignore="TypographyEllipsis">Parsing APK info...</string> <string name="parsing_apk_info" tools:ignore="TypographyEllipsis">Parsing APK info...</string>
</resources> </resources>

View File

@@ -565,5 +565,6 @@
<string name="version_name">版本名</string> <string name="version_name">版本名</string>
<string name="version_code">版本号</string> <string name="version_code">版本号</string>
<string name="update_using_system_installer">请使用系统的应用安装器更新OwnDroid。</string>
<string name="parsing_apk_info" tools:ignore="TypographyEllipsis">解析APK信息中...</string> <string name="parsing_apk_info" tools:ignore="TypographyEllipsis">解析APK信息中...</string>
</resources> </resources>

View File

@@ -581,5 +581,6 @@
<string name="version_name">Version name</string> <string name="version_name">Version name</string>
<string name="version_code">Version code</string> <string name="version_code">Version code</string>
<string name="update_using_system_installer">Please update OwnDroid with system installer.</string>
<string name="parsing_apk_info" tools:ignore="TypographyEllipsis">Parsing APK info...</string> <string name="parsing_apk_info" tools:ignore="TypographyEllipsis">Parsing APK info...</string>
</resources> </resources>