diff --git a/app/src/main/java/com/bintianqi/owndroid/MainActivity.kt b/app/src/main/java/com/bintianqi/owndroid/MainActivity.kt index 2451100..cd4c860 100644 --- a/app/src/main/java/com/bintianqi/owndroid/MainActivity.kt +++ b/app/src/main/java/com/bintianqi/owndroid/MainActivity.kt @@ -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, blackTheme:MutableState){ 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){ 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 diff --git a/app/src/main/java/com/bintianqi/owndroid/PermissionPicker.kt b/app/src/main/java/com/bintianqi/owndroid/PermissionPicker.kt index c46bc45..d98e11a 100644 --- a/app/src/main/java/com/bintianqi/owndroid/PermissionPicker.kt +++ b/app/src/main/java/com/bintianqi/owndroid/PermissionPicker.kt @@ -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( diff --git a/app/src/main/java/com/bintianqi/owndroid/PkgSelector.kt b/app/src/main/java/com/bintianqi/owndroid/PkgSelector.kt index 1ac002a..55d05cd 100644 --- a/app/src/main/java/com/bintianqi/owndroid/PkgSelector.kt +++ b/app/src/main/java/com/bintianqi/owndroid/PkgSelector.kt @@ -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 @@ -124,14 +124,14 @@ fun PackageSelector(navCtrl:NavHostController, pkgName: MutableState){ title = { Text(text = stringResource(R.string.pkg_selector)) }, - navigationIcon = {NavIcon{navCtrl.navigateUp()}}, - colors = TopAppBarDefaults.topAppBarColors(containerColor = bgColor) + navigationIcon = { NavIcon{navCtrl.navigateUp()} }, + 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){ diff --git a/app/src/main/java/com/bintianqi/owndroid/Setting.kt b/app/src/main/java/com/bintianqi/owndroid/Setting.kt index 4d7ab9f..eb59a9a 100644 --- a/app/src/main/java/com/bintianqi/owndroid/Setting.kt +++ b/app/src/main/java/com/bintianqi/owndroid/Setting.kt @@ -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, blackTheme: MutableState){ 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, blackTheme:MutableState){ 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()} - ) - if(colorScheme.background.toArgb()!=Color(0xFF000000).toArgb()){ + if(VERSION.SDK_INT>=31){ 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 + } + ) } } } diff --git a/app/src/main/java/com/bintianqi/owndroid/dpm/ApplicationManage.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/ApplicationManage.kt index 87f25e2..1b4076f 100644 --- a/app/src/main/java/com/bintianqi/owndroid/dpm/ApplicationManage.kt +++ b/app/src/main/java/com/bintianqi/owndroid/dpm/ApplicationManage.kt @@ -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, 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)} diff --git a/app/src/main/java/com/bintianqi/owndroid/dpm/ManagedProfile.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/ManagedProfile.kt index c367322..1173036 100644 --- a/app/src/main/java/com/bintianqi/owndroid/dpm/ManagedProfile.kt +++ b/app/src/main/java/com/bintianqi/owndroid/dpm/ManagedProfile.kt @@ -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()} diff --git a/app/src/main/java/com/bintianqi/owndroid/dpm/Network.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/Network.kt index 2793314..bd4e6ca 100644 --- a/app/src/main/java/com/bintianqi/owndroid/dpm/Network.kt +++ b/app/src/main/java/com/bintianqi/owndroid/dpm/Network.kt @@ -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() @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()} diff --git a/app/src/main/java/com/bintianqi/owndroid/dpm/Password.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/Password.kt index 5e6de4a..dbb879a 100644 --- a/app/src/main/java/com/bintianqi/owndroid/dpm/Password.kt +++ b/app/src/main/java/com/bintianqi/owndroid/dpm/Password.kt @@ -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()} diff --git a/app/src/main/java/com/bintianqi/owndroid/dpm/Permissions.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/Permissions.kt index af2764b..2b00ba9 100644 --- a/app/src/main/java/com/bintianqi/owndroid/dpm/Permissions.kt +++ b/app/src/main/java/com/bintianqi/owndroid/dpm/Permissions.kt @@ -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()} diff --git a/app/src/main/java/com/bintianqi/owndroid/dpm/SystemManager.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/SystemManager.kt index 3ebf4d5..43bcfe6 100644 --- a/app/src/main/java/com/bintianqi/owndroid/dpm/SystemManager.kt +++ b/app/src/main/java/com/bintianqi/owndroid/dpm/SystemManager.kt @@ -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) } } diff --git a/app/src/main/java/com/bintianqi/owndroid/dpm/UserManager.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/UserManager.kt index 78e731a..4b33d84 100644 --- a/app/src/main/java/com/bintianqi/owndroid/dpm/UserManager.kt +++ b/app/src/main/java/com/bintianqi/owndroid/dpm/UserManager.kt @@ -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() @@ -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()} diff --git a/app/src/main/java/com/bintianqi/owndroid/dpm/UserRestriction.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/UserRestriction.kt index aadeff6..67095d4 100644 --- a/app/src/main/java/com/bintianqi/owndroid/dpm/UserRestriction.kt +++ b/app/src/main/java/com/bintianqi/owndroid/dpm/UserRestriction.kt @@ -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)} diff --git a/app/src/main/java/com/bintianqi/owndroid/ui/Components.kt b/app/src/main/java/com/bintianqi/owndroid/ui/Components.kt index ea8725a..a84bf68 100644 --- a/app/src/main/java/com/bintianqi/owndroid/ui/Components.kt +++ b/app/src/main/java/com/bintianqi/owndroid/ui/Components.kt @@ -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) ) } diff --git a/app/src/main/java/com/bintianqi/owndroid/ui/theme/Theme.kt b/app/src/main/java/com/bintianqi/owndroid/ui/theme/Theme.kt index 0001630..d76b6c1 100644 --- a/app/src/main/java/com/bintianqi/owndroid/ui/theme/Theme.kt +++ b/app/src/main/java/com/bintianqi/owndroid/ui/theme/Theme.kt @@ -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 diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 8fdb8d5..bb31a11 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -472,15 +472,14 @@ 设置 - 动态取色 + Material you 颜色 安卓12+ 关于 使用安卓的Device admin、Device owner、Profile owner,全方位掌控你的设备 使用教程 源代码 - 纯黑夜间主题 + 纯黑夜间主题 需要打开夜间模式 - 需要重启应用 读取外部存储 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1a14ea0..df0a295 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -487,15 +487,14 @@ Settings - Dynamic color + Material you color Android 12+ About Use Device admin, Profile owner and Device owner privilege to take full control of your device. User guide Source code - Black theme + Black theme Require dark mode on - Require restart this app Read external storage