From 4ebb9b48f095f9dd94ef8093d5c5d46bf5dda801 Mon Sep 17 00:00:00 2001 From: BinTianqi Date: Sat, 6 Jul 2024 12:36:02 +0800 Subject: [PATCH] app installer: reject self-update close #47 --- .../com/bintianqi/owndroid/InstallAppActivity.kt | 16 +++++++++++----- app/src/main/res/values-tr/strings.xml | 1 + app/src/main/res/values-zh-rCN/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/bintianqi/owndroid/InstallAppActivity.kt b/app/src/main/java/com/bintianqi/owndroid/InstallAppActivity.kt index 178b19e..a8af9e2 100644 --- a/app/src/main/java/com/bintianqi/owndroid/InstallAppActivity.kt +++ b/app/src/main/java/com/bintianqi/owndroid/InstallAppActivity.kt @@ -58,28 +58,34 @@ class InstallAppActivity: FragmentActivity() { ) fd?.close() withContext(Dispatchers.Main) { - status = "waiting" 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_code)}: ${apkInfo.versionCode}" + if(apkInfo.packageName == packageName) { + status = "self_update" + apkInfoText += "\n" + context.getString(R.string.update_using_system_installer) + } else { + status = "waiting" + } } } setContent { + val canExit = status == "waiting" || status == "self_update" OwnDroidTheme( sharedPref.getBoolean("material_you", true), sharedPref.getBoolean("black_theme", false) ) { AlertDialog( - properties = DialogProperties(dismissOnBackPress = false, dismissOnClickOutside = false), + properties = DialogProperties(dismissOnBackPress = canExit, dismissOnClickOutside = canExit), title = { Text(stringResource(R.string.install_app)) }, onDismissRequest = { - if(status != "installing") finish() + if(canExit) finish() }, text = { Column { - AnimatedVisibility(status != "waiting") { + AnimatedVisibility(status != "waiting" && status != "self_update") { LinearProgressIndicator(modifier = Modifier.fillMaxWidth()) } Text(text = apkInfoText, modifier = Modifier.padding(top = 4.dp)) @@ -99,7 +105,7 @@ class InstallAppActivity: FragmentActivity() { status = "installing" uriToStream(applicationContext, this.intent.data) { stream -> installPackage(applicationContext, stream) } }, - enabled = status != "installing" + enabled = status == "waiting" ) { Text(stringResource(R.string.install)) } diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index d6a939e..a93314c 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -574,5 +574,6 @@ Version name Version code + Please update OwnDroid with system installer. Parsing APK info... diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index a762204..14ecaeb 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -565,5 +565,6 @@ 版本名 版本号 + 请使用系统的应用安装器更新OwnDroid。 解析APK信息中... diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 842c01f..8412fef 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -581,5 +581,6 @@ Version name Version code + Please update OwnDroid with system installer. Parsing APK info...