mirror of
https://github.com/awfixers-stuff/OwnDroid.git
synced 2026-03-23 11:05:59 +00:00
use a dialog to confirm wipe data
This commit is contained in:
@@ -40,7 +40,6 @@ import android.content.ComponentName
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Binder
|
|
||||||
import android.os.Build.VERSION
|
import android.os.Build.VERSION
|
||||||
import android.os.UserManager
|
import android.os.UserManager
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
@@ -225,7 +224,7 @@ private fun Home(navCtrl: NavHostController, scrollState: ScrollState, rebootDia
|
|||||||
SubPageItem(R.string.frp_policy, "", R.drawable.device_reset_fill0) { navCtrl.navigate("FRP") }
|
SubPageItem(R.string.frp_policy, "", R.drawable.device_reset_fill0) { navCtrl.navigate("FRP") }
|
||||||
}
|
}
|
||||||
if(dpm.isAdminActive(receiver)) {
|
if(dpm.isAdminActive(receiver)) {
|
||||||
SubPageItem(R.string.wipe_data, "", R.drawable.warning_fill0) { navCtrl.navigate("WipeData") }
|
SubPageItem(R.string.wipe_data, "", R.drawable.device_reset_fill0) { navCtrl.navigate("WipeData") }
|
||||||
}
|
}
|
||||||
Spacer(Modifier.padding(vertical = 30.dp))
|
Spacer(Modifier.padding(vertical = 30.dp))
|
||||||
LaunchedEffect(Unit) { fileUriFlow.value = Uri.parse("") }
|
LaunchedEffect(Unit) { fileUriFlow.value = Uri.parse("") }
|
||||||
@@ -1064,6 +1063,7 @@ fun FactoryResetProtection() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("NewApi")
|
||||||
@Composable
|
@Composable
|
||||||
private fun WipeData() {
|
private fun WipeData() {
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
@@ -1071,14 +1071,14 @@ private fun WipeData() {
|
|||||||
val dpm = context.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
|
val dpm = context.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
|
||||||
val receiver = ComponentName(context,Receiver::class.java)
|
val receiver = ComponentName(context,Receiver::class.java)
|
||||||
val focusMgr = LocalFocusManager.current
|
val focusMgr = LocalFocusManager.current
|
||||||
|
var warning by remember { mutableStateOf(false) }
|
||||||
|
var wipeDevice by remember { mutableStateOf(false) }
|
||||||
|
var externalStorage by remember { mutableStateOf(false) }
|
||||||
|
var protectionData by remember { mutableStateOf(false) }
|
||||||
|
var euicc by remember { mutableStateOf(false) }
|
||||||
|
var silent by remember { mutableStateOf(false) }
|
||||||
|
var reason by remember { mutableStateOf("") }
|
||||||
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())) {
|
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())) {
|
||||||
var flag by remember { mutableIntStateOf(0) }
|
|
||||||
var confirmed by remember { mutableStateOf(false) }
|
|
||||||
var externalStorage by remember { mutableStateOf(false) }
|
|
||||||
var protectionData by remember { mutableStateOf(false) }
|
|
||||||
var euicc by remember { mutableStateOf(false) }
|
|
||||||
var silent by remember { mutableStateOf(false) }
|
|
||||||
var reason by remember { mutableStateOf("") }
|
|
||||||
Spacer(Modifier.padding(vertical = 10.dp))
|
Spacer(Modifier.padding(vertical = 10.dp))
|
||||||
Text(
|
Text(
|
||||||
text = stringResource(R.string.wipe_data),
|
text = stringResource(R.string.wipe_data),
|
||||||
@@ -1088,62 +1088,44 @@ private fun WipeData() {
|
|||||||
Spacer(Modifier.padding(vertical = 5.dp))
|
Spacer(Modifier.padding(vertical = 5.dp))
|
||||||
CheckBoxItem(
|
CheckBoxItem(
|
||||||
stringResource(R.string.wipe_external_storage),
|
stringResource(R.string.wipe_external_storage),
|
||||||
externalStorage, { externalStorage = it; confirmed = false }
|
externalStorage, { externalStorage = it }
|
||||||
)
|
)
|
||||||
if(VERSION.SDK_INT >= 22 && isDeviceOwner(dpm)) {
|
if(VERSION.SDK_INT >= 22 && isDeviceOwner(dpm)) {
|
||||||
CheckBoxItem(stringResource(R.string.wipe_reset_protection_data),
|
CheckBoxItem(stringResource(R.string.wipe_reset_protection_data),
|
||||||
protectionData, { protectionData = it; confirmed = false}
|
protectionData, { protectionData = it }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if(VERSION.SDK_INT >= 28) { CheckBoxItem(stringResource(R.string.wipe_euicc), euicc, { euicc = it; confirmed = false }) }
|
if(VERSION.SDK_INT >= 28) { CheckBoxItem(stringResource(R.string.wipe_euicc), euicc, { euicc = it }) }
|
||||||
if(VERSION.SDK_INT >= 29) { CheckBoxItem(stringResource(R.string.wipe_silently), silent, { silent = it; confirmed = false }) }
|
if(VERSION.SDK_INT >= 29) { CheckBoxItem(stringResource(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 },
|
||||||
label = { Text(stringResource(R.string.reason)) },
|
label = { Text(stringResource(R.string.reason)) },
|
||||||
enabled = !confirmed,
|
|
||||||
modifier = Modifier.fillMaxWidth().padding(vertical = 3.dp)
|
modifier = Modifier.fillMaxWidth().padding(vertical = 3.dp)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
Spacer(Modifier.padding(vertical = 5.dp))
|
Spacer(Modifier.padding(vertical = 5.dp))
|
||||||
Button(
|
if(VERSION.SDK_INT < 34 || (VERSION.SDK_INT >= 34 && !userManager.isSystemUser)) {
|
||||||
onClick = {
|
Button(
|
||||||
focusMgr.clearFocus()
|
onClick = {
|
||||||
flag = 0
|
focusMgr.clearFocus()
|
||||||
if(externalStorage) { flag += WIPE_EXTERNAL_STORAGE }
|
wipeDevice = false
|
||||||
if(protectionData && VERSION.SDK_INT >= 22) { flag += WIPE_RESET_PROTECTION_DATA }
|
warning = true
|
||||||
if(euicc && VERSION.SDK_INT >= 28) { flag += WIPE_EUICC }
|
},
|
||||||
if(reason == "") { silent = true }
|
colors = ButtonDefaults.buttonColors(containerColor = colorScheme.error, contentColor = colorScheme.onError),
|
||||||
if(silent && VERSION.SDK_INT >= 29) { flag += WIPE_SILENTLY }
|
modifier = Modifier.fillMaxWidth()
|
||||||
confirmed = !confirmed
|
) {
|
||||||
},
|
Text("WipeData")
|
||||||
colors = ButtonDefaults.buttonColors(
|
}
|
||||||
containerColor = if(confirmed) colorScheme.primary else colorScheme.error ,
|
|
||||||
contentColor = if(confirmed) colorScheme.onPrimary else colorScheme.onError
|
|
||||||
),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
|
||||||
) {
|
|
||||||
Text(text = stringResource(if(confirmed) R.string.cancel else R.string.confirm))
|
|
||||||
}
|
|
||||||
Button(
|
|
||||||
onClick = {
|
|
||||||
if(VERSION.SDK_INT >= 28 && reason != "") {
|
|
||||||
dpm.wipeData(flag, reason)
|
|
||||||
}else{
|
|
||||||
dpm.wipeData(flag)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
colors = ButtonDefaults.buttonColors(containerColor = colorScheme.error, contentColor = colorScheme.onError),
|
|
||||||
enabled = confirmed && (VERSION.SDK_INT < 34 || (VERSION.SDK_INT >= 34 && !userManager.isSystemUser)),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
|
||||||
) {
|
|
||||||
Text("WipeData")
|
|
||||||
}
|
}
|
||||||
if (VERSION.SDK_INT >= 34 && (isDeviceOwner(dpm) || dpm.isOrgProfile(receiver))) {
|
if (VERSION.SDK_INT >= 34 && (isDeviceOwner(dpm) || dpm.isOrgProfile(receiver))) {
|
||||||
Button(
|
Button(
|
||||||
onClick = { dpm.wipeDevice(flag) },
|
onClick = {
|
||||||
|
focusMgr.clearFocus()
|
||||||
|
wipeDevice = true
|
||||||
|
warning = true
|
||||||
|
},
|
||||||
colors = ButtonDefaults.buttonColors(containerColor = colorScheme.error, contentColor = colorScheme.onError),
|
colors = ButtonDefaults.buttonColors(containerColor = colorScheme.error, contentColor = colorScheme.onError),
|
||||||
enabled = confirmed,
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text("WipeDevice")
|
Text("WipeDevice")
|
||||||
@@ -1153,11 +1135,52 @@ private fun WipeData() {
|
|||||||
if(VERSION.SDK_INT >= 24 && isProfileOwner(dpm) && dpm.isManagedProfile(receiver)) {
|
if(VERSION.SDK_INT >= 24 && isProfileOwner(dpm) && dpm.isManagedProfile(receiver)) {
|
||||||
Information{ Text(text = stringResource(R.string.will_delete_work_profile)) }
|
Information{ Text(text = stringResource(R.string.will_delete_work_profile)) }
|
||||||
}
|
}
|
||||||
if(VERSION.SDK_INT >= 34 && Binder.getCallingUid()/100000 == 0) {
|
|
||||||
Information{ Text(text = stringResource(R.string.api34_or_above_wipedata_cannot_in_system_user)) }
|
|
||||||
}
|
|
||||||
Spacer(Modifier.padding(vertical = 30.dp))
|
Spacer(Modifier.padding(vertical = 30.dp))
|
||||||
}
|
}
|
||||||
|
if(warning) {
|
||||||
|
LaunchedEffect(Unit) { silent = reason == "" }
|
||||||
|
AlertDialog(
|
||||||
|
title = {
|
||||||
|
Text(text = stringResource(R.string.warning), color = colorScheme.error)
|
||||||
|
},
|
||||||
|
text = {
|
||||||
|
Text(text = stringResource(
|
||||||
|
if(VERSION.SDK_INT >= 24 && isProfileOwner(dpm) && dpm.isManagedProfile(receiver)) R.string.wipe_work_profile_warning
|
||||||
|
else R.string.wipe_data_warning),
|
||||||
|
color = colorScheme.error
|
||||||
|
)
|
||||||
|
},
|
||||||
|
onDismissRequest = { warning = false },
|
||||||
|
confirmButton = {
|
||||||
|
TextButton(
|
||||||
|
onClick = {
|
||||||
|
var flag = 0
|
||||||
|
if(externalStorage) { flag += WIPE_EXTERNAL_STORAGE }
|
||||||
|
if(protectionData && VERSION.SDK_INT >= 22) { flag += WIPE_RESET_PROTECTION_DATA }
|
||||||
|
if(euicc && VERSION.SDK_INT >= 28) { flag += WIPE_EUICC }
|
||||||
|
if(silent && VERSION.SDK_INT >= 29) { flag += WIPE_SILENTLY }
|
||||||
|
if(wipeDevice) {
|
||||||
|
dpm.wipeDevice(flag)
|
||||||
|
} else {
|
||||||
|
if(VERSION.SDK_INT >= 28 && reason != "") {
|
||||||
|
dpm.wipeData(flag, reason)
|
||||||
|
} else {
|
||||||
|
dpm.wipeData(flag)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
colors = ButtonDefaults.textButtonColors(contentColor = colorScheme.error)
|
||||||
|
) {
|
||||||
|
Text(stringResource(R.string.confirm))
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dismissButton = {
|
||||||
|
TextButton(onClick = { warning = false }) {
|
||||||
|
Text(stringResource(R.string.cancel))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|||||||
@@ -51,10 +51,10 @@
|
|||||||
<string name="current_status_is">Mevcut Durum: </string>
|
<string name="current_status_is">Mevcut Durum: </string>
|
||||||
<string name="start">Başlat</string>
|
<string name="start">Başlat</string>
|
||||||
<string name="stop">Stop</string> <!--TODO-->
|
<string name="stop">Stop</string> <!--TODO-->
|
||||||
<string name="unknown_error">Bilinmeyen Hata</string>
|
|
||||||
<string name="allow_all">Tümünü İzin Ver</string>
|
<string name="allow_all">Tümünü İzin Ver</string>
|
||||||
<string name="use_policy">Politika Kullan</string>
|
<string name="use_policy">Politika Kullan</string>
|
||||||
<string name="account">Hesap</string>
|
<string name="account">Hesap</string>
|
||||||
|
<string name="warning">Warning</string> <!--TODO-->
|
||||||
|
|
||||||
<!--Permissions-->
|
<!--Permissions-->
|
||||||
<string name="click_to_activate">Etkinleştirmek İçin Tıklayın</string>
|
<string name="click_to_activate">Etkinleştirmek İçin Tıklayın</string>
|
||||||
@@ -167,7 +167,6 @@
|
|||||||
<string name="ltf_global_actions">Küresel eylemlere izin ver</string>
|
<string name="ltf_global_actions">Küresel eylemlere izin ver</string>
|
||||||
<string name="ltf_keyguard">Ekran kilidine izin ver</string>
|
<string name="ltf_keyguard">Ekran kilidine izin ver</string>
|
||||||
<string name="ltf_block_activity_start_in_task">Görevde etkinlik başlatmayı engelle</string>
|
<string name="ltf_block_activity_start_in_task">Görevde etkinlik başlatmayı engelle</string>
|
||||||
<string name="whitelist_app">Beyaz listeye alınan uygulama</string>
|
|
||||||
<string name="ca_cert">CA sertifikası</string>
|
<string name="ca_cert">CA sertifikası</string>
|
||||||
<string name="please_select_ca_cert">Lütfen bir sertifika seçin</string>
|
<string name="please_select_ca_cert">Lütfen bir sertifika seçin</string>
|
||||||
<string name="cacert_installed">Yüklenen sertifika: %1$s</string>
|
<string name="cacert_installed">Yüklenen sertifika: %1$s</string>
|
||||||
@@ -181,7 +180,8 @@
|
|||||||
<string name="wipe_euicc">eUICC (eSIM) sil</string>
|
<string name="wipe_euicc">eUICC (eSIM) sil</string>
|
||||||
<string name="wipe_silently">Sessizce sil</string>
|
<string name="wipe_silently">Sessizce sil</string>
|
||||||
<string name="will_delete_work_profile">Çalışma profili silinecek</string>
|
<string name="will_delete_work_profile">Çalışma profili silinecek</string>
|
||||||
<string name="api34_or_above_wipedata_cannot_in_system_user">System user\'da WipeData kullanamazsınız</string>
|
<string name="wipe_data_warning">All data on your device will be ERASED</string> <!--TODO-->
|
||||||
|
<string name="wipe_work_profile_warning">Your work profile will be REMOVED</string> <!--TODO-->
|
||||||
<string name="encrypt_status_is">Şifreleme durumu: </string>
|
<string name="encrypt_status_is">Şifreleme durumu: </string>
|
||||||
<string name="frp_policy">FRP politikası</string>
|
<string name="frp_policy">FRP politikası</string>
|
||||||
<string name="factory_reset_protection_policy">Fabrika ayarlarına sıfırlama koruma politikası</string>
|
<string name="factory_reset_protection_policy">Fabrika ayarlarına sıfırlama koruma politikası</string>
|
||||||
@@ -220,7 +220,6 @@
|
|||||||
<string name="ssid_list_is">SSID listesi: </string>
|
<string name="ssid_list_is">SSID listesi: </string>
|
||||||
<string name="cannot_be_empty">Boş olamaz</string>
|
<string name="cannot_be_empty">Boş olamaz</string>
|
||||||
<string name="already_exist">Zaten mevcut</string>
|
<string name="already_exist">Zaten mevcut</string>
|
||||||
<string name="please_select_a_policy">Lütfen bir politika seçin</string>
|
|
||||||
<string name="private_dns">Özel DNS</string>
|
<string name="private_dns">Özel DNS</string>
|
||||||
<string name="dns_provide_hostname">Ana bilgisayar adı sağlayın</string>
|
<string name="dns_provide_hostname">Ana bilgisayar adı sağlayın</string>
|
||||||
<string name="host_not_serving_dns_tls">Ana bilgisayar hizmet vermiyor</string>
|
<string name="host_not_serving_dns_tls">Ana bilgisayar hizmet vermiyor</string>
|
||||||
|
|||||||
@@ -48,10 +48,10 @@
|
|||||||
<string name="current_status_is">当前状态:</string>
|
<string name="current_status_is">当前状态:</string>
|
||||||
<string name="start">开始</string>
|
<string name="start">开始</string>
|
||||||
<string name="stop">停止</string>
|
<string name="stop">停止</string>
|
||||||
<string name="unknown_error">未知错误</string>
|
|
||||||
<string name="allow_all">允许全部</string>
|
<string name="allow_all">允许全部</string>
|
||||||
<string name="use_policy">使用策略</string>
|
<string name="use_policy">使用策略</string>
|
||||||
<string name="account">账户</string>
|
<string name="account">账户</string>
|
||||||
|
<string name="warning">警告</string>
|
||||||
|
|
||||||
<!--Permissions-->
|
<!--Permissions-->
|
||||||
<string name="click_to_activate">点击以激活</string>
|
<string name="click_to_activate">点击以激活</string>
|
||||||
@@ -160,7 +160,6 @@
|
|||||||
<string name="ltf_global_actions">允许全局行为(比如长按电源键对话框)</string>
|
<string name="ltf_global_actions">允许全局行为(比如长按电源键对话框)</string>
|
||||||
<string name="ltf_keyguard">允许锁屏</string>
|
<string name="ltf_keyguard">允许锁屏</string>
|
||||||
<string name="ltf_block_activity_start_in_task">阻止启动未允许的应用</string>
|
<string name="ltf_block_activity_start_in_task">阻止启动未允许的应用</string>
|
||||||
<string name="whitelist_app">白名单应用</string>
|
|
||||||
<string name="package_name">包名</string>
|
<string name="package_name">包名</string>
|
||||||
<string name="not_exist">不存在</string>
|
<string name="not_exist">不存在</string>
|
||||||
<string name="ca_cert">Ca证书</string>
|
<string name="ca_cert">Ca证书</string>
|
||||||
@@ -176,7 +175,8 @@
|
|||||||
<string name="wipe_euicc">清除eUICC(eSIM)</string>
|
<string name="wipe_euicc">清除eUICC(eSIM)</string>
|
||||||
<string name="wipe_silently">静默清除</string>
|
<string name="wipe_silently">静默清除</string>
|
||||||
<string name="will_delete_work_profile">将会删除工作资料</string>
|
<string name="will_delete_work_profile">将会删除工作资料</string>
|
||||||
<string name="api34_or_above_wipedata_cannot_in_system_user">API34或以上将不能在系统用户中使用WipeData</string>
|
<string name="wipe_data_warning">你的设备上的所有数据将会被清除</string>
|
||||||
|
<string name="wipe_work_profile_warning">你的工作资料将会被删除</string>
|
||||||
<string name="encrypt_status_is">加密状态:</string>
|
<string name="encrypt_status_is">加密状态:</string>
|
||||||
<string name="frp_policy">FRP策略</string>
|
<string name="frp_policy">FRP策略</string>
|
||||||
<string name="factory_reset_protection_policy">恢复出厂设置保护策略</string>
|
<string name="factory_reset_protection_policy">恢复出厂设置保护策略</string>
|
||||||
@@ -215,7 +215,6 @@
|
|||||||
<string name="ssid_list_is">SSID列表:</string>
|
<string name="ssid_list_is">SSID列表:</string>
|
||||||
<string name="cannot_be_empty">不能为空</string>
|
<string name="cannot_be_empty">不能为空</string>
|
||||||
<string name="already_exist">已经存在</string>
|
<string name="already_exist">已经存在</string>
|
||||||
<string name="please_select_a_policy">请选择策略</string>
|
|
||||||
<string name="private_dns">私人DNS</string>
|
<string name="private_dns">私人DNS</string>
|
||||||
<string name="dns_provide_hostname">指定主机名</string>
|
<string name="dns_provide_hostname">指定主机名</string>
|
||||||
<string name="host_not_serving_dns_tls">主机不支持</string>
|
<string name="host_not_serving_dns_tls">主机不支持</string>
|
||||||
|
|||||||
@@ -51,10 +51,10 @@
|
|||||||
<string name="current_status_is">Current status: </string>
|
<string name="current_status_is">Current status: </string>
|
||||||
<string name="start">Start</string>
|
<string name="start">Start</string>
|
||||||
<string name="stop">Stop</string>
|
<string name="stop">Stop</string>
|
||||||
<string name="unknown_error">Unknown error</string>
|
|
||||||
<string name="allow_all">Allow all</string>
|
<string name="allow_all">Allow all</string>
|
||||||
<string name="use_policy">Use policy</string>
|
<string name="use_policy">Use policy</string>
|
||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
|
<string name="warning">Warning</string>
|
||||||
|
|
||||||
<!--Permissions-->
|
<!--Permissions-->
|
||||||
<string name="click_to_activate">Click to activate</string>
|
<string name="click_to_activate">Click to activate</string>
|
||||||
@@ -172,7 +172,6 @@
|
|||||||
<string name="ltf_global_actions">Allow global actions</string>
|
<string name="ltf_global_actions">Allow global actions</string>
|
||||||
<string name="ltf_keyguard">Allow keyguard</string>
|
<string name="ltf_keyguard">Allow keyguard</string>
|
||||||
<string name="ltf_block_activity_start_in_task">Block activity start in task</string>
|
<string name="ltf_block_activity_start_in_task">Block activity start in task</string>
|
||||||
<string name="whitelist_app">Whitelisted app</string>
|
|
||||||
<string name="ca_cert">Ca certification</string>
|
<string name="ca_cert">Ca certification</string>
|
||||||
<string name="please_select_ca_cert">Please select a certification</string>
|
<string name="please_select_ca_cert">Please select a certification</string>
|
||||||
<string name="cacert_installed">Cert installed: %1$s</string>
|
<string name="cacert_installed">Cert installed: %1$s</string>
|
||||||
@@ -186,7 +185,8 @@
|
|||||||
<string name="wipe_euicc">Wipe eUICC(eSIM)</string>
|
<string name="wipe_euicc">Wipe eUICC(eSIM)</string>
|
||||||
<string name="wipe_silently">Wipe silently</string>
|
<string name="wipe_silently">Wipe silently</string>
|
||||||
<string name="will_delete_work_profile">Work profile will be deleted. </string>
|
<string name="will_delete_work_profile">Work profile will be deleted. </string>
|
||||||
<string name="api34_or_above_wipedata_cannot_in_system_user">You cannot use WipeData in system user. </string>
|
<string name="wipe_data_warning">All data on your device will be ERASED</string>
|
||||||
|
<string name="wipe_work_profile_warning">Your work profile will be REMOVED</string>
|
||||||
<string name="encrypt_status_is">Encrypt status: </string>
|
<string name="encrypt_status_is">Encrypt status: </string>
|
||||||
<string name="frp_policy">FRP policy</string>
|
<string name="frp_policy">FRP policy</string>
|
||||||
<string name="factory_reset_protection_policy">Factory reset protection policy</string>
|
<string name="factory_reset_protection_policy">Factory reset protection policy</string>
|
||||||
@@ -226,7 +226,6 @@
|
|||||||
<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="please_select_a_policy">Please select a policy</string>
|
|
||||||
<string name="private_dns">PrivateDNS</string>
|
<string name="private_dns">PrivateDNS</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>
|
||||||
|
|||||||
Reference in New Issue
Block a user