feat: detect user restrictions set by other admins (#242)

This commit is contained in:
BinTianqi
2026-02-12 13:55:07 +08:00
parent ac2a90dbca
commit 64191761b7
2 changed files with 7 additions and 10 deletions

View File

@@ -121,9 +121,6 @@ import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.addJsonObject
import kotlinx.serialization.json.buildJsonArray
import kotlinx.serialization.json.put
import java.net.InetAddress
import java.security.MessageDigest
import java.security.cert.CertificateException
@@ -1336,9 +1333,8 @@ class MyViewModel(application: Application): AndroidViewModel(application) {
Privilege.updateStatus()
}
val userRestrictions = MutableStateFlow(emptyMap<String, Boolean>())
@RequiresApi(24)
fun getUserRestrictions() {
val bundle = DPM.getUserRestrictions(DAR)
val bundle = UM.userRestrictions
userRestrictions.value = bundle.keySet().associateWith { bundle.getBoolean(it) }
}
fun setUserRestriction(name: String, state: Boolean): Boolean {
@@ -1349,6 +1345,7 @@ class MyViewModel(application: Application): AndroidViewModel(application) {
DPM.clearUserRestriction(DAR, name)
}
userRestrictions.update { it.plus(name to state) }
getUserRestrictions()
ShortcutUtils.updateUserRestrictionShortcut(application, name, !state, true)
true
} catch (_: SecurityException) {

View File

@@ -1,9 +1,9 @@
[versions]
agp = "8.13.2"
kotlin = "2.3.0"
kotlin = "2.3.10"
navigation-compose = "2.9.6"
composeBom = "2025.12.01"
navigation-compose = "2.9.7"
composeBom = "2026.02.00"
accompanist-drawablepainter = "0.37.3"
accompanist-permissions = "0.37.3"
shizuku = "13.1.5"
@@ -13,7 +13,7 @@ dhizuku-server = "0.0.10"
hiddenApiBypass = "6.1"
libsu = "6.0.0"
reoderable = "3.0.0"
serialization = "1.9.0"
serialization = "1.10.0"
[libraries]
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
@@ -42,4 +42,4 @@ serialization = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization
android-application = { id = "com.android.application", version.ref = "agp" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version = "2.3.0" }
serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version = "2.3.10" }