ShortSupportMessage can be modified

This commit is contained in:
BinTianqi
2024-01-19 19:50:45 +08:00
parent c8af8f054f
commit 62c3144a76
9 changed files with 171 additions and 13 deletions

View File

@@ -6,6 +6,7 @@ import android.content.Context
import android.content.Intent
import android.content.Intent.FLAG_ACTIVITY_NEW_TASK
import android.os.Build.VERSION
import android.widget.Toast
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
@@ -29,20 +30,21 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.unit.dp
import androidx.core.content.ContextCompat.startActivity
import androidx.navigation.NavGraph.Companion.findStartDestination
import androidx.navigation.NavHostController
@Composable
fun DpmPermissions(myDpm: DevicePolicyManager, myComponent: ComponentName, myContext:Context,navCtrl:NavHostController){
//da:DeviceAdmin do:DeviceOwner
val isda = myDpm.isAdminActive(myComponent)
val isdo = myDpm.isDeviceOwnerApp("com.binbin.androidowner")
val focusManager = LocalFocusManager.current
Column(
modifier = Modifier
.padding(8.dp)
.padding(horizontal = 8.dp)
.verticalScroll(rememberScrollState()),
horizontalAlignment = Alignment.CenterHorizontally
) {
@@ -111,7 +113,17 @@ fun DpmPermissions(myDpm: DevicePolicyManager, myComponent: ComponentName, myCon
Column(
horizontalAlignment = Alignment.Start
) {
if(isdo||isda){Text("注意!在这里撤销权限不会清除配置。比如:被停用的应用会保持停用状态")}
if(isdo||isda){
Text(
text = "注意!在这里撤销权限不会清除配置。比如:被停用的应用会保持停用状态",
color = MaterialTheme.colorScheme.onErrorContainer,
modifier = Modifier
.fillMaxWidth()
.clip(RoundedCornerShape(15))
.background(color = MaterialTheme.colorScheme.errorContainer)
.padding(6.dp)
)
}
Spacer(Modifier.padding(5.dp))
if(!isda){
Text("你可以在adb shell中使用以下命令激活Device Admin")
@@ -131,11 +143,85 @@ fun DpmPermissions(myDpm: DevicePolicyManager, myComponent: ComponentName, myCon
}
}
if(isdo&&VERSION.SDK_INT>=24){
var lockScrInfo by remember { mutableStateOf("") }
TextField(value = lockScrInfo, onValueChange = { lockScrInfo= it}, label = { Text("锁屏信息") })
Spacer(Modifier.padding(5.dp))
Button(onClick = {myDpm.setDeviceOwnerLockScreenInfo(myComponent,lockScrInfo)}) {
Text("设置锁屏DeviceOwner信息")
Column(
modifier = Modifier
.fillMaxWidth()
.padding(bottom = 10.dp)
.clip(RoundedCornerShape(12.dp))
.background(color = MaterialTheme.colorScheme.primaryContainer)
.padding(10.dp)
) {
var lockScrInfo by remember { mutableStateOf(myDpm.deviceOwnerLockScreenInfo) }
Text(text = "锁屏DeviceOwner信息", style = MaterialTheme.typography.titleLarge)
TextField(
value = if(lockScrInfo!=null){lockScrInfo.toString()}else{""},
onValueChange = { lockScrInfo= it},
label = { Text("锁屏信息") },
modifier = Modifier.fillMaxWidth().padding(vertical = 8.dp)
)
Row {
Button(onClick = {
myDpm.setDeviceOwnerLockScreenInfo(myComponent,lockScrInfo)
lockScrInfo=myDpm.deviceOwnerLockScreenInfo
focusManager.clearFocus()
Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show()
}) {
Text("应用")
}
Spacer(Modifier.padding(horizontal = 4.dp))
Button(onClick = {
myDpm.setDeviceOwnerLockScreenInfo(myComponent,null)
lockScrInfo=myDpm.deviceOwnerLockScreenInfo
focusManager.clearFocus()
Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show()
}) {
Text("默认")
}
}
}
Column(
modifier = Modifier
.fillMaxWidth()
.padding(bottom = 10.dp)
.clip(RoundedCornerShape(12.dp))
.background(color = MaterialTheme.colorScheme.primaryContainer)
.padding(10.dp)
) {
Text(text = "提示消息", style = MaterialTheme.typography.titleLarge)
Text(text = "如果你禁用了某个功能,用户尝试使用这个功能时会看见这个消息(可多行)",modifier = Modifier.padding(vertical = 6.dp))
var supportMsg by remember{ mutableStateOf(myDpm.getShortSupportMessage(myComponent)) }
TextField(
value = if(supportMsg!=null){ supportMsg.toString() }else{""},
label = {Text("提示消息")},
onValueChange = { supportMsg=it },
modifier = Modifier.fillMaxWidth()
)
Row(
modifier = Modifier.padding(vertical = 6.dp)
) {
Button(
onClick = {
myDpm.setShortSupportMessage(myComponent,supportMsg)
supportMsg=if(myDpm.getShortSupportMessage(myComponent)!=null){ myDpm.getShortSupportMessage(myComponent).toString() }else{""}
focusManager.clearFocus()
Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show()
}
) {
Text(text = "应用")
}
Spacer(Modifier.padding(horizontal = 4.dp))
Button(
onClick = {
myDpm.setShortSupportMessage(myComponent,null)
supportMsg = myDpm.getShortSupportMessage(myComponent)
focusManager.clearFocus()
Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show()
}
) {
Text(text = "默认")
}
}
}
}
}