From 157e099aea6f393ab6f245fc417a8e82cab1745d Mon Sep 17 00:00:00 2001 From: BinTianqi Date: Sun, 16 Jun 2024 11:21:56 +0800 Subject: [PATCH] move organization id to Permission --- .../bintianqi/owndroid/dpm/ManagedProfile.kt | 44 ----------------- .../com/bintianqi/owndroid/dpm/Permissions.kt | 47 +++++++++++++++++-- 2 files changed, 44 insertions(+), 47 deletions(-) diff --git a/app/src/main/java/com/bintianqi/owndroid/dpm/ManagedProfile.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/ManagedProfile.kt index 61e1b95..39a5ae8 100644 --- a/app/src/main/java/com/bintianqi/owndroid/dpm/ManagedProfile.kt +++ b/app/src/main/java/com/bintianqi/owndroid/dpm/ManagedProfile.kt @@ -16,7 +16,6 @@ import android.os.Binder import android.os.Build.VERSION import android.widget.Toast import androidx.activity.ComponentActivity -import androidx.compose.animation.AnimatedVisibility import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize @@ -55,7 +54,6 @@ import com.bintianqi.owndroid.Receiver import com.bintianqi.owndroid.ui.Animations import com.bintianqi.owndroid.ui.CheckBoxItem import com.bintianqi.owndroid.ui.CopyTextButton -import com.bintianqi.owndroid.ui.Information import com.bintianqi.owndroid.ui.SubPageItem import com.bintianqi.owndroid.ui.SwitchItem import com.bintianqi.owndroid.ui.TopBar @@ -82,7 +80,6 @@ fun ManagedProfile(navCtrl: NavHostController) { composable(route = "CreateWorkProfile") { CreateWorkProfile() } composable(route = "SuspendPersonalApp") { SuspendPersonalApp() } composable(route = "IntentFilter") { IntentFilter() } - composable(route = "OrgID") { OrgID() } } } } @@ -112,9 +109,6 @@ private fun Home(navCtrl: NavHostController) { if(isProfileOwner(dpm) && (VERSION.SDK_INT<24 || (VERSION.SDK_INT>=24 && dpm.isManagedProfile(receiver)))) { SubPageItem(R.string.intent_filter, "", R.drawable.filter_alt_fill0) { navCtrl.navigate("IntentFilter") } } - if(VERSION.SDK_INT>=31 && (isProfileOwner(dpm) && dpm.isManagedProfile(receiver))) { - SubPageItem(R.string.org_id, "", R.drawable.corporate_fare_fill0) { navCtrl.navigate("OrgID") } - } Spacer(Modifier.padding(vertical = 30.dp)) } } @@ -178,44 +172,6 @@ private fun OrgOwnedProfile() { } } -@SuppressLint("NewApi") -@Composable -private fun OrgID() { - val context = LocalContext.current - val dpm = context.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager - val focusMgr = LocalFocusManager.current - Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())) { - var orgId by remember { mutableStateOf("") } - Spacer(Modifier.padding(vertical = 10.dp)) - Text(text = stringResource(R.string.org_id), style = typography.headlineLarge) - Spacer(Modifier.padding(vertical = 5.dp)) - OutlinedTextField( - value = orgId, onValueChange = {orgId=it}, - label = { Text(stringResource(R.string.org_id)) }, - keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Ascii, imeAction = ImeAction.Done), - keyboardActions = KeyboardActions(onDone = {focusMgr.clearFocus() }), - modifier = Modifier.fillMaxWidth() - ) - Spacer(Modifier.padding(vertical = 2.dp)) - AnimatedVisibility(orgId.length !in 6..64) { - Text(text = stringResource(R.string.length_6_to_64)) - } - Spacer(Modifier.padding(vertical = 5.dp)) - Button( - onClick = { - dpm.setOrganizationId(orgId) - Toast.makeText(context, R.string.success,Toast.LENGTH_SHORT).show() - }, - enabled = orgId.length in 6..64, - modifier = Modifier.fillMaxWidth() - ) { - Text(stringResource(R.string.apply)) - } - Spacer(Modifier.padding(vertical = 5.dp)) - Information{ Text(text = stringResource(R.string.get_specific_id_after_set_org_id)) } - } -} - @SuppressLint("NewApi") @Composable private fun SuspendPersonalApp() { diff --git a/app/src/main/java/com/bintianqi/owndroid/dpm/Permissions.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/Permissions.kt index 3c99930..222773e 100644 --- a/app/src/main/java/com/bintianqi/owndroid/dpm/Permissions.kt +++ b/app/src/main/java/com/bintianqi/owndroid/dpm/Permissions.kt @@ -27,6 +27,7 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.ImeAction +import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import androidx.navigation.NavHostController import androidx.navigation.compose.NavHost @@ -70,6 +71,7 @@ fun DpmPermissions(navCtrl:NavHostController) { composable(route = "ProfileOwner") { ProfileOwner() } composable(route = "DeviceOwner") { DeviceOwner() } composable(route = "DeviceInfo") { DeviceInfo() } + composable(route = "OrgID") { OrgID() } composable(route = "SpecificID") { SpecificID() } composable(route = "OrgName") { OrgName() } composable(route = "DisableAccountManagement") { DisableAccountManagement() } @@ -109,12 +111,13 @@ private fun Home(localNavCtrl:NavHostController,listScrollState:ScrollState) { } SubPageItem(R.string.shizuku,"") { localNavCtrl.navigate("Shizuku") } SubPageItem(R.string.device_info, "", R.drawable.perm_device_information_fill0) { localNavCtrl.navigate("DeviceInfo") } - if(VERSION.SDK_INT >= 31 && (isProfileOwner(dpm) || isDeviceOwner(dpm))) { - SubPageItem(R.string.enrollment_specific_id, "", R.drawable.id_card_fill0) { localNavCtrl.navigate("SpecificID") } - } if((VERSION.SDK_INT >= 26 && isDeviceOwner(dpm)) || (VERSION.SDK_INT>=24 && isProfileOwner(dpm))) { SubPageItem(R.string.org_name, "", R.drawable.corporate_fare_fill0) { localNavCtrl.navigate("OrgName") } } + if(VERSION.SDK_INT >= 31 && (isProfileOwner(dpm) || isDeviceOwner(dpm))) { + SubPageItem(R.string.org_id, "", R.drawable.corporate_fare_fill0) { localNavCtrl.navigate("OrgID") } + SubPageItem(R.string.enrollment_specific_id, "", R.drawable.id_card_fill0) { localNavCtrl.navigate("SpecificID") } + } if(isDeviceOwner(dpm) || isProfileOwner(dpm)) { SubPageItem(R.string.disable_account_management, "", R.drawable.account_circle_fill0) { localNavCtrl.navigate("NoManagementAccount") } } @@ -337,6 +340,44 @@ fun DeviceInfo() { } } +@SuppressLint("NewApi") +@Composable +private fun OrgID() { + val context = LocalContext.current + val dpm = context.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager + val focusMgr = LocalFocusManager.current + Column(modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp).verticalScroll(rememberScrollState())) { + var orgId by remember { mutableStateOf("") } + Spacer(Modifier.padding(vertical = 10.dp)) + Text(text = stringResource(R.string.org_id), style = typography.headlineLarge) + Spacer(Modifier.padding(vertical = 5.dp)) + OutlinedTextField( + value = orgId, onValueChange = {orgId=it}, + label = { Text(stringResource(R.string.org_id)) }, + keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Ascii, imeAction = ImeAction.Done), + keyboardActions = KeyboardActions(onDone = {focusMgr.clearFocus() }), + modifier = Modifier.fillMaxWidth() + ) + Spacer(Modifier.padding(vertical = 2.dp)) + AnimatedVisibility(orgId.length !in 6..64) { + Text(text = stringResource(R.string.length_6_to_64)) + } + Spacer(Modifier.padding(vertical = 5.dp)) + Button( + onClick = { + dpm.setOrganizationId(orgId) + Toast.makeText(context, R.string.success,Toast.LENGTH_SHORT).show() + }, + enabled = orgId.length in 6..64, + modifier = Modifier.fillMaxWidth() + ) { + Text(stringResource(R.string.apply)) + } + Spacer(Modifier.padding(vertical = 5.dp)) + Information{ Text(text = stringResource(R.string.get_specific_id_after_set_org_id)) } + } +} + @SuppressLint("NewApi") @Composable private fun SpecificID() {