mirror of
https://github.com/awfixers-stuff/OwnDroid.git
synced 2026-03-23 19:15:58 +00:00
hide some entries if permission is not enough
This commit is contained in:
@@ -268,7 +268,7 @@ private fun Home(
|
|||||||
if(VERSION.SDK_INT>=28&&isDeviceOwner(dpm)) {
|
if(VERSION.SDK_INT>=28&&isDeviceOwner(dpm)) {
|
||||||
SubPageItem(R.string.keep_uninstalled_packages, "", R.drawable.delete_fill0) { navCtrl.navigate("KeepUninstalled") }
|
SubPageItem(R.string.keep_uninstalled_packages, "", R.drawable.delete_fill0) { navCtrl.navigate("KeepUninstalled") }
|
||||||
}
|
}
|
||||||
if(VERSION.SDK_INT>=28) {
|
if(VERSION.SDK_INT>=28 && (isDeviceOwner(dpm) || isProfileOwner(dpm))) {
|
||||||
SubPageItem(R.string.clear_app_storage, "", R.drawable.mop_fill0) {
|
SubPageItem(R.string.clear_app_storage, "", R.drawable.mop_fill0) {
|
||||||
if(pkgName != "") { clearAppDataDialog.value = true }
|
if(pkgName != "") { clearAppDataDialog.value = true }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package com.bintianqi.owndroid.dpm
|
package com.bintianqi.owndroid.dpm
|
||||||
|
|
||||||
import android.app.admin.DevicePolicyManager
|
import android.app.admin.DevicePolicyManager
|
||||||
|
import android.content.ComponentName
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.os.Build.VERSION
|
||||||
import androidx.activity.result.ActivityResultLauncher
|
import androidx.activity.result.ActivityResultLauncher
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
|
|
||||||
@@ -16,3 +18,7 @@ fun isDeviceOwner(dpm: DevicePolicyManager): Boolean {
|
|||||||
fun isProfileOwner(dpm: DevicePolicyManager): Boolean {
|
fun isProfileOwner(dpm: DevicePolicyManager): Boolean {
|
||||||
return dpm.isProfileOwnerApp("com.bintianqi.owndroid")
|
return dpm.isProfileOwnerApp("com.bintianqi.owndroid")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun DevicePolicyManager.isOrgProfile(receiver: ComponentName):Boolean {
|
||||||
|
return VERSION.SDK_INT >= 30 && isProfileOwner(this) && isManagedProfile(receiver) && isOrganizationOwnedDeviceWithManagedProfile
|
||||||
|
}
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ private fun Home(navCtrl: NavHostController) {
|
|||||||
if(VERSION.SDK_INT<24 || (VERSION.SDK_INT>=24 && dpm.isProvisioningAllowed(ACTION_PROVISION_MANAGED_PROFILE))) {
|
if(VERSION.SDK_INT<24 || (VERSION.SDK_INT>=24 && dpm.isProvisioningAllowed(ACTION_PROVISION_MANAGED_PROFILE))) {
|
||||||
SubPageItem(R.string.create_work_profile, "", R.drawable.work_fill0) { navCtrl.navigate("CreateWorkProfile") }
|
SubPageItem(R.string.create_work_profile, "", R.drawable.work_fill0) { navCtrl.navigate("CreateWorkProfile") }
|
||||||
}
|
}
|
||||||
if(VERSION.SDK_INT >= 30&&isProfileOwner(dpm) && dpm.isManagedProfile(receiver) && dpm.isOrganizationOwnedDeviceWithManagedProfile) {
|
if(dpm.isOrgProfile(receiver)) {
|
||||||
SubPageItem(R.string.suspend_personal_app, "", R.drawable.block_fill0) { navCtrl.navigate("SuspendPersonalApp") }
|
SubPageItem(R.string.suspend_personal_app, "", R.drawable.block_fill0) { navCtrl.navigate("SuspendPersonalApp") }
|
||||||
}
|
}
|
||||||
if(isProfileOwner(dpm) && (VERSION.SDK_INT<24 || (VERSION.SDK_INT>=24 && dpm.isManagedProfile(receiver)))) {
|
if(isProfileOwner(dpm) && (VERSION.SDK_INT<24 || (VERSION.SDK_INT>=24 && dpm.isManagedProfile(receiver)))) {
|
||||||
|
|||||||
@@ -158,16 +158,16 @@ private fun Home(navCtrl:NavHostController, scrollState: ScrollState, wifiMacDia
|
|||||||
style = typography.headlineLarge,
|
style = typography.headlineLarge,
|
||||||
modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.dp)
|
modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.dp)
|
||||||
)
|
)
|
||||||
if(VERSION.SDK_INT >= 24 && (isDeviceOwner(dpm) || (VERSION.SDK_INT >= 30 && isProfileOwner(dpm) && dpm.isManagedProfile(receiver) && dpm.isOrganizationOwnedDeviceWithManagedProfile))) {
|
if(VERSION.SDK_INT >= 24 && (isDeviceOwner(dpm) || dpm.isOrgProfile(receiver))) {
|
||||||
SubPageItem(R.string.wifi_mac_addr, "", R.drawable.wifi_fill0) { wifiMacDialog.value = true }
|
SubPageItem(R.string.wifi_mac_addr, "", R.drawable.wifi_fill0) { wifiMacDialog.value = true }
|
||||||
}
|
}
|
||||||
if(VERSION.SDK_INT >= 30) {
|
if(VERSION.SDK_INT >= 30) {
|
||||||
SubPageItem(R.string.options, "", R.drawable.tune_fill0) { navCtrl.navigate("Switches") }
|
SubPageItem(R.string.options, "", R.drawable.tune_fill0) { navCtrl.navigate("Switches") }
|
||||||
}
|
}
|
||||||
if(VERSION.SDK_INT >= 33) {
|
if(VERSION.SDK_INT >= 33 && (isDeviceOwner(dpm) || dpm.isOrgProfile(receiver))) {
|
||||||
SubPageItem(R.string.min_wifi_security_level, "", R.drawable.wifi_password_fill0) { navCtrl.navigate("MinWifiSecurityLevel") }
|
SubPageItem(R.string.min_wifi_security_level, "", R.drawable.wifi_password_fill0) { navCtrl.navigate("MinWifiSecurityLevel") }
|
||||||
}
|
}
|
||||||
if(VERSION.SDK_INT >= 33 && (isDeviceOwner(dpm) || (isProfileOwner(dpm) && dpm.isOrganizationOwnedDeviceWithManagedProfile))) {
|
if(VERSION.SDK_INT >= 33 && (isDeviceOwner(dpm) || dpm.isOrgProfile(receiver))) {
|
||||||
SubPageItem(R.string.wifi_ssid_policy, "", R.drawable.wifi_fill0) { navCtrl.navigate("WifiSsidPolicy") }
|
SubPageItem(R.string.wifi_ssid_policy, "", R.drawable.wifi_fill0) { navCtrl.navigate("WifiSsidPolicy") }
|
||||||
}
|
}
|
||||||
if(VERSION.SDK_INT >= 29 && isDeviceOwner(dpm)) {
|
if(VERSION.SDK_INT >= 29 && isDeviceOwner(dpm)) {
|
||||||
@@ -199,7 +199,7 @@ private fun Switches() {
|
|||||||
{ dpm.isPreferentialNetworkServiceEnabled }, { dpm.isPreferentialNetworkServiceEnabled = it }
|
{ dpm.isPreferentialNetworkServiceEnabled }, { dpm.isPreferentialNetworkServiceEnabled = it }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if(VERSION.SDK_INT>=30&&(isDeviceOwner(dpm)||(isProfileOwner(dpm)&&dpm.isOrganizationOwnedDeviceWithManagedProfile))) {
|
if(VERSION.SDK_INT>=30 && (isDeviceOwner(dpm) || dpm.isOrgProfile(receiver))) {
|
||||||
SwitchItem(R.string.wifi_lockdown, "", R.drawable.wifi_password_fill0,
|
SwitchItem(R.string.wifi_lockdown, "", R.drawable.wifi_password_fill0,
|
||||||
{ dpm.hasLockdownAdminConfiguredNetworks(receiver) }, { dpm.setConfiguredNetworksLockdownState(receiver,it) }
|
{ dpm.hasLockdownAdminConfiguredNetworks(receiver) }, { dpm.setConfiguredNetworksLockdownState(receiver,it) }
|
||||||
)
|
)
|
||||||
@@ -240,7 +240,6 @@ private fun WifiSecLevel() {
|
|||||||
)
|
)
|
||||||
Spacer(Modifier.padding(vertical = 5.dp))
|
Spacer(Modifier.padding(vertical = 5.dp))
|
||||||
Button(
|
Button(
|
||||||
enabled = isDeviceOwner(dpm) || (isProfileOwner(dpm) && dpm.isOrganizationOwnedDeviceWithManagedProfile),
|
|
||||||
onClick = {
|
onClick = {
|
||||||
dpm.minimumRequiredWifiSecurityLevel = selectedWifiSecLevel
|
dpm.minimumRequiredWifiSecurityLevel = selectedWifiSecLevel
|
||||||
Toast.makeText(context, R.string.success, Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, R.string.success, Toast.LENGTH_SHORT).show()
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ fun Password(navCtrl: NavHostController) {
|
|||||||
private fun Home(navCtrl:NavHostController,scrollState: ScrollState) {
|
private fun Home(navCtrl:NavHostController,scrollState: ScrollState) {
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
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)
|
||||||
Column(modifier = Modifier.fillMaxSize().verticalScroll(scrollState)) {
|
Column(modifier = Modifier.fillMaxSize().verticalScroll(scrollState)) {
|
||||||
Text(
|
Text(
|
||||||
text = stringResource(R.string.password_and_keyguard),
|
text = stringResource(R.string.password_and_keyguard),
|
||||||
@@ -89,14 +90,18 @@ private fun Home(navCtrl:NavHostController,scrollState: ScrollState) {
|
|||||||
modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.dp)
|
modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.dp)
|
||||||
)
|
)
|
||||||
SubPageItem(R.string.password_info, "", R.drawable.info_fill0) { navCtrl.navigate("PasswordInfo") }
|
SubPageItem(R.string.password_info, "", R.drawable.info_fill0) { navCtrl.navigate("PasswordInfo") }
|
||||||
if(VERSION.SDK_INT >= 26) {
|
if(VERSION.SDK_INT >= 26 && (isDeviceOwner(dpm) || isProfileOwner(dpm))) {
|
||||||
SubPageItem(R.string.reset_password_token, "", R.drawable.key_vertical_fill0) { navCtrl.navigate("ResetPasswordToken") }
|
SubPageItem(R.string.reset_password_token, "", R.drawable.key_vertical_fill0) { navCtrl.navigate("ResetPasswordToken") }
|
||||||
}
|
}
|
||||||
SubPageItem(R.string.reset_password, "", R.drawable.lock_reset_fill0) { navCtrl.navigate("ResetPassword") }
|
if(dpm.isAdminActive(receiver) || isDeviceOwner(dpm) || isProfileOwner(dpm)) {
|
||||||
if(VERSION.SDK_INT >= 31) {
|
SubPageItem(R.string.reset_password, "", R.drawable.lock_reset_fill0) { navCtrl.navigate("ResetPassword") }
|
||||||
|
}
|
||||||
|
if(VERSION.SDK_INT >= 31 && (isDeviceOwner(dpm) || isProfileOwner(dpm))) {
|
||||||
SubPageItem(R.string.required_password_complexity, "", R.drawable.password_fill0) { navCtrl.navigate("RequirePasswordComplexity") }
|
SubPageItem(R.string.required_password_complexity, "", R.drawable.password_fill0) { navCtrl.navigate("RequirePasswordComplexity") }
|
||||||
}
|
}
|
||||||
SubPageItem(R.string.keyguard_disabled_features, "", R.drawable.screen_lock_portrait_fill0) { navCtrl.navigate("KeyguardDisabledFeatures") }
|
if(isDeviceOwner(dpm)) {
|
||||||
|
SubPageItem(R.string.keyguard_disabled_features, "", R.drawable.screen_lock_portrait_fill0) { navCtrl.navigate("KeyguardDisabledFeatures") }
|
||||||
|
}
|
||||||
if(isDeviceOwner(dpm)) {
|
if(isDeviceOwner(dpm)) {
|
||||||
SubPageItem(R.string.max_time_to_lock, "", R.drawable.schedule_fill0) { navCtrl.navigate("MaxTimeToLock") }
|
SubPageItem(R.string.max_time_to_lock, "", R.drawable.schedule_fill0) { navCtrl.navigate("MaxTimeToLock") }
|
||||||
SubPageItem(R.string.pwd_timeout, "", R.drawable.lock_clock_fill0) { navCtrl.navigate("PasswordTimeout") }
|
SubPageItem(R.string.pwd_timeout, "", R.drawable.lock_clock_fill0) { navCtrl.navigate("PasswordTimeout") }
|
||||||
@@ -106,7 +111,9 @@ private fun Home(navCtrl:NavHostController,scrollState: ScrollState) {
|
|||||||
if(VERSION.SDK_INT >= 26 && (isDeviceOwner(dpm) || isProfileOwner(dpm))) {
|
if(VERSION.SDK_INT >= 26 && (isDeviceOwner(dpm) || isProfileOwner(dpm))) {
|
||||||
SubPageItem(R.string.required_strong_auth_timeout, "", R.drawable.fingerprint_off_fill0) { navCtrl.navigate("RequiredStrongAuthTimeout") }
|
SubPageItem(R.string.required_strong_auth_timeout, "", R.drawable.fingerprint_off_fill0) { navCtrl.navigate("RequiredStrongAuthTimeout") }
|
||||||
}
|
}
|
||||||
SubPageItem(R.string.required_password_quality, "", R.drawable.password_fill0) { navCtrl.navigate("RequirePasswordQuality") }
|
if(isDeviceOwner(dpm) || isProfileOwner(dpm)) {
|
||||||
|
SubPageItem(R.string.required_password_quality, "", R.drawable.password_fill0) { navCtrl.navigate("RequirePasswordQuality") }
|
||||||
|
}
|
||||||
Spacer(Modifier.padding(vertical = 30.dp))
|
Spacer(Modifier.padding(vertical = 30.dp))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -163,8 +170,7 @@ private fun ResetPasswordToken() {
|
|||||||
Toast.LENGTH_SHORT
|
Toast.LENGTH_SHORT
|
||||||
).show()
|
).show()
|
||||||
},
|
},
|
||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier.fillMaxWidth()
|
||||||
enabled = isDeviceOwner(dpm) || isProfileOwner(dpm)
|
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.clear))
|
Text(stringResource(R.string.clear))
|
||||||
}
|
}
|
||||||
@@ -180,7 +186,6 @@ private fun ResetPasswordToken() {
|
|||||||
Toast.makeText(context, R.string.security_exception, Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, R.string.security_exception, Toast.LENGTH_SHORT).show()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
enabled = isDeviceOwner(dpm) || isProfileOwner(dpm),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.set))
|
Text(stringResource(R.string.set))
|
||||||
@@ -192,7 +197,6 @@ private fun ResetPasswordToken() {
|
|||||||
catch(e:NullPointerException) { Toast.makeText(context, R.string.please_set_a_token, Toast.LENGTH_SHORT).show() }
|
catch(e:NullPointerException) { Toast.makeText(context, R.string.please_set_a_token, Toast.LENGTH_SHORT).show() }
|
||||||
} else { Toast.makeText(context, R.string.token_already_activated, Toast.LENGTH_SHORT).show() }
|
} else { Toast.makeText(context, R.string.token_already_activated, Toast.LENGTH_SHORT).show() }
|
||||||
},
|
},
|
||||||
enabled = isDeviceOwner(dpm)||isProfileOwner(dpm),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.activate))
|
Text(stringResource(R.string.activate))
|
||||||
@@ -219,7 +223,7 @@ private fun ResetPassword() {
|
|||||||
OutlinedTextField(
|
OutlinedTextField(
|
||||||
value = newPwd,
|
value = newPwd,
|
||||||
onValueChange = { newPwd=it },
|
onValueChange = { newPwd=it },
|
||||||
enabled = !confirmed && (isDeviceOwner(dpm) || isProfileOwner(dpm) || dpm.isAdminActive(receiver)),
|
enabled = !confirmed,
|
||||||
label = { Text(stringResource(R.string.password)) },
|
label = { Text(stringResource(R.string.password)) },
|
||||||
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password, imeAction = ImeAction.Done),
|
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password, imeAction = ImeAction.Done),
|
||||||
keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }),
|
keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }),
|
||||||
@@ -247,7 +251,6 @@ private fun ResetPassword() {
|
|||||||
if(newPwd.length>=4 || newPwd.isEmpty()) { confirmed=!confirmed }
|
if(newPwd.length>=4 || newPwd.isEmpty()) { confirmed=!confirmed }
|
||||||
else { Toast.makeText(context, R.string.require_4_digit_password, Toast.LENGTH_SHORT).show() }
|
else { Toast.makeText(context, R.string.require_4_digit_password, Toast.LENGTH_SHORT).show() }
|
||||||
},
|
},
|
||||||
enabled = isDeviceOwner(dpm) || isProfileOwner(dpm) || dpm.isAdminActive(receiver),
|
|
||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier.fillMaxWidth(),
|
||||||
colors = ButtonDefaults.buttonColors(
|
colors = ButtonDefaults.buttonColors(
|
||||||
containerColor = if(confirmed) colorScheme.primary else colorScheme.error,
|
containerColor = if(confirmed) colorScheme.primary else colorScheme.error,
|
||||||
@@ -301,9 +304,7 @@ private fun PasswordComplexity() {
|
|||||||
PASSWORD_COMPLEXITY_HIGH to stringResource(R.string.password_complexity_high)
|
PASSWORD_COMPLEXITY_HIGH to stringResource(R.string.password_complexity_high)
|
||||||
).toList()
|
).toList()
|
||||||
var selectedItem by remember { mutableIntStateOf(passwordComplexity[0].first) }
|
var selectedItem by remember { mutableIntStateOf(passwordComplexity[0].first) }
|
||||||
if(isDeviceOwner(dpm) || isProfileOwner(dpm)) {
|
LaunchedEffect(Unit) { selectedItem = dpm.requiredPasswordComplexity }
|
||||||
selectedItem=dpm.requiredPasswordComplexity
|
|
||||||
}
|
|
||||||
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())) {
|
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())) {
|
||||||
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)
|
||||||
@@ -335,7 +336,6 @@ private fun PasswordComplexity() {
|
|||||||
dpm.requiredPasswordComplexity = selectedItem
|
dpm.requiredPasswordComplexity = selectedItem
|
||||||
Toast.makeText(context, R.string.success, Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, R.string.success, Toast.LENGTH_SHORT).show()
|
||||||
},
|
},
|
||||||
enabled = isDeviceOwner(dpm) || isProfileOwner(dpm),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text(text = stringResource(R.string.apply))
|
Text(text = stringResource(R.string.apply))
|
||||||
@@ -607,7 +607,6 @@ private fun KeyguardDisabledFeatures() {
|
|||||||
Toast.makeText(context, R.string.success, Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, R.string.success, Toast.LENGTH_SHORT).show()
|
||||||
calculateCustomFeature()
|
calculateCustomFeature()
|
||||||
},
|
},
|
||||||
enabled = isDeviceOwner(dpm) || isProfileOwner(dpm),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text(text = stringResource(R.string.apply))
|
Text(text = stringResource(R.string.apply))
|
||||||
@@ -632,7 +631,7 @@ private fun PasswordQuality() {
|
|||||||
PASSWORD_QUALITY_COMPLEX to stringResource(R.string.custom) + "(${stringResource(R.string.unsupported) })",
|
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) }
|
||||||
if(isDeviceOwner(dpm) || isProfileOwner(dpm)) { selectedItem=dpm.getPasswordQuality(receiver) }
|
LaunchedEffect(Unit) { selectedItem=dpm.getPasswordQuality(receiver) }
|
||||||
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())) {
|
Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())) {
|
||||||
Spacer(Modifier.padding(vertical = 10.dp))
|
Spacer(Modifier.padding(vertical = 10.dp))
|
||||||
Text(text = stringResource(R.string.required_password_quality), style = typography.headlineLarge)
|
Text(text = stringResource(R.string.required_password_quality), style = typography.headlineLarge)
|
||||||
@@ -654,7 +653,6 @@ private fun PasswordQuality() {
|
|||||||
dpm.setPasswordQuality(receiver,selectedItem)
|
dpm.setPasswordQuality(receiver,selectedItem)
|
||||||
Toast.makeText(context, R.string.success, Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, R.string.success, Toast.LENGTH_SHORT).show()
|
||||||
},
|
},
|
||||||
enabled = isDeviceOwner(dpm) || isProfileOwner(dpm),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.apply))
|
Text(stringResource(R.string.apply))
|
||||||
|
|||||||
@@ -283,11 +283,12 @@ private fun DeviceOwner() {
|
|||||||
fun DeviceInfo() {
|
fun DeviceInfo() {
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
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)
|
||||||
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState()).padding(horizontal = 8.dp)) {
|
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState()).padding(horizontal = 8.dp)) {
|
||||||
Spacer(Modifier.padding(vertical = 10.dp))
|
Spacer(Modifier.padding(vertical = 10.dp))
|
||||||
Text(text = stringResource(R.string.device_info), style = typography.headlineLarge)
|
Text(text = stringResource(R.string.device_info), style = typography.headlineLarge)
|
||||||
Spacer(Modifier.padding(vertical = 5.dp))
|
Spacer(Modifier.padding(vertical = 5.dp))
|
||||||
if(VERSION.SDK_INT>=34 && (isDeviceOwner(dpm) || (isProfileOwner(dpm) && dpm.isOrganizationOwnedDeviceWithManagedProfile))) {
|
if(VERSION.SDK_INT>=34 && (isDeviceOwner(dpm) || dpm.isOrgProfile(receiver))) {
|
||||||
val financed = dpm.isDeviceFinanced
|
val financed = dpm.isDeviceFinanced
|
||||||
Text(stringResource(R.string.is_device_financed, financed))
|
Text(stringResource(R.string.is_device_financed, financed))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -168,9 +168,7 @@ fun ShizukuActivate() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(
|
if(VERSION.SDK_INT >= 30 && !dpm.isOrgProfile(receiver)) {
|
||||||
VERSION.SDK_INT >= 30 && isProfileOwner(dpm) && dpm.isManagedProfile(receiver) && !dpm.isOrganizationOwnedDeviceWithManagedProfile
|
|
||||||
) {
|
|
||||||
AnimatedVisibility(showOrgProfileOwnerButton) {
|
AnimatedVisibility(showOrgProfileOwnerButton) {
|
||||||
Button(
|
Button(
|
||||||
onClick = {
|
onClick = {
|
||||||
|
|||||||
@@ -176,11 +176,13 @@ private fun Home(navCtrl: NavHostController, scrollState: ScrollState, rebootDia
|
|||||||
SubPageItem(R.string.options, "", R.drawable.tune_fill0) { navCtrl.navigate("Switches") }
|
SubPageItem(R.string.options, "", R.drawable.tune_fill0) { navCtrl.navigate("Switches") }
|
||||||
}
|
}
|
||||||
SubPageItem(R.string.keyguard, "", R.drawable.screen_lock_portrait_fill0) { navCtrl.navigate("Keyguard") }
|
SubPageItem(R.string.keyguard, "", R.drawable.screen_lock_portrait_fill0) { navCtrl.navigate("Keyguard") }
|
||||||
if(VERSION.SDK_INT >= 24) {
|
if(VERSION.SDK_INT >= 24 && isDeviceOwner(dpm)) {
|
||||||
SubPageItem(R.string.bug_report, "", R.drawable.bug_report_fill0) { bugReportDialog.value = true }
|
|
||||||
SubPageItem(R.string.reboot, "", R.drawable.restart_alt_fill0) { rebootDialog.value = true }
|
SubPageItem(R.string.reboot, "", R.drawable.restart_alt_fill0) { rebootDialog.value = true }
|
||||||
}
|
}
|
||||||
if(VERSION.SDK_INT >= 28) {
|
if(isDeviceOwner(dpm) && ((VERSION.SDK_INT >= 28 && dpm.isAffiliatedUser) || VERSION.SDK_INT >= 24)) {
|
||||||
|
SubPageItem(R.string.bug_report, "", R.drawable.bug_report_fill0) { bugReportDialog.value = true }
|
||||||
|
}
|
||||||
|
if(VERSION.SDK_INT >= 28 && (isDeviceOwner(dpm) || dpm.isOrgProfile(receiver))) {
|
||||||
SubPageItem(R.string.edit_time, "", R.drawable.schedule_fill0) { navCtrl.navigate("EditTime") }
|
SubPageItem(R.string.edit_time, "", R.drawable.schedule_fill0) { navCtrl.navigate("EditTime") }
|
||||||
SubPageItem(R.string.edit_timezone, "", R.drawable.schedule_fill0) { navCtrl.navigate("EditTimeZone") }
|
SubPageItem(R.string.edit_timezone, "", R.drawable.schedule_fill0) { navCtrl.navigate("EditTimeZone") }
|
||||||
}
|
}
|
||||||
@@ -199,26 +201,21 @@ private fun Home(navCtrl: NavHostController, scrollState: ScrollState, rebootDia
|
|||||||
if(isDeviceOwner(dpm) || isProfileOwner(dpm)) {
|
if(isDeviceOwner(dpm) || isProfileOwner(dpm)) {
|
||||||
SubPageItem(R.string.ca_cert, "", R.drawable.license_fill0) { navCtrl.navigate("CaCert") }
|
SubPageItem(R.string.ca_cert, "", R.drawable.license_fill0) { navCtrl.navigate("CaCert") }
|
||||||
}
|
}
|
||||||
if(VERSION.SDK_INT >= 26 && (isDeviceOwner(dpm) || (VERSION.SDK_INT >= 30 && isProfileOwner(dpm) && dpm.isOrganizationOwnedDeviceWithManagedProfile))) {
|
if(VERSION.SDK_INT >= 26 && (isDeviceOwner(dpm) || dpm.isOrgProfile(receiver))) {
|
||||||
SubPageItem(R.string.security_logs, "", R.drawable.description_fill0) { navCtrl.navigate("SecurityLogs") }
|
SubPageItem(R.string.security_logs, "", R.drawable.description_fill0) { navCtrl.navigate("SecurityLogs") }
|
||||||
}
|
}
|
||||||
if(VERSION.SDK_INT >= 23 && isDeviceOwner(dpm)) {
|
if(VERSION.SDK_INT >= 23 && (isDeviceOwner(dpm) || dpm.isOrgProfile(receiver))) {
|
||||||
SubPageItem(R.string.system_update_policy, "", R.drawable.system_update_fill0) { navCtrl.navigate("SystemUpdatePolicy") }
|
SubPageItem(R.string.system_update_policy, "", R.drawable.system_update_fill0) { navCtrl.navigate("SystemUpdatePolicy") }
|
||||||
}
|
}
|
||||||
if(
|
if(VERSION.SDK_INT >= 29 && (isDeviceOwner(dpm) || dpm.isOrgProfile(receiver))) {
|
||||||
VERSION.SDK_INT >= 29 &&
|
|
||||||
(isDeviceOwner(dpm) ||
|
|
||||||
(VERSION.SDK_INT >= 30 && isProfileOwner(dpm) && dpm.isManagedProfile(receiver) && dpm.isOrganizationOwnedDeviceWithManagedProfile))
|
|
||||||
) {
|
|
||||||
SubPageItem(R.string.install_system_update, "", R.drawable.system_update_fill0) { navCtrl.navigate("InstallSystemUpdate") }
|
SubPageItem(R.string.install_system_update, "", R.drawable.system_update_fill0) { navCtrl.navigate("InstallSystemUpdate") }
|
||||||
}
|
}
|
||||||
if(
|
if(VERSION.SDK_INT >= 30 && (isDeviceOwner(dpm) || dpm.isOrgProfile(receiver))) {
|
||||||
VERSION.SDK_INT >= 30 &&
|
|
||||||
(isDeviceOwner(dpm) || (isProfileOwner(dpm) && dpm.isManagedProfile(receiver) && dpm.isOrganizationOwnedDeviceWithManagedProfile))
|
|
||||||
) {
|
|
||||||
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") }
|
||||||
}
|
}
|
||||||
SubPageItem(R.string.wipe_data, "", R.drawable.warning_fill0) { navCtrl.navigate("WipeData") }
|
if(dpm.isAdminActive(receiver)) {
|
||||||
|
SubPageItem(R.string.wipe_data, "", R.drawable.warning_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("") }
|
||||||
}
|
}
|
||||||
@@ -246,7 +243,7 @@ private fun Switches() {
|
|||||||
{ dpm.isStatusBarDisabled}, { dpm.setStatusBarDisabled(receiver,it) }
|
{ dpm.isStatusBarDisabled}, { dpm.setStatusBarDisabled(receiver,it) }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if(isDeviceOwner(dpm) || (VERSION.SDK_INT >= 30 && isProfileOwner(dpm) && dpm.isOrganizationOwnedDeviceWithManagedProfile)) {
|
if(isDeviceOwner(dpm) || dpm.isOrgProfile(receiver)) {
|
||||||
if(VERSION.SDK_INT >= 30) {
|
if(VERSION.SDK_INT >= 30) {
|
||||||
SwitchItem(R.string.auto_time, "", R.drawable.schedule_fill0,
|
SwitchItem(R.string.auto_time, "", R.drawable.schedule_fill0,
|
||||||
{ dpm.getAutoTimeEnabled(receiver) }, { dpm.setAutoTimeEnabled(receiver,it) }
|
{ dpm.getAutoTimeEnabled(receiver) }, { dpm.setAutoTimeEnabled(receiver,it) }
|
||||||
@@ -278,7 +275,7 @@ private fun Switches() {
|
|||||||
{ dpm.isCommonCriteriaModeEnabled(receiver) }, { dpm.setCommonCriteriaModeEnabled(receiver,it) }
|
{ dpm.isCommonCriteriaModeEnabled(receiver) }, { dpm.setCommonCriteriaModeEnabled(receiver,it) }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if(VERSION.SDK_INT >= 31 && (isDeviceOwner(dpm) || (VERSION.SDK_INT >= 30 && isProfileOwner(dpm) && dpm.isOrganizationOwnedDeviceWithManagedProfile))) {
|
if(VERSION.SDK_INT >= 31 && (isDeviceOwner(dpm) || dpm.isOrgProfile(receiver))) {
|
||||||
SwitchItem(
|
SwitchItem(
|
||||||
R.string.usb_signal, "", R.drawable.usb_fill0, { dpm.isUsbDataSignalingEnabled },
|
R.string.usb_signal, "", R.drawable.usb_fill0, { dpm.isUsbDataSignalingEnabled },
|
||||||
{
|
{
|
||||||
@@ -422,14 +419,13 @@ private fun EditTime() {
|
|||||||
onValueChange = { inputTime = it},
|
onValueChange = { inputTime = it},
|
||||||
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done),
|
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done),
|
||||||
keyboardActions = KeyboardActions(onDone = {focusMgr.clearFocus() }),
|
keyboardActions = KeyboardActions(onDone = {focusMgr.clearFocus() }),
|
||||||
enabled = isDeviceOwner(dpm) || (VERSION.SDK_INT >= 30 && isProfileOwner(dpm) && dpm.isOrganizationOwnedDeviceWithManagedProfile),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
)
|
)
|
||||||
Spacer(Modifier.padding(vertical = 5.dp))
|
Spacer(Modifier.padding(vertical = 5.dp))
|
||||||
Button(
|
Button(
|
||||||
onClick = { dpm.setTime(receiver,inputTime.toLong()) },
|
onClick = { dpm.setTime(receiver,inputTime.toLong()) },
|
||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier.fillMaxWidth(),
|
||||||
enabled = inputTime!="" && (isDeviceOwner(dpm) || (VERSION.SDK_INT >= 30 && isProfileOwner(dpm) && dpm.isOrganizationOwnedDeviceWithManagedProfile))
|
enabled = inputTime != ""
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.apply))
|
Text(stringResource(R.string.apply))
|
||||||
}
|
}
|
||||||
@@ -1065,7 +1061,6 @@ private fun WipeData() {
|
|||||||
containerColor = if(confirmed) colorScheme.primary else colorScheme.error ,
|
containerColor = if(confirmed) colorScheme.primary else colorScheme.error ,
|
||||||
contentColor = if(confirmed) colorScheme.onPrimary else colorScheme.onError
|
contentColor = if(confirmed) colorScheme.onPrimary else colorScheme.onError
|
||||||
),
|
),
|
||||||
enabled = dpm.isAdminActive(receiver),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text(text = stringResource(if(confirmed) R.string.cancel else R.string.confirm))
|
Text(text = stringResource(if(confirmed) R.string.cancel else R.string.confirm))
|
||||||
@@ -1084,7 +1079,7 @@ private fun WipeData() {
|
|||||||
) {
|
) {
|
||||||
Text("WipeData")
|
Text("WipeData")
|
||||||
}
|
}
|
||||||
if (VERSION.SDK_INT >= 34 && (isDeviceOwner(dpm) || (isProfileOwner(dpm) && dpm.isOrganizationOwnedDeviceWithManagedProfile))) {
|
if (VERSION.SDK_INT >= 34 && (isDeviceOwner(dpm) || dpm.isOrgProfile(receiver))) {
|
||||||
Button(
|
Button(
|
||||||
onClick = { dpm.wipeDevice(flag) },
|
onClick = { dpm.wipeDevice(flag) },
|
||||||
colors = ButtonDefaults.buttonColors(containerColor = colorScheme.error, contentColor = colorScheme.onError),
|
colors = ButtonDefaults.buttonColors(containerColor = colorScheme.error, contentColor = colorScheme.onError),
|
||||||
@@ -1167,7 +1162,6 @@ private fun SysUpdatePolicy() {
|
|||||||
dpm.setSystemUpdatePolicy(receiver,policy)
|
dpm.setSystemUpdatePolicy(receiver,policy)
|
||||||
Toast.makeText(context, R.string.success, Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, R.string.success, Toast.LENGTH_SHORT).show()
|
||||||
},
|
},
|
||||||
enabled = isDeviceOwner(dpm),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.apply))
|
Text(stringResource(R.string.apply))
|
||||||
|
|||||||
@@ -117,11 +117,15 @@ private fun Home(navCtrl: NavHostController,scrollState: ScrollState) {
|
|||||||
modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.dp)
|
modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.dp)
|
||||||
)
|
)
|
||||||
SubPageItem(R.string.user_info, "", R.drawable.person_fill0) { navCtrl.navigate("UserInfo") }
|
SubPageItem(R.string.user_info, "", R.drawable.person_fill0) { navCtrl.navigate("UserInfo") }
|
||||||
SubPageItem(R.string.user_operation, "", R.drawable.sync_alt_fill0) { navCtrl.navigate("UserOperation") }
|
if(isDeviceOwner(dpm)) {
|
||||||
|
SubPageItem(R.string.user_operation, "", R.drawable.sync_alt_fill0) { navCtrl.navigate("UserOperation") }
|
||||||
|
}
|
||||||
if(VERSION.SDK_INT >= 24 && isDeviceOwner(dpm)) {
|
if(VERSION.SDK_INT >= 24 && isDeviceOwner(dpm)) {
|
||||||
SubPageItem(R.string.create_user, "", R.drawable.person_add_fill0) { navCtrl.navigate("CreateUser") }
|
SubPageItem(R.string.create_user, "", R.drawable.person_add_fill0) { navCtrl.navigate("CreateUser") }
|
||||||
}
|
}
|
||||||
SubPageItem(R.string.edit_username, "", R.drawable.edit_fill0) { navCtrl.navigate("EditUsername") }
|
if(isDeviceOwner(dpm) || isProfileOwner(dpm)) {
|
||||||
|
SubPageItem(R.string.edit_username, "", R.drawable.edit_fill0) { navCtrl.navigate("EditUsername") }
|
||||||
|
}
|
||||||
if(VERSION.SDK_INT >= 23 && (isDeviceOwner(dpm) || isProfileOwner(dpm))) {
|
if(VERSION.SDK_INT >= 23 && (isDeviceOwner(dpm) || isProfileOwner(dpm))) {
|
||||||
SubPageItem(R.string.change_user_icon, "", R.drawable.account_circle_fill0) { navCtrl.navigate("ChangeUserIcon") }
|
SubPageItem(R.string.change_user_icon, "", R.drawable.account_circle_fill0) { navCtrl.navigate("ChangeUserIcon") }
|
||||||
}
|
}
|
||||||
@@ -195,7 +199,6 @@ private fun UserOperation() {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
label = { Text(if(useUid) "UID" else stringResource(R.string.serial_number)) },
|
label = { Text(if(useUid) "UID" else stringResource(R.string.serial_number)) },
|
||||||
enabled = isDeviceOwner(dpm),
|
|
||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier.fillMaxWidth(),
|
||||||
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done),
|
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done),
|
||||||
keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() })
|
keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() })
|
||||||
@@ -212,7 +215,6 @@ private fun UserOperation() {
|
|||||||
val result = dpm.logoutUser(receiver)
|
val result = dpm.logoutUser(receiver)
|
||||||
Toast.makeText(context, userOperationResultCode(result, context), Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, userOperationResultCode(result, context), Toast.LENGTH_SHORT).show()
|
||||||
},
|
},
|
||||||
enabled = isProfileOwner(dpm),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.logout_current_user))
|
Text(stringResource(R.string.logout_current_user))
|
||||||
@@ -226,7 +228,6 @@ private fun UserOperation() {
|
|||||||
val result = dpm.startUserInBackground(receiver, userHandleById)
|
val result = dpm.startUserInBackground(receiver, userHandleById)
|
||||||
Toast.makeText(context, userOperationResultCode(result, context), Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, userOperationResultCode(result, context), Toast.LENGTH_SHORT).show()
|
||||||
},
|
},
|
||||||
enabled = isDeviceOwner(dpm),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.start_in_background))
|
Text(stringResource(R.string.start_in_background))
|
||||||
@@ -237,7 +238,6 @@ private fun UserOperation() {
|
|||||||
focusMgr.clearFocus()
|
focusMgr.clearFocus()
|
||||||
Toast.makeText(context, if(dpm.switchUser(receiver,userHandleById)) R.string.success else R.string.fail, Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, if(dpm.switchUser(receiver,userHandleById)) R.string.success else R.string.fail, Toast.LENGTH_SHORT).show()
|
||||||
},
|
},
|
||||||
enabled = isDeviceOwner(dpm),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.user_operation_switch))
|
Text(stringResource(R.string.user_operation_switch))
|
||||||
@@ -253,7 +253,6 @@ private fun UserOperation() {
|
|||||||
Toast.makeText(context, R.string.fail, Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, R.string.fail, Toast.LENGTH_SHORT).show()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
enabled = isDeviceOwner(dpm),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.user_operation_stop))
|
Text(stringResource(R.string.user_operation_stop))
|
||||||
@@ -269,7 +268,6 @@ private fun UserOperation() {
|
|||||||
Toast.makeText(context, R.string.fail, Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, R.string.fail, Toast.LENGTH_SHORT).show()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
enabled = isDeviceOwner(dpm),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.user_operation_remove))
|
Text(stringResource(R.string.user_operation_remove))
|
||||||
@@ -327,7 +325,6 @@ private fun CreateUser() {
|
|||||||
focusMgr.clearFocus()
|
focusMgr.clearFocus()
|
||||||
Toast.makeText(context, if(newUserHandle!=null) R.string.success else R.string.fail, Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, if(newUserHandle!=null) R.string.success else R.string.fail, Toast.LENGTH_SHORT).show()
|
||||||
},
|
},
|
||||||
enabled = isDeviceOwner(dpm),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.create))
|
Text(stringResource(R.string.create))
|
||||||
@@ -422,8 +419,7 @@ private fun Username() {
|
|||||||
label = { Text(stringResource(R.string.username)) },
|
label = { Text(stringResource(R.string.username)) },
|
||||||
keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done),
|
keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done),
|
||||||
keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }),
|
keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }),
|
||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier.fillMaxWidth()
|
||||||
enabled = isDeviceOwner(dpm) || isProfileOwner(dpm)
|
|
||||||
)
|
)
|
||||||
Spacer(Modifier.padding(vertical = 5.dp))
|
Spacer(Modifier.padding(vertical = 5.dp))
|
||||||
Button(
|
Button(
|
||||||
@@ -431,14 +427,12 @@ private fun Username() {
|
|||||||
dpm.setProfileName(receiver, inputUsername)
|
dpm.setProfileName(receiver, inputUsername)
|
||||||
Toast.makeText(context, R.string.success, Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, R.string.success, Toast.LENGTH_SHORT).show()
|
||||||
},
|
},
|
||||||
enabled = isDeviceOwner(dpm) || isProfileOwner(dpm),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.apply))
|
Text(stringResource(R.string.apply))
|
||||||
}
|
}
|
||||||
Button(
|
Button(
|
||||||
onClick = { dpm.setProfileName(receiver,null) },
|
onClick = { dpm.setProfileName(receiver,null) },
|
||||||
enabled = isDeviceOwner(dpm) || isProfileOwner(dpm),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.reset))
|
Text(stringResource(R.string.reset))
|
||||||
@@ -467,8 +461,7 @@ private fun UserSessionMessage() {
|
|||||||
label = { Text(stringResource(R.string.start_user_session_msg)) },
|
label = { Text(stringResource(R.string.start_user_session_msg)) },
|
||||||
keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done),
|
keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done),
|
||||||
keyboardActions = KeyboardActions(onDone = {focusMgr.clearFocus() }),
|
keyboardActions = KeyboardActions(onDone = {focusMgr.clearFocus() }),
|
||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier.fillMaxWidth()
|
||||||
enabled = isDeviceOwner(dpm) || isProfileOwner(dpm)
|
|
||||||
)
|
)
|
||||||
Spacer(Modifier.padding(vertical = 2.dp))
|
Spacer(Modifier.padding(vertical = 2.dp))
|
||||||
OutlinedTextField(
|
OutlinedTextField(
|
||||||
@@ -477,8 +470,7 @@ private fun UserSessionMessage() {
|
|||||||
label = { Text(stringResource(R.string.end_user_session_msg)) },
|
label = { Text(stringResource(R.string.end_user_session_msg)) },
|
||||||
keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done),
|
keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done),
|
||||||
keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }),
|
keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }),
|
||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier.fillMaxWidth()
|
||||||
enabled = isDeviceOwner(dpm) || isProfileOwner(dpm)
|
|
||||||
)
|
)
|
||||||
Spacer(Modifier.padding(vertical = 5.dp))
|
Spacer(Modifier.padding(vertical = 5.dp))
|
||||||
Button(
|
Button(
|
||||||
@@ -487,7 +479,6 @@ private fun UserSessionMessage() {
|
|||||||
dpm.setEndUserSessionMessage(receiver,end)
|
dpm.setEndUserSessionMessage(receiver,end)
|
||||||
Toast.makeText(context, R.string.success, Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, R.string.success, Toast.LENGTH_SHORT).show()
|
||||||
},
|
},
|
||||||
enabled = isDeviceOwner(dpm) || isProfileOwner(dpm),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.apply))
|
Text(stringResource(R.string.apply))
|
||||||
@@ -498,7 +489,6 @@ private fun UserSessionMessage() {
|
|||||||
dpm.setEndUserSessionMessage(receiver,null)
|
dpm.setEndUserSessionMessage(receiver,null)
|
||||||
Toast.makeText(context, R.string.success, Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, R.string.success, Toast.LENGTH_SHORT).show()
|
||||||
},
|
},
|
||||||
enabled = isDeviceOwner(dpm) || isProfileOwner(dpm),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.reset))
|
Text(stringResource(R.string.reset))
|
||||||
|
|||||||
Reference in New Issue
Block a user