clean code

This commit is contained in:
BinTianqi
2024-08-03 13:05:30 +08:00
parent a2f8699a15
commit 7b4fccd54b
12 changed files with 112 additions and 125 deletions

View File

@@ -235,7 +235,7 @@ private fun HomePage(navCtrl:NavHostController, pkgName: MutableState<String>) {
HomePageItem(R.string.work_profile, R.drawable.work_fill0, "ManagedProfile", navCtrl) HomePageItem(R.string.work_profile, R.drawable.work_fill0, "ManagedProfile", navCtrl)
} }
HomePageItem(R.string.app_manager, R.drawable.apps_fill0, "ApplicationManage", navCtrl) HomePageItem(R.string.app_manager, R.drawable.apps_fill0, "ApplicationManage", navCtrl)
if(VERSION.SDK_INT>=24) { if(VERSION.SDK_INT >= 24 && (context.isProfileOwner || context.isDeviceOwner)) {
HomePageItem(R.string.user_restrict, R.drawable.person_off, "UserRestriction", navCtrl) HomePageItem(R.string.user_restrict, R.drawable.person_off, "UserRestriction", navCtrl)
} }
HomePageItem(R.string.user_manager,R.drawable.manage_accounts_fill0,"UserManage", navCtrl) HomePageItem(R.string.user_manager,R.drawable.manage_accounts_fill0,"UserManage", navCtrl)

View File

@@ -640,21 +640,21 @@ private fun CredentialManagePolicy(pkgName: String) {
Text(text = stringResource(R.string.credential_manage_policy), style = typography.headlineLarge) Text(text = stringResource(R.string.credential_manage_policy), style = typography.headlineLarge)
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
RadioButtonItem( RadioButtonItem(
stringResource(R.string.none), R.string.none,
policyType == -1, { policyType = -1 } policyType == -1, { policyType = -1 }
) )
RadioButtonItem( RadioButtonItem(
stringResource(R.string.blacklist), R.string.blacklist,
policyType == PACKAGE_POLICY_BLOCKLIST, policyType == PACKAGE_POLICY_BLOCKLIST,
{ policyType = PACKAGE_POLICY_BLOCKLIST } { policyType = PACKAGE_POLICY_BLOCKLIST }
) )
RadioButtonItem( RadioButtonItem(
stringResource(R.string.whitelist), R.string.whitelist,
policyType == PACKAGE_POLICY_ALLOWLIST, policyType == PACKAGE_POLICY_ALLOWLIST,
{ policyType = PACKAGE_POLICY_ALLOWLIST } { policyType = PACKAGE_POLICY_ALLOWLIST }
) )
RadioButtonItem( RadioButtonItem(
stringResource(R.string.whitelist_and_system_app), R.string.whitelist_and_system_app,
policyType == PACKAGE_POLICY_ALLOWLIST_AND_SYSTEM, policyType == PACKAGE_POLICY_ALLOWLIST_AND_SYSTEM,
{ policyType = PACKAGE_POLICY_ALLOWLIST_AND_SYSTEM } { policyType = PACKAGE_POLICY_ALLOWLIST_AND_SYSTEM }
) )

View File

@@ -132,7 +132,7 @@ private fun CreateWorkProfile() {
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
var skipEncrypt by remember { mutableStateOf(false) } var skipEncrypt by remember { mutableStateOf(false) }
if(VERSION.SDK_INT>=24) { if(VERSION.SDK_INT>=24) {
CheckBoxItem(stringResource(R.string.skip_encryption), skipEncrypt, { skipEncrypt = it }) CheckBoxItem(R.string.skip_encryption, skipEncrypt, { skipEncrypt = it })
} }
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
Button( Button(
@@ -293,9 +293,9 @@ private fun DeleteWorkProfile() {
modifier = Modifier.padding(6.dp),color = colorScheme.error modifier = Modifier.padding(6.dp),color = colorScheme.error
) )
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
CheckBoxItem(stringResource(R.string.wipe_external_storage), externalStorage, { externalStorage = it }) CheckBoxItem(R.string.wipe_external_storage, externalStorage, { externalStorage = it })
if(VERSION.SDK_INT >= 28) { CheckBoxItem(stringResource(R.string.wipe_euicc), euicc, { euicc = it }) } if(VERSION.SDK_INT >= 28) { CheckBoxItem(R.string.wipe_euicc, euicc, { euicc = it }) }
if(VERSION.SDK_INT >= 29) { CheckBoxItem(stringResource(R.string.wipe_silently), silent, { silent = it }) } if(VERSION.SDK_INT >= 29) { CheckBoxItem(R.string.wipe_silently, silent, { silent = it }) }
AnimatedVisibility(!silent && VERSION.SDK_INT >= 28) { AnimatedVisibility(!silent && VERSION.SDK_INT >= 28) {
OutlinedTextField( OutlinedTextField(
value = reason, onValueChange = { reason = it }, value = reason, onValueChange = { reason = it },

View File

@@ -225,7 +225,7 @@ private fun WifiSecLevel() {
Text(text = stringResource(R.string.min_wifi_security_level), style = typography.headlineLarge) Text(text = stringResource(R.string.min_wifi_security_level), style = typography.headlineLarge)
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
RadioButtonItem( RadioButtonItem(
stringResource(R.string.wifi_security_level_open), R.string.wifi_security_open,
selectedWifiSecLevel == WIFI_SECURITY_OPEN, selectedWifiSecLevel == WIFI_SECURITY_OPEN,
{ selectedWifiSecLevel = WIFI_SECURITY_OPEN } { selectedWifiSecLevel = WIFI_SECURITY_OPEN }
) )
@@ -277,17 +277,17 @@ private fun WifiSsidPolicy() {
Text(text = stringResource(R.string.wifi_ssid_policy), style = typography.headlineLarge) Text(text = stringResource(R.string.wifi_ssid_policy), style = typography.headlineLarge)
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
RadioButtonItem( RadioButtonItem(
stringResource(R.string.none), R.string.none,
selectedPolicyType == -1, selectedPolicyType == -1,
{ selectedPolicyType = -1 } { selectedPolicyType = -1 }
) )
RadioButtonItem( RadioButtonItem(
stringResource(R.string.whitelist), R.string.whitelist,
selectedPolicyType == WIFI_SSID_POLICY_TYPE_ALLOWLIST, selectedPolicyType == WIFI_SSID_POLICY_TYPE_ALLOWLIST,
{ selectedPolicyType = WIFI_SSID_POLICY_TYPE_ALLOWLIST } { selectedPolicyType = WIFI_SSID_POLICY_TYPE_ALLOWLIST }
) )
RadioButtonItem( RadioButtonItem(
stringResource(R.string.blacklist), R.string.blacklist,
selectedPolicyType == WIFI_SSID_POLICY_TYPE_DENYLIST, selectedPolicyType == WIFI_SSID_POLICY_TYPE_DENYLIST,
{ selectedPolicyType = WIFI_SSID_POLICY_TYPE_DENYLIST } { selectedPolicyType = WIFI_SSID_POLICY_TYPE_DENYLIST }
) )
@@ -450,9 +450,9 @@ private fun RecommendedGlobalProxy() {
Spacer(Modifier.padding(vertical = 10.dp)) Spacer(Modifier.padding(vertical = 10.dp))
Text(text = stringResource(R.string.recommended_global_proxy), style = typography.headlineLarge) Text(text = stringResource(R.string.recommended_global_proxy), style = typography.headlineLarge)
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
RadioButtonItem(stringResource(R.string.proxy_type_off), proxyType == 0, { proxyType = 0 }) RadioButtonItem(R.string.proxy_type_off, proxyType == 0, { proxyType = 0 })
RadioButtonItem(stringResource(R.string.proxy_type_pac), proxyType == 1, { proxyType = 1 }) RadioButtonItem(R.string.proxy_type_pac, proxyType == 1, { proxyType = 1 })
RadioButtonItem(stringResource(R.string.proxy_type_direct), proxyType == 2, { proxyType = 2 }) RadioButtonItem(R.string.proxy_type_direct, proxyType == 2, { proxyType = 2 })
AnimatedVisibility(proxyType != 0) { AnimatedVisibility(proxyType != 0) {
OutlinedTextField( OutlinedTextField(
value = proxyUri, value = proxyUri,
@@ -465,7 +465,7 @@ private fun RecommendedGlobalProxy() {
} }
AnimatedVisibility(proxyType == 1 && VERSION.SDK_INT >= 30) { AnimatedVisibility(proxyType == 1 && VERSION.SDK_INT >= 30) {
Box(modifier = Modifier.padding(top = 2.dp)) { Box(modifier = Modifier.padding(top = 2.dp)) {
CheckBoxItem(stringResource(R.string.specify_port), specifyPort, { specifyPort = it }) CheckBoxItem(R.string.specify_port, specifyPort, { specifyPort = it })
} }
} }
AnimatedVisibility((proxyType == 1 && specifyPort && VERSION.SDK_INT >= 30) || proxyType == 2) { AnimatedVisibility((proxyType == 1 && specifyPort && VERSION.SDK_INT >= 30) || proxyType == 2) {
@@ -744,7 +744,7 @@ private fun APN() {
} }
Text(text = stringResource(R.string.auth_type), style = typography.titleLarge) Text(text = stringResource(R.string.auth_type), style = typography.titleLarge)
RadioButtonItem(stringResource(R.string.none), selectedAuthType==AUTH_TYPE_NONE , { selectedAuthType=AUTH_TYPE_NONE }) RadioButtonItem(R.string.none, selectedAuthType==AUTH_TYPE_NONE , { selectedAuthType=AUTH_TYPE_NONE })
RadioButtonItem("CHAP", selectedAuthType == AUTH_TYPE_CHAP , { selectedAuthType = AUTH_TYPE_CHAP }) RadioButtonItem("CHAP", selectedAuthType == AUTH_TYPE_CHAP , { selectedAuthType = AUTH_TYPE_CHAP })
RadioButtonItem("PAP", selectedAuthType == AUTH_TYPE_PAP, { selectedAuthType = AUTH_TYPE_PAP }) RadioButtonItem("PAP", selectedAuthType == AUTH_TYPE_PAP, { selectedAuthType = AUTH_TYPE_PAP })
RadioButtonItem("PAP/CHAP", selectedAuthType == AUTH_TYPE_PAP_OR_CHAP, { selectedAuthType = AUTH_TYPE_PAP_OR_CHAP }) RadioButtonItem("PAP/CHAP", selectedAuthType == AUTH_TYPE_PAP_OR_CHAP, { selectedAuthType = AUTH_TYPE_PAP_OR_CHAP })

View File

@@ -23,7 +23,6 @@ import android.app.admin.DevicePolicyManager.PASSWORD_COMPLEXITY_NONE
import android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC import android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC
import android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC import android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC
import android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_BIOMETRIC_WEAK import android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_BIOMETRIC_WEAK
import android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_COMPLEX
import android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_NUMERIC import android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_NUMERIC
import android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX import android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX
import android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_SOMETHING import android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
@@ -278,17 +277,17 @@ private fun ResetPassword() {
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
if(VERSION.SDK_INT >= 23) { if(VERSION.SDK_INT >= 23) {
RadioButtonItem( RadioButtonItem(
stringResource(R.string.do_not_ask_credentials_on_boot), R.string.do_not_ask_credentials_on_boot,
resetPwdFlag == RESET_PASSWORD_DO_NOT_ASK_CREDENTIALS_ON_BOOT, resetPwdFlag == RESET_PASSWORD_DO_NOT_ASK_CREDENTIALS_ON_BOOT,
{ resetPwdFlag = RESET_PASSWORD_DO_NOT_ASK_CREDENTIALS_ON_BOOT } { resetPwdFlag = RESET_PASSWORD_DO_NOT_ASK_CREDENTIALS_ON_BOOT }
) )
} }
RadioButtonItem( RadioButtonItem(
stringResource(R.string.reset_password_require_entry), R.string.reset_password_require_entry,
resetPwdFlag == RESET_PASSWORD_REQUIRE_ENTRY, resetPwdFlag == RESET_PASSWORD_REQUIRE_ENTRY,
{ resetPwdFlag = RESET_PASSWORD_REQUIRE_ENTRY } { resetPwdFlag = RESET_PASSWORD_REQUIRE_ENTRY }
) )
RadioButtonItem(stringResource(R.string.none), resetPwdFlag == 0, { resetPwdFlag = 0 }) RadioButtonItem(R.string.none, resetPwdFlag == 0, { resetPwdFlag = 0 })
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
Button( Button(
onClick = { onClick = {
@@ -342,10 +341,10 @@ private fun PasswordComplexity() {
val context = LocalContext.current val context = LocalContext.current
val dpm = context.getDPM() val dpm = context.getDPM()
val passwordComplexity = mapOf( val passwordComplexity = mapOf(
PASSWORD_COMPLEXITY_NONE to stringResource(R.string.password_complexity_none), PASSWORD_COMPLEXITY_NONE to R.string.password_complexity_none,
PASSWORD_COMPLEXITY_LOW to stringResource(R.string.password_complexity_low), PASSWORD_COMPLEXITY_LOW to R.string.password_complexity_low,
PASSWORD_COMPLEXITY_MEDIUM to stringResource(R.string.password_complexity_medium), PASSWORD_COMPLEXITY_MEDIUM to R.string.password_complexity_medium,
PASSWORD_COMPLEXITY_HIGH to stringResource(R.string.password_complexity_high) PASSWORD_COMPLEXITY_HIGH to R.string.password_complexity_high
).toList() ).toList()
var selectedItem by remember { mutableIntStateOf(passwordComplexity[0].first) } var selectedItem by remember { mutableIntStateOf(passwordComplexity[0].first) }
LaunchedEffect(Unit) { selectedItem = dpm.requiredPasswordComplexity } LaunchedEffect(Unit) { selectedItem = dpm.requiredPasswordComplexity }
@@ -353,28 +352,14 @@ private fun PasswordComplexity() {
Spacer(Modifier.padding(vertical = 10.dp)) Spacer(Modifier.padding(vertical = 10.dp))
Text(text = stringResource(R.string.required_password_complexity), style = typography.headlineLarge) Text(text = stringResource(R.string.required_password_complexity), style = typography.headlineLarge)
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
RadioButtonItem( for(index in 0..3) {
passwordComplexity[0].second, RadioButtonItem(
selectedItem == passwordComplexity[0].first, passwordComplexity[index].second,
{ selectedItem = passwordComplexity[0].first } selectedItem == passwordComplexity[index].first,
) { selectedItem = passwordComplexity[index].first }
RadioButtonItem( )
passwordComplexity[1].second, }
selectedItem == passwordComplexity[1].first,
{ selectedItem = passwordComplexity[1].first }
)
RadioButtonItem(
passwordComplexity[2].second,
selectedItem == passwordComplexity[2].first,
{ selectedItem = passwordComplexity[2].first }
)
RadioButtonItem(
passwordComplexity[3].second,
selectedItem == passwordComplexity[3].first,
{ selectedItem = passwordComplexity[3].first }
)
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
Button( Button(
onClick = { onClick = {
dpm.requiredPasswordComplexity = selectedItem dpm.requiredPasswordComplexity = selectedItem
@@ -606,24 +591,24 @@ private fun DisableKeyguardFeatures() {
Spacer(Modifier.padding(vertical = 10.dp)) Spacer(Modifier.padding(vertical = 10.dp))
Text(text = stringResource(R.string.disable_keyguard_features), style = typography.headlineLarge) Text(text = stringResource(R.string.disable_keyguard_features), style = typography.headlineLarge)
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
RadioButtonItem(stringResource(R.string.enable_all), state == 0, { state = 0 }) RadioButtonItem(R.string.enable_all, state == 0, { state = 0 })
RadioButtonItem(stringResource(R.string.disable_all), state == 1, { state = 1 }) RadioButtonItem(R.string.disable_all, state == 1, { state = 1 })
RadioButtonItem(stringResource(R.string.custom), state == 2 , { state = 2 }) RadioButtonItem(R.string.custom, state == 2 , { state = 2 })
AnimatedVisibility(state==2) { AnimatedVisibility(state==2) {
Column { Column {
CheckBoxItem(stringResource(R.string.disable_keyguard_features_widgets), widgets, { widgets = it }) CheckBoxItem(R.string.disable_keyguard_features_widgets, widgets, { widgets = it })
CheckBoxItem(stringResource(R.string.disable_keyguard_features_camera), camera, { camera = it }) CheckBoxItem(R.string.disable_keyguard_features_camera, camera, { camera = it })
CheckBoxItem(stringResource(R.string.disable_keyguard_features_notification), notification, { notification = it }) CheckBoxItem(R.string.disable_keyguard_features_notification, notification, { notification = it })
CheckBoxItem(stringResource(R.string.disable_keyguard_features_unredacted_notification), unredacted, { unredacted = it }) CheckBoxItem(R.string.disable_keyguard_features_unredacted_notification, unredacted, { unredacted = it })
CheckBoxItem(stringResource(R.string.disable_keyguard_features_trust_agents), agents, { agents = it }) CheckBoxItem(R.string.disable_keyguard_features_trust_agents, agents, { agents = it })
CheckBoxItem(stringResource(R.string.disable_keyguard_features_fingerprint), fingerprint, { fingerprint = it }) CheckBoxItem(R.string.disable_keyguard_features_fingerprint, fingerprint, { fingerprint = it })
if(VERSION.SDK_INT >= 24) { CheckBoxItem(stringResource(R.string.disable_keyguard_features_remote_input), remote , { remote = it }) } if(VERSION.SDK_INT >= 24) { CheckBoxItem(R.string.disable_keyguard_features_remote_input, remote , { remote = it }) }
if(VERSION.SDK_INT >= 28) { if(VERSION.SDK_INT >= 28) {
CheckBoxItem(stringResource(R.string.disable_keyguard_features_face), face, { face = it }) CheckBoxItem(R.string.disable_keyguard_features_face, face, { face = it })
CheckBoxItem(stringResource(R.string.disable_keyguard_features_iris), iris, { iris = it }) CheckBoxItem(R.string.disable_keyguard_features_iris, iris, { iris = it })
CheckBoxItem(stringResource(R.string.disable_keyguard_features_biometrics), biometrics, { biometrics = it }) CheckBoxItem(R.string.disable_keyguard_features_biometrics, biometrics, { biometrics = it })
} }
if(VERSION.SDK_INT >= 34) { CheckBoxItem(stringResource(R.string.disable_keyguard_features_shortcuts), shortcuts, { shortcuts = it }) } if(VERSION.SDK_INT >= 34) { CheckBoxItem(R.string.disable_keyguard_features_shortcuts, shortcuts, { shortcuts = it }) }
} }
} }
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
@@ -663,14 +648,13 @@ private fun PasswordQuality() {
val dpm = context.getDPM() val dpm = context.getDPM()
val receiver = context.getReceiver() val receiver = context.getReceiver()
val passwordQuality = mapOf( val passwordQuality = mapOf(
PASSWORD_QUALITY_UNSPECIFIED to stringResource(R.string.password_quality_unspecified), PASSWORD_QUALITY_UNSPECIFIED to R.string.password_quality_unspecified,
PASSWORD_QUALITY_SOMETHING to stringResource(R.string.password_quality_something), PASSWORD_QUALITY_SOMETHING to R.string.password_quality_something,
PASSWORD_QUALITY_ALPHABETIC to stringResource(R.string.password_quality_alphabetic), PASSWORD_QUALITY_ALPHABETIC to R.string.password_quality_alphabetic,
PASSWORD_QUALITY_NUMERIC to stringResource(R.string.password_quality_numeric), PASSWORD_QUALITY_NUMERIC to R.string.password_quality_numeric,
PASSWORD_QUALITY_ALPHANUMERIC to stringResource(R.string.password_quality_alphanumeric), PASSWORD_QUALITY_ALPHANUMERIC to R.string.password_quality_alphanumeric,
PASSWORD_QUALITY_BIOMETRIC_WEAK to stringResource(R.string.password_quality_biometrics_weak), PASSWORD_QUALITY_BIOMETRIC_WEAK to R.string.password_quality_biometrics_weak,
PASSWORD_QUALITY_NUMERIC_COMPLEX to stringResource(R.string.password_quality_numeric_complex), PASSWORD_QUALITY_NUMERIC_COMPLEX to R.string.password_quality_numeric_complex
PASSWORD_QUALITY_COMPLEX to stringResource(R.string.custom) + "${stringResource(R.string.unsupported) }",
).toList() ).toList()
var selectedItem by remember { mutableIntStateOf(passwordQuality[0].first) } var selectedItem by remember { mutableIntStateOf(passwordQuality[0].first) }
LaunchedEffect(Unit) { selectedItem=dpm.getPasswordQuality(receiver) } LaunchedEffect(Unit) { selectedItem=dpm.getPasswordQuality(receiver) }
@@ -681,14 +665,9 @@ private fun PasswordQuality() {
Text(text = stringResource(R.string.password_complexity_instead_password_quality)) Text(text = stringResource(R.string.password_complexity_instead_password_quality))
if(VERSION.SDK_INT >= 31) { Text(text = stringResource(R.string.password_quality_deprecated_desc), color = colorScheme.error) } if(VERSION.SDK_INT >= 31) { Text(text = stringResource(R.string.password_quality_deprecated_desc), color = colorScheme.error) }
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
RadioButtonItem(passwordQuality[0].second, selectedItem == passwordQuality[0].first, { selectedItem = passwordQuality[0].first }) for(index in 1..6) {
RadioButtonItem(passwordQuality[1].second, selectedItem == passwordQuality[1].first, { selectedItem = passwordQuality[1].first }) RadioButtonItem(passwordQuality[index].second, selectedItem == passwordQuality[index].first, { selectedItem = passwordQuality[index].first })
RadioButtonItem(passwordQuality[2].second, selectedItem == passwordQuality[2].first, { selectedItem = passwordQuality[2].first }) }
RadioButtonItem(passwordQuality[3].second, selectedItem == passwordQuality[3].first, { selectedItem = passwordQuality[3].first })
RadioButtonItem(passwordQuality[4].second, selectedItem == passwordQuality[4].first, { selectedItem = passwordQuality[4].first })
RadioButtonItem(passwordQuality[5].second, selectedItem == passwordQuality[5].first, { selectedItem = passwordQuality[5].first })
RadioButtonItem(passwordQuality[6].second, selectedItem == passwordQuality[6].first, { selectedItem = passwordQuality[6].first })
RadioButtonItem(passwordQuality[7].second, selectedItem == passwordQuality[7].first, { selectedItem = passwordQuality[7].first })
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
Button( Button(
onClick = { onClick = {

View File

@@ -40,9 +40,7 @@ import com.bintianqi.owndroid.backToHomeStateFlow
import com.bintianqi.owndroid.ui.* import com.bintianqi.owndroid.ui.*
import com.rosan.dhizuku.api.Dhizuku import com.rosan.dhizuku.api.Dhizuku
import com.rosan.dhizuku.api.DhizukuRequestPermissionListener import com.rosan.dhizuku.api.DhizukuRequestPermissionListener
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
@Composable @Composable
fun DpmPermissions(navCtrl:NavHostController) { fun DpmPermissions(navCtrl:NavHostController) {

View File

@@ -343,7 +343,7 @@ private fun Keyguard() {
} }
if(VERSION.SDK_INT >= 26) { if(VERSION.SDK_INT >= 26) {
CheckBoxItem( CheckBoxItem(
stringResource(R.string.evict_credential_encryptoon_key), R.string.evict_credential_encryptoon_key,
flag == FLAG_EVICT_CREDENTIAL_ENCRYPTION_KEY, flag == FLAG_EVICT_CREDENTIAL_ENCRYPTION_KEY,
{ flag = if(flag==0) {1}else{0} } { flag = if(flag==0) {1}else{0} }
) )
@@ -511,9 +511,9 @@ private fun PermissionPolicy() {
Spacer(Modifier.padding(vertical = 10.dp)) Spacer(Modifier.padding(vertical = 10.dp))
Text(text = stringResource(R.string.permission_policy), style = typography.headlineLarge) Text(text = stringResource(R.string.permission_policy), style = typography.headlineLarge)
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
RadioButtonItem(stringResource(R.string.default_stringres), selectedPolicy == PERMISSION_POLICY_PROMPT, { selectedPolicy = PERMISSION_POLICY_PROMPT }) RadioButtonItem(R.string.default_stringres, selectedPolicy == PERMISSION_POLICY_PROMPT, { selectedPolicy = PERMISSION_POLICY_PROMPT })
RadioButtonItem(stringResource(R.string.auto_grant), selectedPolicy == PERMISSION_POLICY_AUTO_GRANT, { selectedPolicy = PERMISSION_POLICY_AUTO_GRANT }) RadioButtonItem(R.string.auto_grant, selectedPolicy == PERMISSION_POLICY_AUTO_GRANT, { selectedPolicy = PERMISSION_POLICY_AUTO_GRANT })
RadioButtonItem(stringResource(R.string.auto_deny), selectedPolicy == PERMISSION_POLICY_AUTO_DENY, { selectedPolicy = PERMISSION_POLICY_AUTO_DENY }) RadioButtonItem(R.string.auto_deny, selectedPolicy == PERMISSION_POLICY_AUTO_DENY, { selectedPolicy = PERMISSION_POLICY_AUTO_DENY })
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
Button( Button(
onClick = { onClick = {
@@ -538,17 +538,17 @@ private fun MTEPolicy() {
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
var selectedMtePolicy by remember { mutableIntStateOf(dpm.mtePolicy) } var selectedMtePolicy by remember { mutableIntStateOf(dpm.mtePolicy) }
RadioButtonItem( RadioButtonItem(
stringResource(R.string.decide_by_user), R.string.decide_by_user,
selectedMtePolicy == MTE_NOT_CONTROLLED_BY_POLICY, selectedMtePolicy == MTE_NOT_CONTROLLED_BY_POLICY,
{ selectedMtePolicy = MTE_NOT_CONTROLLED_BY_POLICY } { selectedMtePolicy = MTE_NOT_CONTROLLED_BY_POLICY }
) )
RadioButtonItem( RadioButtonItem(
stringResource(R.string.enabled), R.string.enabled,
selectedMtePolicy == MTE_ENABLED, selectedMtePolicy == MTE_ENABLED,
{ selectedMtePolicy = MTE_ENABLED } { selectedMtePolicy = MTE_ENABLED }
) )
RadioButtonItem( RadioButtonItem(
stringResource(R.string.disabled), R.string.disabled,
selectedMtePolicy == MTE_DISABLED, selectedMtePolicy == MTE_DISABLED,
{ selectedMtePolicy = MTE_DISABLED } { selectedMtePolicy = MTE_DISABLED }
) )
@@ -557,7 +557,7 @@ private fun MTEPolicy() {
try { try {
dpm.mtePolicy = selectedMtePolicy dpm.mtePolicy = selectedMtePolicy
Toast.makeText(context, R.string.success, Toast.LENGTH_SHORT).show() Toast.makeText(context, R.string.success, Toast.LENGTH_SHORT).show()
}catch(e:java.lang.UnsupportedOperationException) { } catch(e:java.lang.UnsupportedOperationException) {
Toast.makeText(context, R.string.unsupported, Toast.LENGTH_SHORT).show() Toast.makeText(context, R.string.unsupported, Toast.LENGTH_SHORT).show()
} }
selectedMtePolicy = dpm.mtePolicy selectedMtePolicy = dpm.mtePolicy
@@ -583,22 +583,22 @@ private fun NearbyStreamingPolicy() {
Text(text = stringResource(R.string.nearby_app_streaming), style = typography.titleLarge) Text(text = stringResource(R.string.nearby_app_streaming), style = typography.titleLarge)
Spacer(Modifier.padding(vertical = 3.dp)) Spacer(Modifier.padding(vertical = 3.dp))
RadioButtonItem( RadioButtonItem(
stringResource(R.string.decide_by_user), R.string.decide_by_user,
appPolicy == NEARBY_STREAMING_NOT_CONTROLLED_BY_POLICY, appPolicy == NEARBY_STREAMING_NOT_CONTROLLED_BY_POLICY,
{ appPolicy = NEARBY_STREAMING_NOT_CONTROLLED_BY_POLICY } { appPolicy = NEARBY_STREAMING_NOT_CONTROLLED_BY_POLICY }
) )
RadioButtonItem( RadioButtonItem(
stringResource(R.string.enabled), R.string.enabled,
appPolicy == NEARBY_STREAMING_ENABLED, appPolicy == NEARBY_STREAMING_ENABLED,
{ appPolicy = NEARBY_STREAMING_ENABLED } { appPolicy = NEARBY_STREAMING_ENABLED }
) )
RadioButtonItem( RadioButtonItem(
stringResource(R.string.disabled), R.string.disabled,
appPolicy == NEARBY_STREAMING_DISABLED, appPolicy == NEARBY_STREAMING_DISABLED,
{ appPolicy = NEARBY_STREAMING_DISABLED } { appPolicy = NEARBY_STREAMING_DISABLED }
) )
RadioButtonItem( RadioButtonItem(
stringResource(R.string.enable_if_secure_enough), R.string.enable_if_secure_enough,
appPolicy == NEARBY_STREAMING_SAME_MANAGED_ACCOUNT_ONLY, appPolicy == NEARBY_STREAMING_SAME_MANAGED_ACCOUNT_ONLY,
{ appPolicy = NEARBY_STREAMING_SAME_MANAGED_ACCOUNT_ONLY } { appPolicy = NEARBY_STREAMING_SAME_MANAGED_ACCOUNT_ONLY }
) )
@@ -617,22 +617,22 @@ private fun NearbyStreamingPolicy() {
Text(text = stringResource(R.string.nearby_notification_streaming), style = typography.titleLarge) Text(text = stringResource(R.string.nearby_notification_streaming), style = typography.titleLarge)
Spacer(Modifier.padding(vertical = 3.dp)) Spacer(Modifier.padding(vertical = 3.dp))
RadioButtonItem( RadioButtonItem(
stringResource(R.string.decide_by_user), R.string.decide_by_user,
notificationPolicy == NEARBY_STREAMING_NOT_CONTROLLED_BY_POLICY, notificationPolicy == NEARBY_STREAMING_NOT_CONTROLLED_BY_POLICY,
{ notificationPolicy = NEARBY_STREAMING_NOT_CONTROLLED_BY_POLICY } { notificationPolicy = NEARBY_STREAMING_NOT_CONTROLLED_BY_POLICY }
) )
RadioButtonItem( RadioButtonItem(
stringResource(R.string.enabled), R.string.enabled,
notificationPolicy == NEARBY_STREAMING_ENABLED, notificationPolicy == NEARBY_STREAMING_ENABLED,
{ notificationPolicy = NEARBY_STREAMING_ENABLED } { notificationPolicy = NEARBY_STREAMING_ENABLED }
) )
RadioButtonItem( RadioButtonItem(
stringResource(R.string.disabled), R.string.disabled,
notificationPolicy == NEARBY_STREAMING_DISABLED, notificationPolicy == NEARBY_STREAMING_DISABLED,
{ notificationPolicy = NEARBY_STREAMING_DISABLED } { notificationPolicy = NEARBY_STREAMING_DISABLED }
) )
RadioButtonItem( RadioButtonItem(
stringResource(R.string.enable_if_secure_enough), R.string.enable_if_secure_enough,
notificationPolicy == NEARBY_STREAMING_SAME_MANAGED_ACCOUNT_ONLY, notificationPolicy == NEARBY_STREAMING_SAME_MANAGED_ACCOUNT_ONLY,
{ notificationPolicy = NEARBY_STREAMING_SAME_MANAGED_ACCOUNT_ONLY } { notificationPolicy = NEARBY_STREAMING_SAME_MANAGED_ACCOUNT_ONLY }
) )
@@ -684,43 +684,43 @@ private fun LockTaskMode() {
Text(text = stringResource(R.string.lock_task_feature), style = typography.headlineLarge) Text(text = stringResource(R.string.lock_task_feature), style = typography.headlineLarge)
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
LaunchedEffect(Unit) { refreshFeature() } LaunchedEffect(Unit) { refreshFeature() }
RadioButtonItem(stringResource(R.string.disable_all), !custom, { custom = false }) RadioButtonItem(R.string.disable_all, !custom, { custom = false })
RadioButtonItem(stringResource(R.string.custom), custom, { custom = true }) RadioButtonItem(R.string.custom, custom, { custom = true })
AnimatedVisibility(custom) { AnimatedVisibility(custom) {
Column { Column {
CheckBoxItem( CheckBoxItem(
stringResource(R.string.ltf_sys_info), R.string.ltf_sys_info,
LOCK_TASK_FEATURE_SYSTEM_INFO in lockTaskFeatures, LOCK_TASK_FEATURE_SYSTEM_INFO in lockTaskFeatures,
{ lockTaskFeatures.toggle(it, LOCK_TASK_FEATURE_SYSTEM_INFO) } { lockTaskFeatures.toggle(it, LOCK_TASK_FEATURE_SYSTEM_INFO) }
) )
CheckBoxItem( CheckBoxItem(
stringResource(R.string.ltf_notifications), R.string.ltf_notifications,
LOCK_TASK_FEATURE_NOTIFICATIONS in lockTaskFeatures, LOCK_TASK_FEATURE_NOTIFICATIONS in lockTaskFeatures,
{ lockTaskFeatures.toggle(it, LOCK_TASK_FEATURE_NOTIFICATIONS) } { lockTaskFeatures.toggle(it, LOCK_TASK_FEATURE_NOTIFICATIONS) }
) )
CheckBoxItem( CheckBoxItem(
stringResource(R.string.ltf_home), R.string.ltf_home,
LOCK_TASK_FEATURE_HOME in lockTaskFeatures, LOCK_TASK_FEATURE_HOME in lockTaskFeatures,
{ lockTaskFeatures.toggle(it, LOCK_TASK_FEATURE_HOME) } { lockTaskFeatures.toggle(it, LOCK_TASK_FEATURE_HOME) }
) )
CheckBoxItem( CheckBoxItem(
stringResource(R.string.ltf_overview), R.string.ltf_overview,
LOCK_TASK_FEATURE_OVERVIEW in lockTaskFeatures, LOCK_TASK_FEATURE_OVERVIEW in lockTaskFeatures,
{ lockTaskFeatures.toggle(it, LOCK_TASK_FEATURE_OVERVIEW) } { lockTaskFeatures.toggle(it, LOCK_TASK_FEATURE_OVERVIEW) }
) )
CheckBoxItem( CheckBoxItem(
stringResource(R.string.ltf_global_actions), R.string.ltf_global_actions,
LOCK_TASK_FEATURE_GLOBAL_ACTIONS in lockTaskFeatures, LOCK_TASK_FEATURE_GLOBAL_ACTIONS in lockTaskFeatures,
{ lockTaskFeatures.toggle(it, LOCK_TASK_FEATURE_GLOBAL_ACTIONS) } { lockTaskFeatures.toggle(it, LOCK_TASK_FEATURE_GLOBAL_ACTIONS) }
) )
CheckBoxItem( CheckBoxItem(
stringResource(R.string.ltf_keyguard), R.string.ltf_keyguard,
LOCK_TASK_FEATURE_KEYGUARD in lockTaskFeatures, LOCK_TASK_FEATURE_KEYGUARD in lockTaskFeatures,
{ lockTaskFeatures.toggle(it, LOCK_TASK_FEATURE_KEYGUARD) } { lockTaskFeatures.toggle(it, LOCK_TASK_FEATURE_KEYGUARD) }
) )
if(VERSION.SDK_INT >= 30) { if(VERSION.SDK_INT >= 30) {
CheckBoxItem( CheckBoxItem(
stringResource(R.string.ltf_block_activity_start_in_task), R.string.ltf_block_activity_start_in_task,
LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK in lockTaskFeatures, LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK in lockTaskFeatures,
{ lockTaskFeatures.toggle(it, LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK) } { lockTaskFeatures.toggle(it, LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK) }
) )
@@ -1004,7 +1004,7 @@ fun FactoryResetProtection() {
} }
AnimatedVisibility(usePolicy) { AnimatedVisibility(usePolicy) {
Column { Column {
CheckBoxItem(stringResource(R.string.enable_frp), enabled, { enabled = it }) CheckBoxItem(R.string.enable_frp, enabled, { enabled = it })
Text(stringResource(R.string.account_list_is)) Text(stringResource(R.string.account_list_is))
Text( Text(
text = if(accountList.isEmpty()) stringResource(R.string.none) else accountList.toText(), text = if(accountList.isEmpty()) stringResource(R.string.none) else accountList.toText(),
@@ -1087,16 +1087,16 @@ private fun WipeData() {
) )
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
CheckBoxItem( CheckBoxItem(
stringResource(R.string.wipe_external_storage), R.string.wipe_external_storage,
externalStorage, { externalStorage = it } externalStorage, { externalStorage = it }
) )
if(VERSION.SDK_INT >= 22 && context.isDeviceOwner) { if(VERSION.SDK_INT >= 22 && context.isDeviceOwner) {
CheckBoxItem(stringResource(R.string.wipe_reset_protection_data), CheckBoxItem(R.string.wipe_reset_protection_data,
protectionData, { protectionData = it } protectionData, { protectionData = it }
) )
} }
if(VERSION.SDK_INT >= 28) { CheckBoxItem(stringResource(R.string.wipe_euicc), euicc, { euicc = it }) } if(VERSION.SDK_INT >= 28) { CheckBoxItem(R.string.wipe_euicc, euicc, { euicc = it }) }
if(VERSION.SDK_INT >= 29) { CheckBoxItem(stringResource(R.string.wipe_silently), silent, { silent = it }) } if(VERSION.SDK_INT >= 29) { CheckBoxItem(R.string.wipe_silently, silent, { silent = it }) }
AnimatedVisibility(!silent && VERSION.SDK_INT >= 28) { AnimatedVisibility(!silent && VERSION.SDK_INT >= 28) {
OutlinedTextField( OutlinedTextField(
value = reason, onValueChange = { reason = it }, value = reason, onValueChange = { reason = it },
@@ -1189,18 +1189,18 @@ private fun SysUpdatePolicy() {
Text(text = stringResource(R.string.system_update_policy), style = typography.headlineLarge) Text(text = stringResource(R.string.system_update_policy), style = typography.headlineLarge)
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
RadioButtonItem( RadioButtonItem(
stringResource(R.string.system_update_policy_automatic), R.string.system_update_policy_automatic,
selectedPolicy == TYPE_INSTALL_AUTOMATIC, { selectedPolicy = TYPE_INSTALL_AUTOMATIC } selectedPolicy == TYPE_INSTALL_AUTOMATIC, { selectedPolicy = TYPE_INSTALL_AUTOMATIC }
) )
RadioButtonItem( RadioButtonItem(
stringResource(R.string.system_update_policy_install_windowed), R.string.system_update_policy_install_windowed,
selectedPolicy == TYPE_INSTALL_WINDOWED, { selectedPolicy = TYPE_INSTALL_WINDOWED } selectedPolicy == TYPE_INSTALL_WINDOWED, { selectedPolicy = TYPE_INSTALL_WINDOWED }
) )
RadioButtonItem( RadioButtonItem(
stringResource(R.string.system_update_policy_postpone), R.string.system_update_policy_postpone,
selectedPolicy == TYPE_POSTPONE, { selectedPolicy = TYPE_POSTPONE } selectedPolicy == TYPE_POSTPONE, { selectedPolicy = TYPE_POSTPONE }
) )
RadioButtonItem(stringResource(R.string.none), selectedPolicy == null, { selectedPolicy = null }) RadioButtonItem(R.string.none, selectedPolicy == null, { selectedPolicy = null })
var windowedPolicyStart by remember { mutableStateOf("") } var windowedPolicyStart by remember { mutableStateOf("") }
var windowedPolicyEnd by remember { mutableStateOf("") } var windowedPolicyEnd by remember { mutableStateOf("") }
if(selectedPolicy == 2) { if(selectedPolicy == 2) {

View File

@@ -201,7 +201,7 @@ private fun UserOperation() {
) )
Spacer(Modifier.padding(vertical = 3.dp)) Spacer(Modifier.padding(vertical = 3.dp))
if(VERSION.SDK_INT >= 24) { if(VERSION.SDK_INT >= 24) {
CheckBoxItem(text = stringResource(R.string.use_uid), checked = useUid, operation = { idInput=""; useUid = it }) CheckBoxItem(text = R.string.use_uid, checked = useUid, operation = { idInput=""; useUid = it })
} }
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
if(VERSION.SDK_INT > 28) { if(VERSION.SDK_INT > 28) {
@@ -295,20 +295,20 @@ private fun CreateUser() {
) )
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
var selectedFlag by remember { mutableIntStateOf(0) } var selectedFlag by remember { mutableIntStateOf(0) }
RadioButtonItem(stringResource(R.string.none), selectedFlag == 0, { selectedFlag = 0 }) RadioButtonItem(R.string.none, selectedFlag == 0, { selectedFlag = 0 })
RadioButtonItem( RadioButtonItem(
stringResource(R.string.create_user_skip_wizard), R.string.create_user_skip_wizard,
selectedFlag == DevicePolicyManager.SKIP_SETUP_WIZARD, selectedFlag == DevicePolicyManager.SKIP_SETUP_WIZARD,
{ selectedFlag = DevicePolicyManager.SKIP_SETUP_WIZARD } { selectedFlag = DevicePolicyManager.SKIP_SETUP_WIZARD }
) )
if(VERSION.SDK_INT >= 28) { if(VERSION.SDK_INT >= 28) {
RadioButtonItem( RadioButtonItem(
stringResource(R.string.create_user_ephemeral_user), R.string.create_user_ephemeral_user,
selectedFlag == DevicePolicyManager.MAKE_USER_EPHEMERAL, selectedFlag == DevicePolicyManager.MAKE_USER_EPHEMERAL,
{ selectedFlag = DevicePolicyManager.MAKE_USER_EPHEMERAL } { selectedFlag = DevicePolicyManager.MAKE_USER_EPHEMERAL }
) )
RadioButtonItem( RadioButtonItem(
stringResource(R.string.create_user_enable_all_system_app), R.string.create_user_enable_all_system_app,
selectedFlag == DevicePolicyManager.LEAVE_ALL_SYSTEM_APPS_ENABLED, selectedFlag == DevicePolicyManager.LEAVE_ALL_SYSTEM_APPS_ENABLED,
{ selectedFlag = DevicePolicyManager.LEAVE_ALL_SYSTEM_APPS_ENABLED } { selectedFlag = DevicePolicyManager.LEAVE_ALL_SYSTEM_APPS_ENABLED }
) )
@@ -507,7 +507,7 @@ private fun UserIcon() {
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
Text(text = stringResource(R.string.pick_a_square_image)) Text(text = stringResource(R.string.pick_a_square_image))
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
CheckBoxItem(stringResource(R.string.file_picker_instead_gallery), getContent, { getContent = it }) CheckBoxItem(R.string.file_picker_instead_gallery, getContent, { getContent = it })
Spacer(Modifier.padding(vertical = 5.dp)) Spacer(Modifier.padding(vertical = 5.dp))
Button( Button(
onClick = { onClick = {

View File

@@ -77,6 +77,16 @@ fun Information(content: @Composable ()->Unit) {
} }
} }
@Composable
fun RadioButtonItem(
@StringRes text: Int,
selected: Boolean,
operation: () -> Unit,
textColor: Color = colorScheme.onBackground
) {
RadioButtonItem(stringResource(text), selected, operation, textColor)
}
@Composable @Composable
fun RadioButtonItem( fun RadioButtonItem(
text: String, text: String,
@@ -96,7 +106,7 @@ fun RadioButtonItem(
@Composable @Composable
fun CheckBoxItem( fun CheckBoxItem(
text: String, @StringRes text: Int,
checked: Boolean, checked: Boolean,
operation: (Boolean) -> Unit, operation: (Boolean) -> Unit,
textColor: Color = colorScheme.onBackground textColor: Color = colorScheme.onBackground
@@ -110,7 +120,7 @@ fun CheckBoxItem(
checked = checked, checked = checked,
onCheckedChange = operation onCheckedChange = operation
) )
Text(text = text, color = textColor, modifier = Modifier.padding(bottom = if(zhCN) { 2 } else { 0 }.dp)) Text(text = stringResource(text), color = textColor, modifier = Modifier.padding(bottom = if(zhCN) { 2 } else { 0 }.dp))
} }
} }

View File

@@ -220,7 +220,7 @@
<string name="network"></string> <string name="network"></string>
<string name="wifi_mac_addr">Wi-Fi MAC adresi</string> <string name="wifi_mac_addr">Wi-Fi MAC adresi</string>
<string name="min_wifi_security_level">Minimum Wi-Fi güvenlik seviyesi</string> <string name="min_wifi_security_level">Minimum Wi-Fi güvenlik seviyesi</string>
<string name="wifi_security_level_open">ık</string> <string name="wifi_security_open">ık</string>
<string name="preferential_network_service">Tercihli ağ hizmeti</string> <string name="preferential_network_service">Tercihli ağ hizmeti</string>
<string name="lockdown_admin_configured_network">Yönetici tarafından yapılandırılmış ağı kilitle</string> <string name="lockdown_admin_configured_network">Yönetici tarafından yapılandırılmış ağı kilitle</string>
<string name="wifi_ssid_policy">WiFi SSID politikası</string> <string name="wifi_ssid_policy">WiFi SSID politikası</string>

View File

@@ -215,7 +215,7 @@
<string name="network">网络</string> <string name="network">网络</string>
<string name="wifi_mac_addr">Wi-Fi Mac地址</string> <string name="wifi_mac_addr">Wi-Fi Mac地址</string>
<string name="min_wifi_security_level">最低WiFi安全等级</string> <string name="min_wifi_security_level">最低WiFi安全等级</string>
<string name="wifi_security_level_open">开放</string> <string name="wifi_security_open">开放</string>
<string name="preferential_network_service">优先网络服务</string> <string name="preferential_network_service">优先网络服务</string>
<string name="lockdown_admin_configured_network">锁定由管理员配置的网络</string> <string name="lockdown_admin_configured_network">锁定由管理员配置的网络</string>
<string name="wifi_ssid_policy">WiFi SSID策略</string> <string name="wifi_ssid_policy">WiFi SSID策略</string>

View File

@@ -225,14 +225,14 @@
<string name="network">Network</string> <string name="network">Network</string>
<string name="wifi_mac_addr">Wi-Fi Mac address</string> <string name="wifi_mac_addr">Wi-Fi Mac address</string>
<string name="min_wifi_security_level">Min Wi-Fi security level</string> <string name="min_wifi_security_level">Min Wi-Fi security level</string>
<string name="wifi_security_level_open">Open</string> <string name="wifi_security_open">Open</string>
<string name="preferential_network_service">Preferential network service</string> <string name="preferential_network_service">Preferential network service</string>
<string name="lockdown_admin_configured_network">Lockdown admin configured network</string> <string name="lockdown_admin_configured_network">Lockdown admin configured network</string>
<string name="wifi_ssid_policy">WiFi SSID policy</string> <string name="wifi_ssid_policy">WiFi SSID policy</string>
<string name="ssid_list_is">SSID list: </string> <string name="ssid_list_is">SSID list: </string>
<string name="cannot_be_empty">Cannot be empty</string> <string name="cannot_be_empty">Cannot be empty</string>
<string name="already_exist">Already exist</string> <string name="already_exist">Already exist</string>
<string name="private_dns">PrivateDNS</string> <string name="private_dns">Private DNS</string>
<string name="dns_provide_hostname">Provide hostname</string> <string name="dns_provide_hostname">Provide hostname</string>
<string name="host_not_serving_dns_tls">Host not serving</string> <string name="host_not_serving_dns_tls">Host not serving</string>
<string name="set_to_opportunistic">Set to opportunistic</string> <string name="set_to_opportunistic">Set to opportunistic</string>