mirror of
https://github.com/awfixers-stuff/OwnDroid.git
synced 2026-03-23 11:05:59 +00:00
Simplified UserRestriction
This commit is contained in:
@@ -2,7 +2,6 @@ package com.binbin.androidowner
|
|||||||
|
|
||||||
import android.app.admin.DevicePolicyManager
|
import android.app.admin.DevicePolicyManager
|
||||||
import android.content.ComponentName
|
import android.content.ComponentName
|
||||||
import android.content.pm.PackageManager
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.material3.Button
|
import androidx.compose.material3.Button
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
@@ -12,7 +11,6 @@ import androidx.compose.runtime.getValue
|
|||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
import com.binbin.androidowner.ui.theme.AndroidOwnerTheme
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ApplicationManage(myDpm:DevicePolicyManager, myComponent:ComponentName){
|
fun ApplicationManage(myDpm:DevicePolicyManager, myComponent:ComponentName){
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package com.binbin.androidowner
|
|||||||
|
|
||||||
import android.app.admin.DevicePolicyManager
|
import android.app.admin.DevicePolicyManager
|
||||||
import android.content.ComponentName
|
import android.content.ComponentName
|
||||||
import android.os.UserManager
|
|
||||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||||
import androidx.compose.foundation.combinedClickable
|
import androidx.compose.foundation.combinedClickable
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
|
|||||||
@@ -4,11 +4,8 @@ import android.annotation.SuppressLint
|
|||||||
import android.app.admin.DevicePolicyManager
|
import android.app.admin.DevicePolicyManager
|
||||||
import android.content.ComponentName
|
import android.content.ComponentName
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.UserManager
|
|
||||||
import androidx.activity.ComponentActivity
|
import androidx.activity.ComponentActivity
|
||||||
import androidx.activity.compose.setContent
|
import androidx.activity.compose.setContent
|
||||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
|
||||||
import androidx.compose.foundation.combinedClickable
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material3.Button
|
import androidx.compose.material3.Button
|
||||||
@@ -18,9 +15,7 @@ import androidx.compose.material3.Text
|
|||||||
import androidx.compose.material3.TopAppBar
|
import androidx.compose.material3.TopAppBar
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.navigation.NavHost
|
|
||||||
import androidx.navigation.NavHostController
|
import androidx.navigation.NavHostController
|
||||||
import androidx.navigation.compose.NavHost
|
import androidx.navigation.compose.NavHost
|
||||||
import androidx.navigation.compose.composable
|
import androidx.navigation.compose.composable
|
||||||
@@ -63,7 +58,7 @@ fun MyScaffold(mainDpm:DevicePolicyManager, mainComponent:ComponentName){
|
|||||||
composable(route = "Permissions", content = { DpmPermissions(mainDpm,mainComponent)})
|
composable(route = "Permissions", content = { DpmPermissions(mainDpm,mainComponent)})
|
||||||
composable(route = "UIControl", content = { UIControl(mainDpm,mainComponent)})
|
composable(route = "UIControl", content = { UIControl(mainDpm,mainComponent)})
|
||||||
composable(route = "ApplicationManage", content = { ApplicationManage(mainDpm,mainComponent)})
|
composable(route = "ApplicationManage", content = { ApplicationManage(mainDpm,mainComponent)})
|
||||||
composable(route = "UserRestriction", content = { UserRestrict(mainDpm,mainComponent)})
|
composable(route = "UserRestriction", content = { UserRestriction(mainDpm,mainComponent)})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,75 +1,47 @@
|
|||||||
package com.binbin.androidowner
|
package com.binbin.androidowner
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
|
||||||
import android.app.admin.DevicePolicyManager
|
import android.app.admin.DevicePolicyManager
|
||||||
import android.content.ComponentName
|
import android.content.ComponentName
|
||||||
import android.os.UserManager
|
import android.os.UserManager
|
||||||
import android.util.Log
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
|
import androidx.compose.foundation.rememberScrollState
|
||||||
|
import androidx.compose.foundation.verticalScroll
|
||||||
import androidx.compose.material3.Button
|
import androidx.compose.material3.Button
|
||||||
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.runtime.mutableStateMapOf
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.runtime.mutableStateOf
|
|
||||||
import androidx.compose.runtime.remember
|
|
||||||
import androidx.compose.runtime.setValue
|
|
||||||
|
|
||||||
@SuppressLint("UnrememberedMutableState")
|
|
||||||
@Composable
|
@Composable
|
||||||
fun UserRestrict(myDpm: DevicePolicyManager, myComponent: ComponentName){
|
fun UserRestriction(myDpm: DevicePolicyManager, myComponent: ComponentName){
|
||||||
Column {
|
val verticalScrolling = rememberScrollState()
|
||||||
val strictState = myDpm.getUserRestrictions(myComponent)
|
Column(modifier = Modifier.verticalScroll(verticalScrolling)) {
|
||||||
for (key in strictState.keySet()) {
|
UserRestrictionItem(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS,R.string.config_mobile_network,myComponent, myDpm)
|
||||||
val value = when (strictState[key]) {
|
UserRestrictionItem(UserManager.DISALLOW_CONFIG_WIFI,R.string.config_wifi,myComponent, myDpm)
|
||||||
is Boolean -> if (strictState.getBoolean(key)) "true" else "false"
|
UserRestrictionItem(UserManager.DISALLOW_BLUETOOTH,R.string.bluetooth,myComponent, myDpm)
|
||||||
else -> ""
|
UserRestrictionItem(UserManager.DISALLOW_AIRPLANE_MODE,R.string.airplane_mode,myComponent, myDpm)
|
||||||
}
|
UserRestrictionItem(UserManager.DISALLOW_CONFIG_LOCATION,R.string.config_location,myComponent, myDpm)
|
||||||
//println("Key: $key, Value: $value")
|
UserRestrictionItem(UserManager.DISALLOW_DEBUGGING_FEATURES,R.string.debug_features,myComponent, myDpm)
|
||||||
Log.e(">>>>>>>>>>>","Key: $key, Value: $value")
|
UserRestrictionItem(UserManager.DISALLOW_CREATE_WINDOWS,R.string.create_windows,myComponent, myDpm)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
private fun UserRestrictionItem(restriction:String, itemName:Int, myComponent: ComponentName, myDpm: DevicePolicyManager){
|
||||||
|
val strictState = myDpm.getUserRestrictions(myComponent)
|
||||||
|
val currentState = stringResource(R.string.is_disallow)+strictState.getBoolean("no_create_windows").toString()
|
||||||
|
Column{
|
||||||
|
Text(
|
||||||
|
text = stringResource(itemName),
|
||||||
|
style = MaterialTheme.typography.headlineSmall
|
||||||
|
)
|
||||||
|
Text(text = currentState)
|
||||||
|
Button(onClick = {myDpm.clearUserRestriction(myComponent,restriction)}) {
|
||||||
|
Text(stringResource(R.string.disallow))
|
||||||
}
|
}
|
||||||
Text("限制蓝牙:${strictState.getBoolean("no_bluetooth")}")
|
Button(onClick = {myDpm.addUserRestriction(myComponent,restriction)}) {
|
||||||
Button(onClick = {myDpm.addUserRestriction(myComponent, UserManager.DISALLOW_BLUETOOTH)}) {
|
Text(text = stringResource(R.string.allow))
|
||||||
Text("禁用蓝牙")
|
|
||||||
}
|
|
||||||
Button(onClick = {myDpm.clearUserRestriction(myComponent, UserManager.DISALLOW_BLUETOOTH)}) {
|
|
||||||
Text("允许蓝牙")
|
|
||||||
}
|
|
||||||
Text("限制Wi-Fi:${strictState.getBoolean("no_config_wifi")}")
|
|
||||||
Button(onClick = {myDpm.addUserRestriction(myComponent, UserManager.DISALLOW_CONFIG_WIFI)}) {
|
|
||||||
Text("禁用Wi-Fi")
|
|
||||||
}
|
|
||||||
Button(onClick = {myDpm.clearUserRestriction(myComponent, UserManager.DISALLOW_CONFIG_WIFI)}) {
|
|
||||||
Text("允许Wi-Fi")
|
|
||||||
}
|
|
||||||
Text("限制调试:${strictState.getBoolean("no_debug_features")}")
|
|
||||||
Button(onClick = {myDpm.addUserRestriction(myComponent, UserManager.DISALLOW_DEBUGGING_FEATURES)}) {
|
|
||||||
Text("禁用调试")
|
|
||||||
}
|
|
||||||
Button(onClick = {myDpm.clearUserRestriction(myComponent, UserManager.DISALLOW_DEBUGGING_FEATURES)}) {
|
|
||||||
Text("允许调试")
|
|
||||||
}
|
|
||||||
Text("限制定位:${strictState.getBoolean("no_config_location")}")
|
|
||||||
Button(onClick = {myDpm.addUserRestriction(myComponent, UserManager.DISALLOW_CONFIG_LOCATION)}) {
|
|
||||||
Text("禁用定位(需安卓9)")
|
|
||||||
}
|
|
||||||
Button(onClick = {myDpm.clearUserRestriction(myComponent, UserManager.DISALLOW_CONFIG_LOCATION)}) {
|
|
||||||
Text("允许定位(需安卓9)")
|
|
||||||
}
|
|
||||||
Text("限制移动数据:${strictState.getBoolean("no_config_mobile_network")}")
|
|
||||||
Button(onClick = {myDpm.addUserRestriction(myComponent, UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)}) {
|
|
||||||
Text("禁用移动数据")
|
|
||||||
}
|
|
||||||
Button(onClick = {myDpm.clearUserRestriction(myComponent, UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)}) {
|
|
||||||
Text("允许移动数据")
|
|
||||||
}
|
|
||||||
Text("限制弹窗:${strictState.getBoolean("no_create_windows")}")
|
|
||||||
Text("弹窗包括toast、通知和应用的“显示在其他应用上层”")
|
|
||||||
Button(onClick = {myDpm.addUserRestriction(myComponent, UserManager.DISALLOW_CREATE_WINDOWS)}) {
|
|
||||||
Text("禁止弹窗")
|
|
||||||
}
|
|
||||||
Button(onClick = {myDpm.clearUserRestriction(myComponent, UserManager.DISALLOW_CREATE_WINDOWS)}) {
|
|
||||||
Text("允许弹窗")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,13 @@
|
|||||||
<resources>
|
<resources>
|
||||||
<string name="app_name">Android Owner</string>
|
<string name="app_name">Android Owner</string>
|
||||||
|
<string name="bluetooth">蓝牙</string>
|
||||||
|
<string name="airplane_mode">飞行模式(需安卓9)</string>
|
||||||
|
<string name="config_wifi">配置Wi-Fi</string>
|
||||||
|
<string name="debug_features">调试功能</string>
|
||||||
|
<string name="config_location">配置位置信息(需安卓9)</string>
|
||||||
|
<string name="config_mobile_network">配置移动数据</string>
|
||||||
|
<string name="create_windows">创建窗口</string>
|
||||||
|
<string name="allow">允许</string>
|
||||||
|
<string name="disallow">禁止</string>
|
||||||
|
<string name="is_disallow">是否禁止:</string>
|
||||||
</resources>
|
</resources>
|
||||||
Reference in New Issue
Block a user