diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ee5b5f3..3da0824 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,8 +55,9 @@ android:name=".AutomationActivity" android:exported="true" android:launchMode="singleInstance" + android:excludeFromRecents="true" android:windowSoftInputMode="adjustResize|stateHidden" - android:theme="@style/Theme.OwnDroid"> + android:theme="@style/Theme.Transparent"> @@ -67,7 +68,7 @@ android:windowSoftInputMode="adjustResize|stateHidden" android:excludeFromRecents="true" android:launchMode="singleInstance" - android:theme="@style/Theme.OwnDroidAppInstaller"> + android:theme="@style/Theme.Transparent"> diff --git a/app/src/main/java/com/bintianqi/owndroid/AutomationActivity.kt b/app/src/main/java/com/bintianqi/owndroid/AutomationActivity.kt index 464f93c..2245e64 100644 --- a/app/src/main/java/com/bintianqi/owndroid/AutomationActivity.kt +++ b/app/src/main/java/com/bintianqi/owndroid/AutomationActivity.kt @@ -1,11 +1,11 @@ package com.bintianqi.owndroid +import android.app.AlertDialog import android.content.Context import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent -import androidx.compose.foundation.text.selection.SelectionContainer -import androidx.compose.material3.Text +import androidx.compose.ui.platform.LocalContext class AutomationActivity: ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { @@ -14,9 +14,11 @@ class AutomationActivity: ComponentActivity() { val sharedPrefs = applicationContext.getSharedPreferences("data", Context.MODE_PRIVATE) if(sharedPrefs.getBoolean("automation_debug", false)) { setContent { - SelectionContainer { - Text(result) - } + AlertDialog.Builder(LocalContext.current) + .setMessage(result) + .setOnDismissListener { finish() } + .setPositiveButton(R.string.confirm) { _, _ -> finish() } + .show() } } else { finish() diff --git a/app/src/main/java/com/bintianqi/owndroid/AutomationReceiver.kt b/app/src/main/java/com/bintianqi/owndroid/AutomationReceiver.kt index a360199..ee32652 100644 --- a/app/src/main/java/com/bintianqi/owndroid/AutomationReceiver.kt +++ b/app/src/main/java/com/bintianqi/owndroid/AutomationReceiver.kt @@ -1,11 +1,11 @@ package com.bintianqi.owndroid +import android.annotation.SuppressLint import android.app.admin.DevicePolicyManager import android.content.BroadcastReceiver import android.content.ComponentName import android.content.Context import android.content.Intent -import android.util.Log import androidx.activity.ComponentActivity class AutomationReceiver: BroadcastReceiver() { @@ -14,6 +14,7 @@ class AutomationReceiver: BroadcastReceiver() { } } +@SuppressLint("NewApi") fun handleTask(context: Context, intent: Intent): String { val sharedPrefs = context.getSharedPreferences("data", Context.MODE_PRIVATE) val key = sharedPrefs.getString("automation_key", "") ?: "" @@ -27,6 +28,7 @@ fun handleTask(context: Context, intent: Intent): String { val dpm = context.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager val receiver = ComponentName(context,Receiver::class.java) val app = intent.getStringExtra("app") + val restriction = intent.getStringExtra("restriction") try { when(operation) { "suspend" -> dpm.setPackagesSuspended(receiver, arrayOf(app), true) @@ -35,6 +37,8 @@ fun handleTask(context: Context, intent: Intent): String { "unhide" -> dpm.setApplicationHidden(receiver, app, false) "lock" -> dpm.lockNow() "reboot" -> dpm.reboot(receiver) + "addUserRestriction" -> dpm.addUserRestriction(receiver, restriction) + "clearUserRestriction" -> dpm.clearUserRestriction(receiver, restriction) else -> return "Operation not defined" } } catch(e: Exception) { diff --git a/app/src/main/java/com/bintianqi/owndroid/Setting.kt b/app/src/main/java/com/bintianqi/owndroid/Setting.kt index 92f026e..e0ed1bc 100644 --- a/app/src/main/java/com/bintianqi/owndroid/Setting.kt +++ b/app/src/main/java/com/bintianqi/owndroid/Setting.kt @@ -57,7 +57,7 @@ private fun Home(navCtrl: NavHostController) { Column(modifier = Modifier.fillMaxSize()) { SubPageItem(R.string.theme, "", R.drawable.format_paint_fill0) { navCtrl.navigate("Theme") } SubPageItem(R.string.security, "", R.drawable.lock_fill0) { navCtrl.navigate("Auth") } - SubPageItem(R.string.automation, "", R.drawable.apps_fill0) { navCtrl.navigate("Automation") } + SubPageItem(R.string.automation_api, "", R.drawable.apps_fill0) { navCtrl.navigate("Automation") } SubPageItem(R.string.about, "", R.drawable.info_fill0) { navCtrl.navigate("About") } } } @@ -132,10 +132,10 @@ private fun Automation() { val context = LocalContext.current val sharedPref = context.getSharedPreferences("data", Context.MODE_PRIVATE) Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())) { + Spacer(Modifier.padding(vertical = 10.dp)) + Text(text = stringResource(R.string.automation_api), style = typography.headlineLarge) + Spacer(Modifier.padding(vertical = 5.dp)) var key by remember { mutableStateOf("") } - LaunchedEffect(Unit) { - key = sharedPref.getString("automation_key", "")?: "" - } TextField( value = key, onValueChange = { key = it }, label = { Text("Key")}, modifier = Modifier.fillMaxWidth() diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index d9a0639..19c025d 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -536,7 +536,7 @@ 清除存储空间 清除存储空间成功\n应用即将退出 - 自动化 + 自动化API 调试模式 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9ff1e1a..b6573d3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -552,7 +552,7 @@ Clear storage Clear storage success\nApplication will exit - Automation + Automation API Debug mode diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 83f2a43..7ed11ac 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -4,7 +4,7 @@ #FFFFFF #FFFFFF -