mirror of
https://github.com/awfixers-stuff/OwnDroid.git
synced 2026-03-23 11:05:59 +00:00
support black theme
This commit is contained in:
@@ -11,8 +11,8 @@ android {
|
||||
applicationId = "com.binbin.androidowner"
|
||||
minSdk = 21
|
||||
targetSdk = 34
|
||||
versionCode = 19
|
||||
versionName = "4.2"
|
||||
versionCode = 20
|
||||
versionName = "4.3"
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
vectorDrawables {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.binbin.androidowner
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Activity
|
||||
import android.app.admin.DevicePolicyManager
|
||||
import android.content.ComponentName
|
||||
@@ -12,20 +11,23 @@ import android.widget.Toast
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.gestures.detectTapGestures
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme.colorScheme
|
||||
import androidx.compose.material3.MaterialTheme.typography
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.input.pointer.pointerInput
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.LocalFocusManager
|
||||
@@ -38,8 +40,10 @@ import androidx.navigation.compose.NavHost
|
||||
import androidx.navigation.compose.composable
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import com.binbin.androidowner.dpm.*
|
||||
import com.binbin.androidowner.ui.theme.AndroidOwnerTheme
|
||||
import com.binbin.androidowner.ui.Animations
|
||||
import com.binbin.androidowner.ui.theme.AndroidOwnerTheme
|
||||
import com.binbin.androidowner.ui.theme.SetDarkTheme
|
||||
import com.binbin.androidowner.ui.theme.bgColor
|
||||
|
||||
lateinit var displayMetrics: DisplayMetrics
|
||||
@ExperimentalMaterial3Api
|
||||
@@ -85,7 +89,7 @@ fun MyScaffold(){
|
||||
modifier = Modifier
|
||||
.statusBarsPadding()
|
||||
.fillMaxSize()
|
||||
.background(color = if(isSystemInDarkTheme()) { Color(0xFF000000) }else{ colorScheme.primary.copy(alpha = 0.05F) })
|
||||
.background(bgColor)
|
||||
.imePadding()
|
||||
.pointerInput(Unit) {detectTapGestures(onTap = {focusMgr.clearFocus()})},
|
||||
enterTransition = Animations().navHostEnterTransition,
|
||||
@@ -126,6 +130,7 @@ private fun HomePage(navCtrl:NavHostController){
|
||||
stringResource(if(VERSION.SDK_INT>=24&&myDpm.isManagedProfile(myComponent)){R.string.work_profile_owner}else{R.string.profile_owner})
|
||||
}
|
||||
else if(myDpm.isAdminActive(myComponent)){"Device Admin"}else{""}
|
||||
SetDarkTheme()
|
||||
Column(modifier = Modifier.verticalScroll(rememberScrollState())) {
|
||||
Spacer(Modifier.padding(vertical = 18.dp))
|
||||
Text(text = stringResource(R.string.app_name), style = typography.headlineLarge, modifier = Modifier.padding(start = 10.dp), color = colorScheme.onBackground)
|
||||
|
||||
@@ -3,11 +3,15 @@ package com.binbin.androidowner
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.material3.*
|
||||
import androidx.compose.material3.MaterialTheme.colorScheme
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme.typography
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.ui.Alignment
|
||||
@@ -21,26 +25,25 @@ import androidx.navigation.compose.NavHost
|
||||
import androidx.navigation.compose.composable
|
||||
import androidx.navigation.compose.currentBackStackEntryAsState
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import com.binbin.androidowner.ui.Animations
|
||||
import com.binbin.androidowner.ui.NavIcon
|
||||
import com.binbin.androidowner.ui.SubPageItem
|
||||
import com.binbin.androidowner.ui.SwitchItem
|
||||
import com.binbin.androidowner.ui.*
|
||||
import com.binbin.androidowner.ui.theme.SetDarkTheme
|
||||
import com.binbin.androidowner.ui.theme.bgColor
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun AppSetting(navCtrl:NavHostController){
|
||||
val localNavCtrl = rememberNavController()
|
||||
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
|
||||
val titleMap = mapOf(
|
||||
/*val titleMap = mapOf(
|
||||
"About" to R.string.about
|
||||
)
|
||||
)*/
|
||||
Scaffold(
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
/*TopAppBar(
|
||||
title = {Text(text = stringResource(titleMap[backStackEntry?.destination?.route]?:R.string.setting))},
|
||||
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
||||
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
||||
)
|
||||
)*/
|
||||
TopBar(backStackEntry, navCtrl, localNavCtrl)
|
||||
}
|
||||
){
|
||||
NavHost(
|
||||
@@ -49,9 +52,7 @@ fun AppSetting(navCtrl:NavHostController){
|
||||
exitTransition = Animations().navHostExitTransition,
|
||||
popEnterTransition = Animations().navHostPopEnterTransition,
|
||||
popExitTransition = Animations().navHostPopExitTransition,
|
||||
modifier = Modifier
|
||||
.background(color = if(isSystemInDarkTheme()) { colorScheme.background }else{ colorScheme.primary.copy(alpha = 0.05F) })
|
||||
.padding(top = it.calculateTopPadding())
|
||||
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
|
||||
){
|
||||
composable(route = "Home"){Home(localNavCtrl)}
|
||||
composable(route = "Settings"){Settings()}
|
||||
@@ -71,11 +72,21 @@ private fun Home(navCtrl: NavHostController){
|
||||
@Composable
|
||||
private fun Settings(){
|
||||
val sharedPref = LocalContext.current.getSharedPreferences("data", Context.MODE_PRIVATE)
|
||||
SetDarkTheme()
|
||||
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState())) {
|
||||
SwitchItem(
|
||||
R.string.dynamic_color, stringResource(R.string.dynamic_color_desc),null,
|
||||
{sharedPref.getBoolean("dynamicColor",false)},{sharedPref.edit().putBoolean("dynamicColor",it).apply()}
|
||||
)
|
||||
SwitchItem(
|
||||
R.string.blackTheme, stringResource(R.string.blackTheme_desc),null,
|
||||
{sharedPref.getBoolean("blackTheme",false)},{sharedPref.edit().putBoolean("blackTheme",it).apply()}
|
||||
)
|
||||
Box(modifier = Modifier.padding(10.dp)){
|
||||
Information {
|
||||
Text(text = stringResource(R.string.need_relaunch))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,7 +29,6 @@ import androidx.compose.foundation.text.KeyboardActions
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.foundation.text.selection.SelectionContainer
|
||||
import androidx.compose.material3.*
|
||||
import androidx.compose.material3.MaterialTheme.colorScheme
|
||||
import androidx.compose.material3.MaterialTheme.typography
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.runtime.saveable.rememberSaveable
|
||||
@@ -50,6 +49,7 @@ import androidx.navigation.compose.rememberNavController
|
||||
import com.binbin.androidowner.R
|
||||
import com.binbin.androidowner.toText
|
||||
import com.binbin.androidowner.ui.*
|
||||
import com.binbin.androidowner.ui.theme.bgColor
|
||||
import com.binbin.androidowner.uriToStream
|
||||
import kotlinx.coroutines.delay
|
||||
import java.io.IOException
|
||||
@@ -61,7 +61,6 @@ private var crossProfilePkg = mutableSetOf<String>()
|
||||
private var keepUninstallPkg = mutableListOf<String>()
|
||||
private var permittedIme = mutableListOf<String>()
|
||||
private var permittedAccessibility = mutableListOf<String>()
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun ApplicationManage(navCtrl:NavHostController){
|
||||
val focusMgr = LocalFocusManager.current
|
||||
@@ -85,11 +84,12 @@ fun ApplicationManage(navCtrl:NavHostController){
|
||||
)
|
||||
Scaffold(
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
/*TopAppBar(
|
||||
title = {Text(text = stringResource(titleMap[backStackEntry?.destination?.route]?:R.string.app_manage))},
|
||||
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
||||
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
||||
)
|
||||
)*/
|
||||
TopBar(backStackEntry, navCtrl, localNavCtrl){Text(text = stringResource(titleMap[backStackEntry?.destination?.route] ?: R.string.app_manage))}
|
||||
}
|
||||
){ paddingValues->
|
||||
Column(modifier = Modifier.fillMaxSize().padding(top = paddingValues.calculateTopPadding())){
|
||||
@@ -109,7 +109,7 @@ fun ApplicationManage(navCtrl:NavHostController){
|
||||
exitTransition = Animations().navHostExitTransition,
|
||||
popEnterTransition = Animations().navHostPopEnterTransition,
|
||||
popExitTransition = Animations().navHostPopExitTransition,
|
||||
modifier = Modifier.background(color = if(isSystemInDarkTheme()) { colorScheme.background }else{ colorScheme.primary.copy(alpha = 0.05F) })
|
||||
modifier = Modifier.background(bgColor)
|
||||
){
|
||||
composable(route = "Home"){Home(localNavCtrl,pkgName)}
|
||||
composable(route = "BlockUninstall"){BlockUninstall(pkgName)}
|
||||
|
||||
@@ -9,11 +9,14 @@ import android.os.Build.VERSION
|
||||
import android.widget.Toast
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.focusable
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.text.KeyboardActions
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.foundation.text.selection.SelectionContainer
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material3.*
|
||||
import androidx.compose.material3.MaterialTheme.colorScheme
|
||||
import androidx.compose.material3.MaterialTheme.typography
|
||||
@@ -32,26 +35,27 @@ import androidx.navigation.compose.currentBackStackEntryAsState
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import com.binbin.androidowner.R
|
||||
import com.binbin.androidowner.ui.*
|
||||
import com.binbin.androidowner.ui.theme.bgColor
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun ManagedProfile(navCtrl: NavHostController) {
|
||||
val localNavCtrl = rememberNavController()
|
||||
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
|
||||
val titleMap = mapOf(
|
||||
/*val titleMap = mapOf(
|
||||
"OrgOwnedWorkProfile" to R.string.org_owned_work_profile,
|
||||
"CreateWorkProfile" to R.string.create_work_profile,
|
||||
"SuspendPersonalApp" to R.string.suspend_personal_app,
|
||||
"IntentFilter" to R.string.intent_filter,
|
||||
"OrgID" to R.string.org_id
|
||||
)
|
||||
)*/
|
||||
Scaffold(
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
/*TopAppBar(
|
||||
title = {Text(text = stringResource(titleMap[backStackEntry?.destination?.route]?:R.string.work_profile))},
|
||||
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
||||
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
||||
)
|
||||
)*/
|
||||
TopBar(backStackEntry,navCtrl, localNavCtrl)
|
||||
}
|
||||
){
|
||||
NavHost(
|
||||
@@ -60,9 +64,7 @@ fun ManagedProfile(navCtrl: NavHostController) {
|
||||
exitTransition = Animations().navHostExitTransition,
|
||||
popEnterTransition = Animations().navHostPopEnterTransition,
|
||||
popExitTransition = Animations().navHostPopExitTransition,
|
||||
modifier = Modifier
|
||||
.background(color = if(isSystemInDarkTheme()) { colorScheme.background }else{ colorScheme.primary.copy(alpha = 0.05F) })
|
||||
.padding(top = it.calculateTopPadding())
|
||||
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
|
||||
){
|
||||
composable(route = "Home"){Home(localNavCtrl)}
|
||||
composable(route = "OrgOwnedWorkProfile"){OrgOwnedProfile()}
|
||||
@@ -80,7 +82,7 @@ private fun Home(navCtrl: NavHostController){
|
||||
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
|
||||
val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
|
||||
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState())){
|
||||
Spacer(Modifier.padding(vertical = 10.dp))
|
||||
Text(text = stringResource(R.string.work_profile), style = typography.headlineLarge, modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.dp))
|
||||
if(VERSION.SDK_INT>=30&&isProfileOwner(myDpm)&&myDpm.isManagedProfile(myComponent)){
|
||||
SubPageItem(R.string.org_owned_work_profile,""){navCtrl.navigate("OrgOwnedWorkProfile")}
|
||||
}
|
||||
|
||||
@@ -43,14 +43,14 @@ import androidx.navigation.compose.rememberNavController
|
||||
import com.binbin.androidowner.R
|
||||
import com.binbin.androidowner.toText
|
||||
import com.binbin.androidowner.ui.*
|
||||
import com.binbin.androidowner.ui.theme.bgColor
|
||||
|
||||
var ssidSet = mutableSetOf<WifiSsid>()
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun Network(navCtrl: NavHostController){
|
||||
val localNavCtrl = rememberNavController()
|
||||
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
|
||||
val titleMap = mapOf(
|
||||
/*val titleMap = mapOf(
|
||||
"Home" to R.string.network,
|
||||
"MinWifiSecurityLevel" to R.string.min_wifi_security_level,
|
||||
"WifiSsidPolicy" to R.string.wifi_ssid_policy,
|
||||
@@ -58,14 +58,15 @@ fun Network(navCtrl: NavHostController){
|
||||
"NetLog" to R.string.retrieve_net_logs,
|
||||
"WifiKeypair" to R.string.wifi_keypair,
|
||||
"APN" to R.string.apn_settings
|
||||
)
|
||||
)*/
|
||||
Scaffold(
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
/*TopAppBar(
|
||||
title = {Text(text = stringResource(titleMap[backStackEntry?.destination?.route]?:R.string.network))},
|
||||
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
||||
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
||||
)
|
||||
)*/
|
||||
TopBar(backStackEntry, navCtrl, localNavCtrl)
|
||||
}
|
||||
){
|
||||
NavHost(
|
||||
@@ -74,9 +75,7 @@ fun Network(navCtrl: NavHostController){
|
||||
exitTransition = Animations().navHostExitTransition,
|
||||
popEnterTransition = Animations().navHostPopEnterTransition,
|
||||
popExitTransition = Animations().navHostPopExitTransition,
|
||||
modifier = Modifier
|
||||
.background(color = if(isSystemInDarkTheme()) { colorScheme.background }else{ colorScheme.primary.copy(alpha = 0.05F) })
|
||||
.padding(top = it.calculateTopPadding())
|
||||
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
|
||||
){
|
||||
composable(route = "Home"){Home(localNavCtrl)}
|
||||
composable(route = "Switches"){Switches()}
|
||||
@@ -96,7 +95,7 @@ private fun Home(navCtrl:NavHostController){
|
||||
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
|
||||
val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
|
||||
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState())){
|
||||
Spacer(Modifier.padding(vertical = 5.dp))
|
||||
Text(text = stringResource(R.string.network), style = typography.headlineLarge, modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.dp))
|
||||
if(VERSION.SDK_INT>=24){
|
||||
val wifimac = try { myDpm.getWifiMacAddress(myComponent).toString() }catch(e:SecurityException){ "没有权限" }
|
||||
Text(text = "WiFi MAC: $wifimac", modifier = Modifier.padding(start = 15.dp))
|
||||
|
||||
@@ -11,10 +11,13 @@ import android.os.Build.VERSION
|
||||
import android.widget.Toast
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.focusable
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.text.KeyboardActions
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material3.*
|
||||
import androidx.compose.material3.MaterialTheme.colorScheme
|
||||
import androidx.compose.material3.MaterialTheme.typography
|
||||
@@ -34,13 +37,13 @@ import androidx.navigation.compose.currentBackStackEntryAsState
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import com.binbin.androidowner.R
|
||||
import com.binbin.androidowner.ui.*
|
||||
import com.binbin.androidowner.ui.theme.bgColor
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun Password(navCtrl: NavHostController){
|
||||
val localNavCtrl = rememberNavController()
|
||||
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
|
||||
val titleMap = mapOf(
|
||||
/*val titleMap = mapOf(
|
||||
"ResetPasswordToken" to R.string.reset_password_token,
|
||||
"PasswordInfo" to R.string.password_info,
|
||||
"ResetPassword" to R.string.reset_password,
|
||||
@@ -51,14 +54,15 @@ fun Password(navCtrl: NavHostController){
|
||||
"MaxPasswordFail" to R.string.max_pwd_fail,
|
||||
"PasswordHistoryLength" to R.string.pwd_history,
|
||||
"RequirePasswordQuality" to R.string.required_password_quality,
|
||||
)
|
||||
)*/
|
||||
Scaffold(
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
/*TopAppBar(
|
||||
title = {Text(text = stringResource(titleMap[backStackEntry?.destination?.route]?:R.string.password_and_keyguard))},
|
||||
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
||||
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
||||
)
|
||||
)*/
|
||||
TopBar(backStackEntry, navCtrl, localNavCtrl)
|
||||
}
|
||||
){
|
||||
NavHost(
|
||||
@@ -67,9 +71,7 @@ fun Password(navCtrl: NavHostController){
|
||||
exitTransition = Animations().navHostExitTransition,
|
||||
popEnterTransition = Animations().navHostPopEnterTransition,
|
||||
popExitTransition = Animations().navHostPopExitTransition,
|
||||
modifier = Modifier
|
||||
.background(color = if(isSystemInDarkTheme()) { colorScheme.background }else{ colorScheme.primary.copy(alpha = 0.05F) })
|
||||
.padding(top = it.calculateTopPadding())
|
||||
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
|
||||
){
|
||||
composable(route = "Home"){Home(localNavCtrl)}
|
||||
composable(route = "PasswordInfo"){PasswordInfo()}
|
||||
@@ -89,6 +91,7 @@ fun Password(navCtrl: NavHostController){
|
||||
@Composable
|
||||
private fun Home(navCtrl:NavHostController){
|
||||
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState())){
|
||||
Text(text = stringResource(R.string.password_and_keyguard), style = typography.headlineLarge, modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.dp))
|
||||
SubPageItem(R.string.password_info,""){navCtrl.navigate("PasswordInfo")}
|
||||
if(VERSION.SDK_INT>=26){
|
||||
SubPageItem(R.string.reset_password_token,""){navCtrl.navigate("ResetPasswordToken")}
|
||||
|
||||
@@ -14,9 +14,11 @@ import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.text.KeyboardActions
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.foundation.text.selection.SelectionContainer
|
||||
import androidx.compose.material3.*
|
||||
import androidx.compose.material3.MaterialTheme.colorScheme
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.MaterialTheme.typography
|
||||
import androidx.compose.material3.OutlinedTextField
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.focus.FocusRequester
|
||||
@@ -35,17 +37,17 @@ import androidx.navigation.compose.rememberNavController
|
||||
import com.binbin.androidowner.R
|
||||
import com.binbin.androidowner.ui.Animations
|
||||
import com.binbin.androidowner.ui.Information
|
||||
import com.binbin.androidowner.ui.NavIcon
|
||||
import com.binbin.androidowner.ui.SubPageItem
|
||||
import com.binbin.androidowner.ui.TopBar
|
||||
import com.binbin.androidowner.ui.theme.bgColor
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun DpmPermissions(navCtrl:NavHostController){
|
||||
val localNavCtrl = rememberNavController()
|
||||
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
|
||||
val titleMap = mapOf(
|
||||
/*val titleMap = mapOf(
|
||||
"Home" to R.string.permission,
|
||||
"Shizuku" to R.string.shizuku,
|
||||
"DeviceAdmin" to R.string.device_admin,
|
||||
@@ -58,14 +60,15 @@ fun DpmPermissions(navCtrl:NavHostController){
|
||||
"LockScreenInfo" to R.string.owner_lockscr_info,
|
||||
"SupportMsg" to R.string.support_msg,
|
||||
"TransformOwnership" to R.string.transform_ownership
|
||||
)
|
||||
)*/
|
||||
Scaffold(
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
/*TopAppBar(
|
||||
title = {Text(text = stringResource(titleMap[backStackEntry?.destination?.route]?:R.string.permission))},
|
||||
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
||||
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
||||
)
|
||||
)*/
|
||||
TopBar(backStackEntry,navCtrl,localNavCtrl)
|
||||
}
|
||||
){
|
||||
NavHost(
|
||||
@@ -74,9 +77,7 @@ fun DpmPermissions(navCtrl:NavHostController){
|
||||
exitTransition = Animations().navHostExitTransition,
|
||||
popEnterTransition = Animations().navHostPopEnterTransition,
|
||||
popExitTransition = Animations().navHostPopExitTransition,
|
||||
modifier = Modifier
|
||||
.background(color = if(isSystemInDarkTheme()) { colorScheme.background }else{ colorScheme.primary.copy(alpha = 0.05F) })
|
||||
.padding(top = it.calculateTopPadding())
|
||||
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
|
||||
){
|
||||
composable(route = "Home"){Home(localNavCtrl)}
|
||||
composable(route = "Shizuku"){ShizukuActivate()}
|
||||
@@ -100,7 +101,7 @@ private fun Home(localNavCtrl:NavHostController){
|
||||
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
|
||||
val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
|
||||
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState())) {
|
||||
Spacer(Modifier.padding(vertical = 10.dp))
|
||||
Text(text = stringResource(R.string.permission), style = typography.headlineLarge, modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.dp))
|
||||
SubPageItem(
|
||||
R.string.device_admin, stringResource(if(myDpm.isAdminActive(myComponent)){R.string.activated}else{R.string.deactivated}),
|
||||
operation = {localNavCtrl.navigate("DeviceAdmin")}
|
||||
|
||||
@@ -19,11 +19,14 @@ import android.widget.Toast
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.animation.animateContentSize
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.focusable
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.text.KeyboardActions
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.foundation.text.selection.SelectionContainer
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material3.*
|
||||
import androidx.compose.material3.MaterialTheme.colorScheme
|
||||
import androidx.compose.material3.MaterialTheme.typography
|
||||
@@ -43,16 +46,15 @@ import androidx.navigation.compose.rememberNavController
|
||||
import com.binbin.androidowner.R
|
||||
import com.binbin.androidowner.toText
|
||||
import com.binbin.androidowner.ui.*
|
||||
import com.binbin.androidowner.ui.Animations
|
||||
import com.binbin.androidowner.ui.theme.bgColor
|
||||
import kotlinx.coroutines.delay
|
||||
import java.util.Date
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun SystemManage(navCtrl:NavHostController){
|
||||
val localNavCtrl = rememberNavController()
|
||||
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
|
||||
val titleMap = mapOf(
|
||||
/*val titleMap = mapOf(
|
||||
"Switches" to R.string.options,
|
||||
"Keyguard" to R.string.keyguard,
|
||||
"BugReport" to R.string.request_bug_report,
|
||||
@@ -66,14 +68,15 @@ fun SystemManage(navCtrl:NavHostController){
|
||||
"SecurityLogs" to R.string.security_logs,
|
||||
"SystemUpdatePolicy" to R.string.system_update_policy,
|
||||
"WipeData" to R.string.wipe_data
|
||||
)
|
||||
)*/
|
||||
Scaffold(
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
/*TopAppBar(
|
||||
title = {Text(text = stringResource(titleMap[backStackEntry?.destination?.route]?:R.string.device_ctrl))},
|
||||
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
||||
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
||||
)
|
||||
)*/
|
||||
TopBar(backStackEntry,navCtrl,localNavCtrl)
|
||||
}
|
||||
){
|
||||
NavHost(
|
||||
@@ -82,9 +85,7 @@ fun SystemManage(navCtrl:NavHostController){
|
||||
exitTransition = Animations().navHostExitTransition,
|
||||
popEnterTransition = Animations().navHostPopEnterTransition,
|
||||
popExitTransition = Animations().navHostPopExitTransition,
|
||||
modifier = Modifier
|
||||
.background(color = if(isSystemInDarkTheme()) { colorScheme.background }else{ colorScheme.primary.copy(alpha = 0.05F) })
|
||||
.padding(top = it.calculateTopPadding())
|
||||
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
|
||||
){
|
||||
composable(route = "Home"){Home(localNavCtrl)}
|
||||
composable(route = "Switches"){Switches()}
|
||||
@@ -109,7 +110,7 @@ private fun Home(navCtrl: NavHostController){
|
||||
val myContext = LocalContext.current
|
||||
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
|
||||
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState())){
|
||||
Spacer(Modifier.padding(vertical = 10.dp))
|
||||
Text(text = stringResource(R.string.device_ctrl), style = typography.headlineLarge, modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.dp))
|
||||
if(isDeviceOwner(myDpm)||isProfileOwner(myDpm)){
|
||||
SubPageItem(R.string.options,""){navCtrl.navigate("Switches")}
|
||||
}
|
||||
|
||||
@@ -15,13 +15,15 @@ import android.provider.MediaStore
|
||||
import android.widget.Toast
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.focusable
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.text.KeyboardActions
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.foundation.text.selection.SelectionContainer
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material3.*
|
||||
import androidx.compose.material3.MaterialTheme.colorScheme
|
||||
import androidx.compose.material3.MaterialTheme.typography
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Modifier
|
||||
@@ -40,16 +42,16 @@ import androidx.navigation.compose.rememberNavController
|
||||
import com.binbin.androidowner.R
|
||||
import com.binbin.androidowner.toText
|
||||
import com.binbin.androidowner.ui.*
|
||||
import com.binbin.androidowner.ui.theme.bgColor
|
||||
import com.binbin.androidowner.uriToStream
|
||||
import kotlinx.coroutines.delay
|
||||
|
||||
var affiliationID = mutableSetOf<String>()
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun UserManage(navCtrl:NavHostController) {
|
||||
val localNavCtrl = rememberNavController()
|
||||
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
|
||||
val titleMap = mapOf(
|
||||
/*val titleMap = mapOf(
|
||||
"UserInfo" to R.string.user_info,
|
||||
"UserOperation" to R.string.user_operation,
|
||||
"CreateUser" to R.string.create_user,
|
||||
@@ -57,14 +59,15 @@ fun UserManage(navCtrl:NavHostController) {
|
||||
"ChangeUserIcon" to R.string.change_user_icon,
|
||||
"UserSessionMessage" to R.string.user_session_msg,
|
||||
"AffiliationID" to R.string.affiliation_id,
|
||||
)
|
||||
)*/
|
||||
Scaffold(
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
/*TopAppBar(
|
||||
title = {Text(text = stringResource(titleMap[backStackEntry?.destination?.route]?:R.string.user_manage))},
|
||||
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
||||
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
||||
)
|
||||
)*/
|
||||
TopBar(backStackEntry,navCtrl,localNavCtrl)
|
||||
}
|
||||
){
|
||||
NavHost(
|
||||
@@ -73,9 +76,7 @@ fun UserManage(navCtrl:NavHostController) {
|
||||
exitTransition = Animations().navHostExitTransition,
|
||||
popEnterTransition = Animations().navHostPopEnterTransition,
|
||||
popExitTransition = Animations().navHostPopExitTransition,
|
||||
modifier = Modifier
|
||||
.background(color = if(isSystemInDarkTheme()) { colorScheme.background }else{ colorScheme.primary.copy(alpha = 0.05F) })
|
||||
.padding(top = it.calculateTopPadding())
|
||||
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
|
||||
){
|
||||
composable(route = "Home"){Home(localNavCtrl)}
|
||||
composable(route = "UserInfo"){CurrentUserInfo()}
|
||||
@@ -94,6 +95,7 @@ private fun Home(navCtrl: NavHostController){
|
||||
val myContext = LocalContext.current
|
||||
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
|
||||
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState())){
|
||||
Text(text = stringResource(R.string.user_manage), style = typography.headlineLarge, modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.dp))
|
||||
SubPageItem(R.string.user_info,""){navCtrl.navigate("UserInfo")}
|
||||
SubPageItem(R.string.user_operation,""){navCtrl.navigate("UserOperation")}
|
||||
if(VERSION.SDK_INT>=24&&isDeviceOwner(myDpm)){
|
||||
|
||||
@@ -11,18 +11,17 @@ import androidx.activity.ComponentActivity
|
||||
import androidx.annotation.DrawableRes
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.isSystemInDarkTheme
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material3.*
|
||||
import androidx.compose.material3.MaterialTheme.colorScheme
|
||||
import androidx.compose.material3.MaterialTheme.typography
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.stringResource
|
||||
@@ -34,9 +33,10 @@ import androidx.navigation.compose.currentBackStackEntryAsState
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import com.binbin.androidowner.R
|
||||
import com.binbin.androidowner.ui.Animations
|
||||
import com.binbin.androidowner.ui.NavIcon
|
||||
import com.binbin.androidowner.ui.SubPageItem
|
||||
import com.binbin.androidowner.ui.SwitchItem
|
||||
import com.binbin.androidowner.ui.TopBar
|
||||
import com.binbin.androidowner.ui.theme.bgColor
|
||||
|
||||
private data class Restriction(
|
||||
val restriction:String,
|
||||
@@ -45,26 +45,26 @@ private data class Restriction(
|
||||
@DrawableRes val ico:Int
|
||||
)
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun UserRestriction(navCtrl: NavHostController){
|
||||
val localNavCtrl = rememberNavController()
|
||||
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
|
||||
val titleMap = mapOf(
|
||||
/*val titleMap = mapOf(
|
||||
"Internet" to R.string.network_internet,
|
||||
"Connectivity" to R.string.more_connectivity,
|
||||
"Users" to R.string.users,
|
||||
"Media" to R.string.media,
|
||||
"Applications" to R.string.applications,
|
||||
"Other" to R.string.other
|
||||
)
|
||||
)*/
|
||||
Scaffold(
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
/*TopAppBar(
|
||||
title = {Text(text = stringResource(titleMap[backStackEntry?.destination?.route]?:R.string.user_restrict))},
|
||||
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
||||
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
||||
)
|
||||
)*/
|
||||
TopBar(backStackEntry,navCtrl,localNavCtrl)
|
||||
}
|
||||
){
|
||||
NavHost(
|
||||
@@ -73,9 +73,7 @@ fun UserRestriction(navCtrl: NavHostController){
|
||||
exitTransition = Animations().navHostExitTransition,
|
||||
popEnterTransition = Animations().navHostPopEnterTransition,
|
||||
popExitTransition = Animations().navHostPopExitTransition,
|
||||
modifier = Modifier
|
||||
.background(color = if(isSystemInDarkTheme()) { colorScheme.background }else{ colorScheme.primary.copy(alpha = 0.05F) })
|
||||
.padding(top = it.calculateTopPadding())
|
||||
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
|
||||
){
|
||||
composable(route = "Internet"){Internet()}
|
||||
composable(route = "Home"){Home(localNavCtrl)}
|
||||
@@ -93,11 +91,13 @@ private fun Home(navCtrl:NavHostController){
|
||||
val myContext = LocalContext.current
|
||||
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
|
||||
val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
|
||||
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState()), horizontalAlignment = Alignment.CenterHorizontally){
|
||||
Spacer(Modifier.padding(vertical = 5.dp))
|
||||
Text(text = "打开开关后会禁用对应的功能")
|
||||
if(isProfileOwner(myDpm)){ Text(text = "Profile owner无法使用部分功能") }
|
||||
if(isProfileOwner(myDpm)&&(VERSION.SDK_INT<24||(VERSION.SDK_INT>=24&&myDpm.isManagedProfile(myComponent)))){ Text(text = "工作资料中部分功能无效") }
|
||||
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState())){
|
||||
Text(text = stringResource(R.string.user_restrict), style = typography.headlineLarge, modifier = Modifier.padding(top = 8.dp, bottom = 7.dp, start = 15.dp))
|
||||
Text(text = stringResource(R.string.switch_to_disable_feature), modifier = Modifier.padding(start = 15.dp))
|
||||
if(isProfileOwner(myDpm)){ Text(text = stringResource(R.string.profile_owner_is_restricted), modifier = Modifier.padding(start = 15.dp)) }
|
||||
if(isProfileOwner(myDpm)&&(VERSION.SDK_INT<24||(VERSION.SDK_INT>=24&&myDpm.isManagedProfile(myComponent)))){
|
||||
Text(text = stringResource(R.string.some_features_invalid_in_work_profile), modifier = Modifier.padding(start = 15.dp))
|
||||
}
|
||||
Spacer(Modifier.padding(vertical = 2.dp))
|
||||
SubPageItem(R.string.network_internet,""){navCtrl.navigate("Internet")}
|
||||
SubPageItem(R.string.more_connectivity,""){navCtrl.navigate("Connectivity")}
|
||||
|
||||
@@ -18,7 +18,10 @@ import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.navigation.NavBackStackEntry
|
||||
import androidx.navigation.NavHostController
|
||||
import com.binbin.androidowner.R
|
||||
import com.binbin.androidowner.ui.theme.bgColor
|
||||
|
||||
@Composable
|
||||
fun SubPageItem(
|
||||
@@ -136,3 +139,19 @@ fun SwitchItem(
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun TopBar(
|
||||
backStackEntry:NavBackStackEntry?,
|
||||
navCtrl:NavHostController,
|
||||
localNavCtrl:NavHostController,
|
||||
title:@Composable ()->Unit = {}
|
||||
){
|
||||
TopAppBar(
|
||||
//Text(text = stringResource(titleMap[backStackEntry?.destination?.route]?:R.string.user_restrict))
|
||||
title = title,
|
||||
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
||||
colors = TopAppBarDefaults.topAppBarColors(containerColor = bgColor)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -5,13 +5,11 @@ import android.content.Context
|
||||
import android.os.Build
|
||||
import android.os.Build.VERSION
|
||||
import androidx.compose.foundation.isSystemInDarkTheme
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.darkColorScheme
|
||||
import androidx.compose.material3.dynamicDarkColorScheme
|
||||
import androidx.compose.material3.dynamicLightColorScheme
|
||||
import androidx.compose.material3.lightColorScheme
|
||||
import androidx.compose.material3.*
|
||||
import androidx.compose.material3.MaterialTheme.colorScheme
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.SideEffect
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.toArgb
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.LocalView
|
||||
@@ -81,11 +79,27 @@ private val LightColorScheme = lightColorScheme(
|
||||
scrim = md_theme_light_scrim
|
||||
)
|
||||
|
||||
var bgColor = Color(0xFF000000)
|
||||
|
||||
@Composable
|
||||
fun SetDarkTheme(){
|
||||
val dark = isSystemInDarkTheme()
|
||||
val sharedPref = LocalContext.current.getSharedPreferences("data", Context.MODE_PRIVATE)
|
||||
val bg = colorScheme.background
|
||||
val lightBg = colorScheme.primary.copy(alpha = 0.05F)
|
||||
bgColor = if(dark){
|
||||
if(sharedPref.getBoolean("blackTheme",true)){ Color(0xFF000000) }else{ bg }
|
||||
}else{
|
||||
lightBg
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun AndroidOwnerTheme(
|
||||
darkTheme: Boolean = isSystemInDarkTheme(),
|
||||
content: @Composable () -> Unit
|
||||
) {
|
||||
SetDarkTheme()
|
||||
val context = LocalContext.current
|
||||
val sharedPref = context.getSharedPreferences("data", Context.MODE_PRIVATE)
|
||||
if(!sharedPref.contains("dynamicColor")&&VERSION.SDK_INT>=32){
|
||||
@@ -104,7 +118,7 @@ fun AndroidOwnerTheme(
|
||||
if (!view.isInEditMode) {
|
||||
SideEffect {
|
||||
val window = (view.context as Activity).window
|
||||
window.statusBarColor = colorScheme.surfaceVariant.toArgb()
|
||||
window.statusBarColor = bgColor.toArgb()
|
||||
WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = !darkTheme
|
||||
}
|
||||
}
|
||||
|
||||
@@ -273,6 +273,9 @@
|
||||
|
||||
<!--UserRestriction-->
|
||||
<string name="user_restrict">用户限制</string>
|
||||
<string name="profile_owner_is_restricted">Profile owner无法使用部分功能</string>
|
||||
<string name="switch_to_disable_feature">打开开关后会禁用对应的功能</string>
|
||||
<string name="some_features_invalid_in_work_profile">工作资料中部分功能无效</string>
|
||||
<string name="network_internet">网络和互联网</string>
|
||||
<string name="more_connectivity">更多连接</string>
|
||||
<string name="applications">应用</string>
|
||||
@@ -453,10 +456,13 @@
|
||||
<!--Settings&About-->
|
||||
<string name="setting">设置</string>
|
||||
<string name="dynamic_color">动态取色</string>
|
||||
<string name="dynamic_color_desc">打开或关闭动态取色需要重启应用</string>
|
||||
<string name="dynamic_color_desc">安卓12+</string>
|
||||
<string name="about">关于</string>
|
||||
<string name="about_desc">使用安卓的Device admin、Device owner 、Profile owner,全方位掌控你的设备</string>
|
||||
<string name="user_guide">使用教程</string>
|
||||
<string name="source_code">源代码</string>
|
||||
<string name="blackTheme">纯黑夜间主题</string>
|
||||
<string name="blackTheme_desc">需要打开夜间模式</string>
|
||||
<string name="need_relaunch">需要重启应用</string>
|
||||
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user