switch Material you theme and black theme without relaunch app

This commit is contained in:
BinTianqi
2024-05-12 21:24:03 +08:00
parent 2009baac40
commit bbb6875be9
16 changed files with 85 additions and 96 deletions

View File

@@ -40,21 +40,23 @@ import androidx.navigation.compose.rememberNavController
import com.bintianqi.owndroid.dpm.*
import com.bintianqi.owndroid.ui.Animations
import com.bintianqi.owndroid.ui.theme.OwnDroidTheme
import com.bintianqi.owndroid.ui.theme.SetDarkTheme
import com.bintianqi.owndroid.ui.theme.bgColor
import kotlinx.coroutines.delay
var backToHome = false
@ExperimentalMaterial3Api
class MainActivity : ComponentActivity() {
@SuppressLint("UnrememberedMutableState")
override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
WindowCompat.setDecorFitsSystemWindows(window, false)
super.onCreate(savedInstanceState)
registerActivityResult(this)
val sharedPref = applicationContext.getSharedPreferences("data", Context.MODE_PRIVATE)
setContent {
OwnDroidTheme {
MyScaffold()
val materialYou = mutableStateOf(sharedPref.getBoolean("material_you",true))
val blackTheme = mutableStateOf(sharedPref.getBoolean("black_theme", false))
OwnDroidTheme(materialYou.value, blackTheme.value){
MyScaffold(materialYou, blackTheme)
}
}
}
@@ -63,7 +65,7 @@ class MainActivity : ComponentActivity() {
@SuppressLint("UnrememberedMutableState")
@ExperimentalMaterial3Api
@Composable
fun MyScaffold(){
fun MyScaffold(materialYou:MutableState<Boolean>, blackTheme:MutableState<Boolean>){
val navCtrl = rememberNavController()
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
@@ -72,7 +74,6 @@ fun MyScaffold(){
val focusMgr = LocalFocusManager.current
val pkgName = mutableStateOf("")
val dialogStatus = mutableIntStateOf(0)
SetDarkTheme()
LaunchedEffect(Unit){
while(true){
if(backToHome){ navCtrl.navigateUp(); backToHome=false }
@@ -84,7 +85,7 @@ fun MyScaffold(){
startDestination = "HomePage",
modifier = Modifier
.fillMaxSize()
.background(bgColor)
.background(colorScheme.background)
.imePadding()
.pointerInput(Unit) {detectTapGestures(onTap = {focusMgr.clearFocus()})},
enterTransition = Animations.navHostEnterTransition,
@@ -100,7 +101,7 @@ fun MyScaffold(){
composable(route = "UserRestriction", content = { UserRestriction(navCtrl)})
composable(route = "UserManage", content = { UserManage(navCtrl)})
composable(route = "Password", content = { Password(navCtrl)})
composable(route = "AppSetting", content = { AppSetting(navCtrl)})
composable(route = "AppSetting", content = { AppSetting(navCtrl, materialYou, blackTheme)})
composable(route = "Network", content = {Network(navCtrl)})
composable(route = "PackageSelector"){PackageSelector(navCtrl, pkgName)}
composable(route = "PermissionPicker"){PermissionPicker(navCtrl)}
@@ -131,7 +132,10 @@ private fun HomePage(navCtrl:NavHostController, pkgName: MutableState<String>){
LaunchedEffect(Unit){ pkgName.value = "" }
Column(modifier = Modifier.statusBarsPadding().verticalScroll(rememberScrollState())) {
Spacer(Modifier.padding(vertical = 25.dp))
Text(text = stringResource(R.string.app_name), style = typography.headlineLarge, modifier = Modifier.padding(start = 10.dp), color = colorScheme.onBackground)
Text(
text = stringResource(R.string.app_name), style = typography.headlineLarge,
modifier = Modifier.padding(start = 10.dp), color = colorScheme.onBackground
)
Spacer(Modifier.padding(vertical = 8.dp))
Row(
modifier = Modifier

View File

@@ -2,7 +2,6 @@ package com.bintianqi.owndroid
import android.Manifest
import android.os.Build.VERSION
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
@@ -17,7 +16,6 @@ import androidx.navigation.NavHostController
import com.bintianqi.owndroid.dpm.applySelectedPermission
import com.bintianqi.owndroid.dpm.selectedPermission
import com.bintianqi.owndroid.ui.NavIcon
import com.bintianqi.owndroid.ui.theme.bgColor
@OptIn(ExperimentalMaterial3Api::class)
@Composable
@@ -27,12 +25,12 @@ fun PermissionPicker(navCtrl: NavHostController){
TopAppBar(
title = {Text(text = stringResource(R.string.permission_picker))},
navigationIcon = {NavIcon{navCtrl.navigateUp()}},
colors = TopAppBarDefaults.topAppBarColors(containerColor = bgColor)
colors = TopAppBarDefaults.topAppBarColors(containerColor = MaterialTheme.colorScheme.background)
)
}
){ paddingValues->
LazyColumn(
modifier = Modifier.fillMaxSize().padding(top = paddingValues.calculateTopPadding()).background(bgColor)
modifier = Modifier.fillMaxSize().padding(top = paddingValues.calculateTopPadding())
){
items(permissionList()){
Column(

View File

@@ -10,6 +10,7 @@ import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.*
import androidx.compose.material3.MaterialTheme.colorScheme
import androidx.compose.material3.MaterialTheme.typography
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
@@ -22,7 +23,6 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.navigation.NavHostController
import com.bintianqi.owndroid.ui.NavIcon
import com.bintianqi.owndroid.ui.theme.bgColor
import com.google.accompanist.drawablepainter.rememberDrawablePainter
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
@@ -125,13 +125,13 @@ fun PackageSelector(navCtrl:NavHostController, pkgName: MutableState<String>){
Text(text = stringResource(R.string.pkg_selector))
},
navigationIcon = { NavIcon{navCtrl.navigateUp()} },
colors = TopAppBarDefaults.topAppBarColors(containerColor = bgColor)
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.background)
)
}
){paddingValues->
LazyColumn(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.fillMaxSize().background(bgColor).padding(top = paddingValues.calculateTopPadding()),
modifier = Modifier.fillMaxSize().padding(top = paddingValues.calculateTopPadding()),
state = scrollState
){
items(1){

View File

@@ -3,19 +3,21 @@ package com.bintianqi.owndroid
import android.content.Context
import android.content.Intent
import android.net.Uri
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import android.os.Build.VERSION
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.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.MutableState
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
@@ -24,12 +26,13 @@ import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
import com.bintianqi.owndroid.ui.*
import com.bintianqi.owndroid.ui.theme.SetDarkTheme
import com.bintianqi.owndroid.ui.theme.bgColor
import com.bintianqi.owndroid.ui.Animations
import com.bintianqi.owndroid.ui.SubPageItem
import com.bintianqi.owndroid.ui.SwitchItem
import com.bintianqi.owndroid.ui.TopBar
@Composable
fun AppSetting(navCtrl:NavHostController){
fun AppSetting(navCtrl:NavHostController, materialYou: MutableState<Boolean>, blackTheme: MutableState<Boolean>){
val localNavCtrl = rememberNavController()
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
/*val titleMap = mapOf(
@@ -51,10 +54,10 @@ fun AppSetting(navCtrl:NavHostController){
exitTransition = Animations.navHostExitTransition,
popEnterTransition = Animations.navHostPopEnterTransition,
popExitTransition = Animations.navHostPopExitTransition,
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
modifier = Modifier.padding(top = it.calculateTopPadding())
){
composable(route = "Home"){Home(localNavCtrl)}
composable(route = "Settings"){Settings()}
composable(route = "Settings"){Settings(materialYou, blackTheme)}
composable(route = "About"){About()}
}
}
@@ -69,24 +72,28 @@ private fun Home(navCtrl: NavHostController){
}
@Composable
private fun Settings(){
private fun Settings(materialYou:MutableState<Boolean>, blackTheme:MutableState<Boolean>){
val sharedPref = LocalContext.current.getSharedPreferences("data", Context.MODE_PRIVATE)
SetDarkTheme()
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState())) {
if(VERSION.SDK_INT>=31){
SwitchItem(
R.string.dynamic_color, stringResource(R.string.dynamic_color_desc),null,
{sharedPref.getBoolean("dynamicColor",false)},{sharedPref.edit().putBoolean("dynamicColor",it).apply()}
)
if(colorScheme.background.toArgb()!=Color(0xFF000000).toArgb()){
SwitchItem(
R.string.blackTheme, stringResource(R.string.blackTheme_desc),null,
{sharedPref.getBoolean("blackTheme",false)},{sharedPref.edit().putBoolean("blackTheme",it).apply()}
R.string.material_you_color, stringResource(R.string.dynamic_color_desc), null,
{ sharedPref.getBoolean("material_you",true) },
{
sharedPref.edit().putBoolean("material_you",it).apply()
materialYou.value = it
}
)
}
Box(modifier = Modifier.padding(10.dp)){
Information {
Text(text = stringResource(R.string.need_relaunch))
if(isSystemInDarkTheme()){
SwitchItem(
R.string.amoled_black, stringResource(R.string.blackTheme_desc), null,
{ sharedPref.getBoolean("black_theme",false) },
{
sharedPref.edit().putBoolean("black_theme",it).apply()
blackTheme.value = it
}
)
}
}
}

View File

@@ -52,7 +52,6 @@ import androidx.navigation.compose.rememberNavController
import com.bintianqi.owndroid.*
import com.bintianqi.owndroid.R
import com.bintianqi.owndroid.ui.*
import com.bintianqi.owndroid.ui.theme.bgColor
import kotlinx.coroutines.delay
import java.io.IOException
import java.io.InputStream
@@ -122,8 +121,7 @@ fun ApplicationManage(navCtrl:NavHostController, pkgName: MutableState<String>,
enterTransition = Animations.navHostEnterTransition,
exitTransition = Animations.navHostExitTransition,
popEnterTransition = Animations.navHostPopEnterTransition,
popExitTransition = Animations.navHostPopExitTransition,
modifier = Modifier.background(bgColor)
popExitTransition = Animations.navHostPopExitTransition
){
composable(route = "Home"){Home(localNavCtrl, pkgName.value, dialogStatus)}
composable(route = "UserControlDisabled"){UserCtrlDisabledPkg(pkgName.value)}

View File

@@ -9,7 +9,6 @@ import android.os.Build.VERSION
import android.widget.Toast
import androidx.activity.ComponentActivity
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.foundation.background
import androidx.compose.foundation.focusable
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.rememberScrollState
@@ -17,9 +16,12 @@ 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.Button
import androidx.compose.material3.MaterialTheme.colorScheme
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.platform.LocalContext
@@ -36,7 +38,6 @@ import androidx.navigation.compose.rememberNavController
import com.bintianqi.owndroid.R
import com.bintianqi.owndroid.Receiver
import com.bintianqi.owndroid.ui.*
import com.bintianqi.owndroid.ui.theme.bgColor
@Composable
fun ManagedProfile(navCtrl: NavHostController) {
@@ -65,7 +66,7 @@ fun ManagedProfile(navCtrl: NavHostController) {
exitTransition = Animations.navHostExitTransition,
popEnterTransition = Animations.navHostPopEnterTransition,
popExitTransition = Animations.navHostPopExitTransition,
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
modifier = Modifier.padding(top = it.calculateTopPadding())
){
composable(route = "Home"){Home(localNavCtrl)}
composable(route = "OrgOwnedWorkProfile"){OrgOwnedProfile()}

View File

@@ -45,7 +45,6 @@ import com.bintianqi.owndroid.R
import com.bintianqi.owndroid.Receiver
import com.bintianqi.owndroid.toText
import com.bintianqi.owndroid.ui.*
import com.bintianqi.owndroid.ui.theme.bgColor
var ssidSet = mutableSetOf<WifiSsid>()
@Composable
@@ -85,7 +84,7 @@ fun Network(navCtrl: NavHostController){
exitTransition = Animations.navHostExitTransition,
popEnterTransition = Animations.navHostPopEnterTransition,
popExitTransition = Animations.navHostPopExitTransition,
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
modifier = Modifier.padding(top = it.calculateTopPadding())
){
composable(route = "Home"){Home(localNavCtrl,scrollState)}
composable(route = "Switches"){Switches()}

View File

@@ -36,7 +36,6 @@ import androidx.navigation.compose.rememberNavController
import com.bintianqi.owndroid.R
import com.bintianqi.owndroid.Receiver
import com.bintianqi.owndroid.ui.*
import com.bintianqi.owndroid.ui.theme.bgColor
@Composable
fun Password(navCtrl: NavHostController){
@@ -78,7 +77,7 @@ fun Password(navCtrl: NavHostController){
exitTransition = Animations.navHostExitTransition,
popEnterTransition = Animations.navHostPopEnterTransition,
popExitTransition = Animations.navHostPopExitTransition,
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
modifier = Modifier.padding(top = it.calculateTopPadding())
){
composable(route = "Home"){Home(localNavCtrl,scrollState)}
composable(route = "PasswordInfo"){PasswordInfo()}

View File

@@ -36,7 +36,6 @@ import androidx.navigation.compose.rememberNavController
import com.bintianqi.owndroid.R
import com.bintianqi.owndroid.Receiver
import com.bintianqi.owndroid.ui.*
import com.bintianqi.owndroid.ui.theme.bgColor
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
@@ -82,7 +81,7 @@ fun DpmPermissions(navCtrl:NavHostController){
exitTransition = Animations.navHostExitTransition,
popEnterTransition = Animations.navHostPopEnterTransition,
popExitTransition = Animations.navHostPopExitTransition,
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
modifier = Modifier.padding(top = it.calculateTopPadding())
){
composable(route = "Home"){Home(localNavCtrl,scrollState)}
composable(route = "Shizuku"){ShizukuActivate()}

View File

@@ -44,7 +44,6 @@ import androidx.navigation.compose.rememberNavController
import com.bintianqi.owndroid.*
import com.bintianqi.owndroid.R
import com.bintianqi.owndroid.ui.*
import com.bintianqi.owndroid.ui.theme.bgColor
import kotlinx.coroutines.delay
import java.util.Date
@@ -91,7 +90,7 @@ fun SystemManage(navCtrl:NavHostController){
exitTransition = Animations.navHostExitTransition,
popEnterTransition = Animations.navHostPopEnterTransition,
popExitTransition = Animations.navHostPopExitTransition,
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
modifier = Modifier.padding(top = it.calculateTopPadding())
){
composable(route = "Home"){Home(localNavCtrl,scrollState)}
composable(route = "Switches"){Switches()}
@@ -610,6 +609,7 @@ private fun CaCert(){
}
exist = myDpm.hasCaCertInstalled(myComponent, caCertByteArray)
}
uriPath = fileUri?.path?:""
}
}
LaunchedEffect(exist){ while(true){ refresh();delay(500) } }

View File

@@ -43,7 +43,6 @@ import androidx.navigation.compose.rememberNavController
import com.bintianqi.owndroid.*
import com.bintianqi.owndroid.R
import com.bintianqi.owndroid.ui.*
import com.bintianqi.owndroid.ui.theme.bgColor
import kotlinx.coroutines.delay
var affiliationID = mutableSetOf<String>()
@@ -84,7 +83,7 @@ fun UserManage(navCtrl:NavHostController) {
exitTransition = Animations.navHostExitTransition,
popEnterTransition = Animations.navHostPopEnterTransition,
popExitTransition = Animations.navHostPopExitTransition,
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
modifier = Modifier.padding(top = it.calculateTopPadding())
){
composable(route = "Home"){Home(localNavCtrl,scrollState)}
composable(route = "UserInfo"){CurrentUserInfo()}

View File

@@ -11,7 +11,6 @@ import androidx.activity.ComponentActivity
import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
import androidx.compose.foundation.ScrollState
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
@@ -39,7 +38,6 @@ import com.bintianqi.owndroid.ui.Animations
import com.bintianqi.owndroid.ui.SubPageItem
import com.bintianqi.owndroid.ui.SwitchItem
import com.bintianqi.owndroid.ui.TopBar
import com.bintianqi.owndroid.ui.theme.bgColor
private data class Restriction(
val restriction:String,
@@ -84,7 +82,7 @@ fun UserRestriction(navCtrl: NavHostController){
exitTransition = Animations.navHostExitTransition,
popEnterTransition = Animations.navHostPopEnterTransition,
popExitTransition = Animations.navHostPopExitTransition,
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
modifier = Modifier.padding(top = it.calculateTopPadding())
){
composable(route = "Internet"){Internet()}
composable(route = "Home"){Home(localNavCtrl,scrollState)}

View File

@@ -5,9 +5,7 @@ import android.widget.Toast
import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
import androidx.compose.animation.animateContentSize
import androidx.compose.foundation.LocalIndication
import androidx.compose.foundation.clickable
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.*
@@ -25,7 +23,6 @@ import androidx.compose.ui.unit.dp
import androidx.navigation.NavBackStackEntry
import androidx.navigation.NavHostController
import com.bintianqi.owndroid.R
import com.bintianqi.owndroid.ui.theme.bgColor
import com.bintianqi.owndroid.writeClipBoard
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
@@ -173,8 +170,12 @@ fun TopBar(
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)
navigationIcon = {
NavIcon{
if(backStackEntry?.destination?.route=="Home"){ navCtrl.navigateUp() }else{ localNavCtrl.navigateUp() }
}
},
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.background)
)
}

View File

@@ -2,11 +2,9 @@ package com.bintianqi.owndroid.ui.theme
import android.app.Activity
import android.content.Context
import android.os.Build
import android.os.Build.VERSION
import androidx.compose.foundation.isSystemInDarkTheme
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
@@ -79,41 +77,31 @@ 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 OwnDroidTheme(
darkTheme: Boolean = isSystemInDarkTheme(),
materialYou: Boolean,
blackTheme: Boolean,
content: @Composable () -> Unit
) {
SetDarkTheme()
val darkTheme = isSystemInDarkTheme()
val context = LocalContext.current
val sharedPref = context.getSharedPreferences("data", Context.MODE_PRIVATE)
if(!sharedPref.contains("dynamicColor")&&VERSION.SDK_INT>=32){
sharedPref.edit().putBoolean("dynamicColor",true).apply()
}
val dynamicColor = sharedPref.getBoolean("dynamicColor",false)
val colorScheme = when {
dynamicColor && VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
var colorScheme = when {
materialYou && VERSION.SDK_INT>=31 -> {
if(darkTheme){ dynamicDarkColorScheme(context) }else{ dynamicLightColorScheme(context) }
}
darkTheme -> DarkColorScheme
else -> LightColorScheme
}
if(darkTheme&&blackTheme){
colorScheme = colorScheme.copy(background = Color.Black)
}
if(!darkTheme){
colorScheme = colorScheme.copy(background = colorScheme.primary.copy(alpha = 0.05f))
}
val view = LocalView.current
SideEffect {
val window = (view.context as Activity).window

View File

@@ -472,15 +472,14 @@
<!--Settings&About-->
<string name="setting">设置</string>
<string name="dynamic_color">动态取</string>
<string name="material_you_color">Material you 颜</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="amoled_black">纯黑夜间主题</string>
<string name="blackTheme_desc">需要打开夜间模式</string>
<string name="need_relaunch">需要重启应用</string>
<!--AndroidPermission-->
<string name="permission_READ_EXTERNAL_STORAGE">读取外部存储</string>

View File

@@ -487,15 +487,14 @@
<!--Settings&About-->
<string name="setting">Settings</string>
<string name="dynamic_color">Dynamic color</string>
<string name="material_you_color">Material you color</string>
<string name="dynamic_color_desc">Android 12+</string>
<string name="about">About</string>
<string name="about_desc">Use Device admin, Profile owner and Device owner privilege to take full control of your device. </string>
<string name="user_guide">User guide</string>
<string name="source_code">Source code</string>
<string name="blackTheme">Black theme</string>
<string name="amoled_black">Black theme</string>
<string name="blackTheme_desc">Require dark mode on</string>
<string name="need_relaunch">Require restart this app</string>
<!--AndroidPermission-->
<string name="permission_READ_EXTERNAL_STORAGE">Read external storage</string>