From f47a851be7ce9b8e4f419b0cd47067dbb9652ee9 Mon Sep 17 00:00:00 2001 From: BinTianqi Date: Mon, 3 Jun 2024 13:04:58 +0800 Subject: [PATCH] remove all focusable() modifier --- .../owndroid/dpm/ApplicationManage.kt | 2 +- .../bintianqi/owndroid/dpm/ManagedProfile.kt | 37 ++++++++++++---- .../com/bintianqi/owndroid/dpm/Network.kt | 41 +++++++++--------- .../com/bintianqi/owndroid/dpm/Password.kt | 10 ++--- .../com/bintianqi/owndroid/dpm/Permissions.kt | 10 ++--- .../bintianqi/owndroid/dpm/SystemManager.kt | 9 ++-- .../com/bintianqi/owndroid/dpm/UserManager.kt | 42 ++++++++++++++----- 7 files changed, 95 insertions(+), 56 deletions(-) diff --git a/app/src/main/java/com/bintianqi/owndroid/dpm/ApplicationManage.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/ApplicationManage.kt index c15c440..5347391 100644 --- a/app/src/main/java/com/bintianqi/owndroid/dpm/ApplicationManage.kt +++ b/app/src/main/java/com/bintianqi/owndroid/dpm/ApplicationManage.kt @@ -377,7 +377,7 @@ private fun PermissionManage(pkgName: String, navCtrl: NavHostController) { }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Ascii, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth(), + modifier = Modifier.fillMaxWidth(), trailingIcon = { Icon(painter = painterResource(R.drawable.checklist_fill0), contentDescription = null, modifier = Modifier diff --git a/app/src/main/java/com/bintianqi/owndroid/dpm/ManagedProfile.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/ManagedProfile.kt index e516060..65481eb 100644 --- a/app/src/main/java/com/bintianqi/owndroid/dpm/ManagedProfile.kt +++ b/app/src/main/java/com/bintianqi/owndroid/dpm/ManagedProfile.kt @@ -2,15 +2,26 @@ package com.bintianqi.owndroid.dpm import android.annotation.SuppressLint import android.app.admin.DevicePolicyManager -import android.app.admin.DevicePolicyManager.* +import android.app.admin.DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE +import android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_ALLOW_OFFLINE +import android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME +import android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME +import android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_SKIP_ENCRYPTION +import android.app.admin.DevicePolicyManager.FLAG_MANAGED_CAN_ACCESS_PARENT +import android.app.admin.DevicePolicyManager.FLAG_PARENT_CAN_ACCESS_MANAGED +import android.app.admin.DevicePolicyManager.PERSONAL_APPS_NOT_SUSPENDED +import android.app.admin.DevicePolicyManager.PERSONAL_APPS_SUSPENDED_PROFILE_TIMEOUT import android.content.* import android.os.Binder import android.os.Build.VERSION import android.widget.Toast import androidx.activity.ComponentActivity import androidx.compose.animation.AnimatedVisibility -import androidx.compose.foundation.focusable -import androidx.compose.foundation.layout.* +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions @@ -22,7 +33,11 @@ import androidx.compose.material3.MaterialTheme.typography import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Scaffold import androidx.compose.material3.Text -import androidx.compose.runtime.* +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalFocusManager @@ -37,7 +52,13 @@ import androidx.navigation.compose.currentBackStackEntryAsState import androidx.navigation.compose.rememberNavController import com.bintianqi.owndroid.R import com.bintianqi.owndroid.Receiver -import com.bintianqi.owndroid.ui.* +import com.bintianqi.owndroid.ui.Animations +import com.bintianqi.owndroid.ui.CheckBoxItem +import com.bintianqi.owndroid.ui.CopyTextButton +import com.bintianqi.owndroid.ui.Information +import com.bintianqi.owndroid.ui.SubPageItem +import com.bintianqi.owndroid.ui.SwitchItem +import com.bintianqi.owndroid.ui.TopBar @Composable fun ManagedProfile(navCtrl: NavHostController) { @@ -173,7 +194,7 @@ private fun OrgID() { label = { Text(stringResource(R.string.org_id)) }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Ascii, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = {focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth() + modifier = Modifier.fillMaxWidth() ) Spacer(Modifier.padding(vertical = 2.dp)) AnimatedVisibility(orgId.length !in 6..64) { @@ -221,7 +242,7 @@ private fun SuspendPersonalApp() { ) ) OutlinedTextField( - value = time, onValueChange = { time=it }, modifier = Modifier.focusable().fillMaxWidth().padding(vertical = 2.dp), + value = time, onValueChange = { time=it }, modifier = Modifier.fillMaxWidth().padding(vertical = 2.dp), label = { Text(stringResource(R.string.time_unit_ms)) }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = {focusMgr.clearFocus() }) @@ -255,7 +276,7 @@ private fun IntentFilter() { label = { Text("Action") }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Ascii, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = {focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth() + modifier = Modifier.fillMaxWidth() ) Spacer(Modifier.padding(vertical = 5.dp)) Button( diff --git a/app/src/main/java/com/bintianqi/owndroid/dpm/Network.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/Network.kt index 0736fde..fecd498 100644 --- a/app/src/main/java/com/bintianqi/owndroid/dpm/Network.kt +++ b/app/src/main/java/com/bintianqi/owndroid/dpm/Network.kt @@ -42,7 +42,6 @@ import androidx.activity.ComponentActivity import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.animateContentSize import androidx.compose.foundation.ScrollState -import androidx.compose.foundation.focusable import androidx.compose.foundation.horizontalScroll import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -303,7 +302,7 @@ private fun WifiSsidPolicy() { onValueChange = {inputSsid = it }, keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth() + modifier = Modifier.fillMaxWidth() ) Spacer(Modifier.padding(vertical = 5.dp)) Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { @@ -405,7 +404,7 @@ private fun PrivateDNS() { label = { Text(stringResource(R.string.dns_hostname)) }, keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth() + modifier = Modifier.fillMaxWidth() ) Spacer(Modifier.padding(vertical = 3.dp)) Button( @@ -479,7 +478,7 @@ private fun WifiKeypair() { onValueChange = { keyPair = it }, keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth() + modifier = Modifier.fillMaxWidth() ) Spacer(Modifier.padding(vertical = 5.dp)) val isExist = try{ dpm.isKeyPairGrantedToWifiAuth(keyPair) }catch(e:java.lang.IllegalArgumentException) { false } @@ -535,7 +534,7 @@ private fun APN() { onValueChange = { inputNum = it }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth().padding(vertical = 2.dp), + modifier = Modifier.fillMaxWidth().padding(vertical = 2.dp), enabled = !nextStep ) }else{ @@ -608,7 +607,7 @@ private fun APN() { label = { Text(stringResource(R.string.name)) }, keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) + modifier = Modifier.fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) ) Row( modifier = Modifier.fillMaxWidth(), @@ -626,7 +625,7 @@ private fun APN() { label = { Text(stringResource(R.string.user_name)) }, keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) + modifier = Modifier.fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) ) if(VERSION.SDK_INT>=33) { @@ -637,7 +636,7 @@ private fun APN() { label = { Text("ID") }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) + modifier = Modifier.fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) ) } @@ -657,7 +656,7 @@ private fun APN() { label = { Text("ID") }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) + modifier = Modifier.fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) ) } @@ -668,7 +667,7 @@ private fun APN() { label = { Text(stringResource(R.string.bitmask)) }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) + modifier = Modifier.fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) ) Text(text = stringResource(R.string.description), style = typography.titleLarge) @@ -678,7 +677,7 @@ private fun APN() { label = { Text(stringResource(R.string.description)) }, keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) + modifier = Modifier.fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) ) Text(text = stringResource(R.string.mms_proxy), style = typography.titleLarge) @@ -689,7 +688,7 @@ private fun APN() { label = { Text(stringResource(R.string.address)) }, keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) + modifier = Modifier.fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) ) } TextField( @@ -698,7 +697,7 @@ private fun APN() { label = { Text(stringResource(R.string.port)) }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) + modifier = Modifier.fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) ) Text(text = stringResource(R.string.proxy), style = typography.titleLarge) @@ -709,7 +708,7 @@ private fun APN() { label = { Text(stringResource(R.string.address)) }, keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) + modifier = Modifier.fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) ) } TextField( @@ -718,7 +717,7 @@ private fun APN() { label = { Text(stringResource(R.string.port)) }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) + modifier = Modifier.fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) ) Text(text = "MMSC", style = typography.titleLarge) @@ -728,7 +727,7 @@ private fun APN() { label = { Text("Uri") }, keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) + modifier = Modifier.fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) ) if(VERSION.SDK_INT>=33) { @@ -739,7 +738,7 @@ private fun APN() { label = { Text("IPV4") }, keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) + modifier = Modifier.fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) ) TextField( value = mtuV6, @@ -747,7 +746,7 @@ private fun APN() { label = { Text("IPV6") }, keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) + modifier = Modifier.fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) ) } @@ -764,7 +763,7 @@ private fun APN() { label = { Text(stringResource(R.string.bitmask)) }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) + modifier = Modifier.fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) ) Text(text = "OperatorNumeric", style = typography.titleLarge) @@ -774,7 +773,7 @@ private fun APN() { label = { Text("ID") }, keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) + modifier = Modifier.fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) ) Text(text = stringResource(R.string.password), style = typography.titleLarge) @@ -784,7 +783,7 @@ private fun APN() { label = { Text(stringResource(R.string.password)) }, keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) + modifier = Modifier.fillMaxWidth().padding(top = 2.dp, bottom = 4.dp) ) if(VERSION.SDK_INT>=33) { diff --git a/app/src/main/java/com/bintianqi/owndroid/dpm/Password.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/Password.kt index b17f9e8..c1a8746 100644 --- a/app/src/main/java/com/bintianqi/owndroid/dpm/Password.kt +++ b/app/src/main/java/com/bintianqi/owndroid/dpm/Password.kt @@ -223,7 +223,7 @@ private fun ResetPassword() { label = { Text(stringResource(R.string.password)) }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth() + modifier = Modifier.fillMaxWidth() ) Spacer(Modifier.padding(vertical = 3.dp)) Text(text = stringResource(R.string.reset_pwd_desc)) @@ -371,7 +371,7 @@ private fun ScreenTimeout() { onValueChange = { inputContent = it }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth() + modifier = Modifier.fillMaxWidth() ) Spacer(Modifier.padding(vertical = 5.dp)) Button( @@ -439,7 +439,7 @@ private fun MaxFailedPasswordForWipe() { onValueChange = { inputContent = it }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth() + modifier = Modifier.fillMaxWidth() ) Spacer(Modifier.padding(vertical = 5.dp)) Button( @@ -472,7 +472,7 @@ private fun PasswordExpiration() { onValueChange = { inputContent = it }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth() + modifier = Modifier.fillMaxWidth() ) Spacer(Modifier.padding(vertical = 5.dp)) Button( @@ -505,7 +505,7 @@ private fun PasswordHistoryLength() { onValueChange = { inputContent = it }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth() + modifier = Modifier.fillMaxWidth() ) Spacer(Modifier.padding(vertical = 5.dp)) Button( diff --git a/app/src/main/java/com/bintianqi/owndroid/dpm/Permissions.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/Permissions.kt index fac9f2d..fd8597a 100644 --- a/app/src/main/java/com/bintianqi/owndroid/dpm/Permissions.kt +++ b/app/src/main/java/com/bintianqi/owndroid/dpm/Permissions.kt @@ -145,7 +145,7 @@ private fun LockScreenInfo() { value = infoText, label = { Text(stringResource(R.string.device_owner_lock_screen_info)) }, onValueChange = { infoText = it }, - modifier = Modifier.focusable().fillMaxWidth().padding(vertical = 4.dp) + modifier = Modifier.fillMaxWidth().padding(vertical = 4.dp) ) Button( onClick = { @@ -368,7 +368,7 @@ private fun OrgName() { Text(text = stringResource(R.string.org_name), style = typography.headlineLarge) Spacer(Modifier.padding(vertical = 5.dp)) OutlinedTextField( - value = orgName, onValueChange = { orgName = it }, modifier = Modifier.focusable().fillMaxWidth().padding(vertical = 3.dp), + value = orgName, onValueChange = { orgName = it }, modifier = Modifier.fillMaxWidth().padding(vertical = 3.dp), label = { Text(stringResource(R.string.org_name)) }, keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = {focusMgr.clearFocus() }) @@ -404,14 +404,14 @@ private fun SupportMsg() { value = shortMsg, label = { Text(stringResource(R.string.short_support_msg)) }, onValueChange = { shortMsg = it }, - modifier = Modifier.focusable().fillMaxWidth() + modifier = Modifier.fillMaxWidth() ) Spacer(Modifier.padding(vertical = 2.dp)) OutlinedTextField( value = longMsg, label = { Text(stringResource(R.string.long_support_msg)) }, onValueChange = { longMsg = it }, - modifier = Modifier.focusable().fillMaxWidth() + modifier = Modifier.fillMaxWidth() ) Spacer(Modifier.padding(vertical = 5.dp)) Button( @@ -475,7 +475,7 @@ private fun NoManageAccount() { value = inputText, onValueChange = { inputText = it }, label = { Text(stringResource(R.string.account_types)) }, - modifier = Modifier.focusable().fillMaxWidth().padding(vertical = 4.dp), + modifier = Modifier.fillMaxWidth().padding(vertical = 4.dp), keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }) ) diff --git a/app/src/main/java/com/bintianqi/owndroid/dpm/SystemManager.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/SystemManager.kt index dbe22d9..7527813 100644 --- a/app/src/main/java/com/bintianqi/owndroid/dpm/SystemManager.kt +++ b/app/src/main/java/com/bintianqi/owndroid/dpm/SystemManager.kt @@ -45,7 +45,6 @@ import androidx.activity.ComponentActivity import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.animateContentSize import androidx.compose.foundation.ScrollState -import androidx.compose.foundation.focusable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -424,7 +423,7 @@ private fun EditTime() { keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = {focusMgr.clearFocus() }), enabled = isDeviceOwner(dpm) || (VERSION.SDK_INT >= 30 && isProfileOwner(dpm) && dpm.isOrganizationOwnedDeviceWithManagedProfile), - modifier = Modifier.focusable().fillMaxWidth() + modifier = Modifier.fillMaxWidth() ) Spacer(Modifier.padding(vertical = 5.dp)) Button( @@ -743,7 +742,7 @@ private fun LockTaskFeatures() { label = { Text(stringResource(R.string.package_name)) }, keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth().padding(vertical = 3.dp) + modifier = Modifier.fillMaxWidth().padding(vertical = 3.dp) ) Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { Button( @@ -1142,7 +1141,7 @@ private fun SysUpdatePolicy() { onValueChange = { windowedPolicyStart = it }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth(0.5F) + modifier = Modifier.fillMaxWidth(0.5F) ) Spacer(Modifier.padding(horizontal = 3.dp)) OutlinedTextField( @@ -1151,7 +1150,7 @@ private fun SysUpdatePolicy() { label = { Text(stringResource(R.string.end_time)) }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth() + modifier = Modifier.fillMaxWidth() ) Spacer(Modifier.padding(vertical = 3.dp)) Text(text = stringResource(R.string.minutes_in_one_day)) diff --git a/app/src/main/java/com/bintianqi/owndroid/dpm/UserManager.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/UserManager.kt index c02d406..5ec2ae0 100644 --- a/app/src/main/java/com/bintianqi/owndroid/dpm/UserManager.kt +++ b/app/src/main/java/com/bintianqi/owndroid/dpm/UserManager.kt @@ -17,8 +17,13 @@ import android.widget.Toast import androidx.activity.ComponentActivity import androidx.compose.animation.AnimatedVisibility import androidx.compose.foundation.ScrollState -import androidx.compose.foundation.focusable -import androidx.compose.foundation.layout.* +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions @@ -29,7 +34,14 @@ import androidx.compose.material3.MaterialTheme.typography import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Scaffold import androidx.compose.material3.Text -import androidx.compose.runtime.* +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha import androidx.compose.ui.platform.LocalContext @@ -44,9 +56,17 @@ import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.currentBackStackEntryAsState import androidx.navigation.compose.rememberNavController -import com.bintianqi.owndroid.* import com.bintianqi.owndroid.R -import com.bintianqi.owndroid.ui.* +import com.bintianqi.owndroid.Receiver +import com.bintianqi.owndroid.fileUriFlow +import com.bintianqi.owndroid.getFile +import com.bintianqi.owndroid.toText +import com.bintianqi.owndroid.ui.Animations +import com.bintianqi.owndroid.ui.CheckBoxItem +import com.bintianqi.owndroid.ui.RadioButtonItem +import com.bintianqi.owndroid.ui.SubPageItem +import com.bintianqi.owndroid.ui.TopBar +import com.bintianqi.owndroid.uriToStream var affiliationID = mutableSetOf() @Composable @@ -176,7 +196,7 @@ private fun UserOperation() { }, label = { Text(if(useUid) "UID" else stringResource(R.string.serial_number)) }, enabled = isDeviceOwner(dpm), - modifier = Modifier.focusable().fillMaxWidth(), + modifier = Modifier.fillMaxWidth(), keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }) ) @@ -275,7 +295,7 @@ private fun CreateUser() { value = userName, onValueChange = { userName= it }, label = { Text(stringResource(R.string.username)) }, - modifier = Modifier.focusable().fillMaxWidth(), + modifier = Modifier.fillMaxWidth(), keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }) ) @@ -345,7 +365,7 @@ private fun AffiliationID() { value = input, onValueChange = {input = it}, label = { Text("ID") }, - modifier = Modifier.focusable().fillMaxWidth().padding(vertical = 2.dp), + modifier = Modifier.fillMaxWidth().padding(vertical = 2.dp), keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = {focusMgr.clearFocus() }) ) @@ -402,7 +422,7 @@ private fun Username() { label = { Text(stringResource(R.string.username)) }, keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth(), + modifier = Modifier.fillMaxWidth(), enabled = isDeviceOwner(dpm) || isProfileOwner(dpm) ) Spacer(Modifier.padding(vertical = 5.dp)) @@ -447,7 +467,7 @@ private fun UserSessionMessage() { label = { Text(stringResource(R.string.start_user_session_msg)) }, keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = {focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth(), + modifier = Modifier.fillMaxWidth(), enabled = isDeviceOwner(dpm) || isProfileOwner(dpm) ) Spacer(Modifier.padding(vertical = 2.dp)) @@ -457,7 +477,7 @@ private fun UserSessionMessage() { label = { Text(stringResource(R.string.end_user_session_msg)) }, keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }), - modifier = Modifier.focusable().fillMaxWidth(), + modifier = Modifier.fillMaxWidth(), enabled = isDeviceOwner(dpm) || isProfileOwner(dpm) ) Spacer(Modifier.padding(vertical = 5.dp))