From 3fabd81511764b0526e0183e9eee996d7155a657 Mon Sep 17 00:00:00 2001 From: BinTianqi <1220958406@qq.com> Date: Tue, 2 Apr 2024 17:15:56 +0800 Subject: [PATCH] UI improvement --- .../com/binbin/androidowner/MainActivity.kt | 6 +++--- .../java/com/binbin/androidowner/Setting.kt | 3 ++- .../java/com/binbin/androidowner/dpm/Network.kt | 2 +- .../com/binbin/androidowner/dpm/Password.kt | 2 +- .../com/binbin/androidowner/dpm/Permissions.kt | 17 +++++++++-------- .../binbin/androidowner/dpm/ShizukuActivate.kt | 12 ++++++------ .../com/binbin/androidowner/dpm/SystemManage.kt | 2 +- .../com/binbin/androidowner/dpm/UserManage.kt | 2 +- .../binbin/androidowner/dpm/UserRestriction.kt | 2 +- .../com/binbin/androidowner/ui/Animations.kt | 4 ++-- 10 files changed, 27 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/com/binbin/androidowner/MainActivity.kt b/app/src/main/java/com/binbin/androidowner/MainActivity.kt index de575bc..a0d106e 100644 --- a/app/src/main/java/com/binbin/androidowner/MainActivity.kt +++ b/app/src/main/java/com/binbin/androidowner/MainActivity.kt @@ -144,16 +144,16 @@ private fun HomePage(navCtrl:NavHostController){ .padding(vertical = 16.dp), verticalAlignment = Alignment.CenterVertically ) { - Spacer(modifier = Modifier.fillMaxWidth(0.06F)) + Spacer(modifier = Modifier.padding(start = 22.dp)) Icon( painter = painterResource(if(myDpm.isAdminActive(myComponent)){ R.drawable.check_circle_fill1 }else{ R.drawable.block_fill0 }), contentDescription = null, tint = colorScheme.onPrimary ) - Spacer(modifier = Modifier.fillMaxWidth(0.05F)) + Spacer(modifier = Modifier.padding(start = 10.dp)) Column { Text( - text = if(myDpm.isAdminActive(myComponent)){"已激活"}else{"未激活"}, + text = stringResource(if(myDpm.isAdminActive(myComponent)){R.string.activated}else{R.string.deactivated}), style = typography.headlineSmall, color = colorScheme.onPrimary, modifier = Modifier.padding(bottom = 2.dp) diff --git a/app/src/main/java/com/binbin/androidowner/Setting.kt b/app/src/main/java/com/binbin/androidowner/Setting.kt index 054683d..49cf1a5 100644 --- a/app/src/main/java/com/binbin/androidowner/Setting.kt +++ b/app/src/main/java/com/binbin/androidowner/Setting.kt @@ -18,6 +18,7 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment 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.painterResource import androidx.compose.ui.res.stringResource @@ -80,7 +81,7 @@ private fun Settings(){ R.string.dynamic_color, stringResource(R.string.dynamic_color_desc),null, {sharedPref.getBoolean("dynamicColor",false)},{sharedPref.edit().putBoolean("dynamicColor",it).apply()} ) - if(colorScheme.background!=Color(0xFF000000)){ + 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()} diff --git a/app/src/main/java/com/binbin/androidowner/dpm/Network.kt b/app/src/main/java/com/binbin/androidowner/dpm/Network.kt index 06b7ebe..57f512f 100644 --- a/app/src/main/java/com/binbin/androidowner/dpm/Network.kt +++ b/app/src/main/java/com/binbin/androidowner/dpm/Network.kt @@ -69,7 +69,7 @@ fun Network(navCtrl: NavHostController){ colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant) )*/ TopBar(backStackEntry,navCtrl,localNavCtrl){ - if(backStackEntry?.destination?.route=="Home"){ + if(backStackEntry?.destination?.route=="Home"&&scrollState.maxValue>80){ Text( text = stringResource(R.string.network), modifier = Modifier.alpha((maxOf(scrollState.value-30,0)).toFloat()/80) diff --git a/app/src/main/java/com/binbin/androidowner/dpm/Password.kt b/app/src/main/java/com/binbin/androidowner/dpm/Password.kt index b97733a..b353305 100644 --- a/app/src/main/java/com/binbin/androidowner/dpm/Password.kt +++ b/app/src/main/java/com/binbin/androidowner/dpm/Password.kt @@ -62,7 +62,7 @@ fun Password(navCtrl: NavHostController){ colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant) )*/ TopBar(backStackEntry,navCtrl,localNavCtrl){ - if(backStackEntry?.destination?.route=="Home"){ + if(backStackEntry?.destination?.route=="Home"&&scrollState.maxValue>80){ Text( text = stringResource(R.string.password_and_keyguard), modifier = Modifier.alpha((maxOf(scrollState.value-30,0)).toFloat()/80) diff --git a/app/src/main/java/com/binbin/androidowner/dpm/Permissions.kt b/app/src/main/java/com/binbin/androidowner/dpm/Permissions.kt index 18d6562..58de0f3 100644 --- a/app/src/main/java/com/binbin/androidowner/dpm/Permissions.kt +++ b/app/src/main/java/com/binbin/androidowner/dpm/Permissions.kt @@ -14,11 +14,9 @@ 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.Button +import androidx.compose.material3.* +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.draw.alpha @@ -68,7 +66,7 @@ fun DpmPermissions(navCtrl:NavHostController){ colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant) )*/ TopBar(backStackEntry,navCtrl,localNavCtrl){ - if(backStackEntry?.destination?.route=="Home"){ + if(backStackEntry?.destination?.route=="Home"&&scrollState.maxValue>80){ Text( text = stringResource(R.string.permission), modifier = Modifier.alpha((maxOf(scrollState.value-30,0)).toFloat()/80) @@ -201,7 +199,7 @@ private fun DeviceAdmin(navCtrl: NavHostController){ myDpm.removeActiveAdmin(myComponent) co.launch{ delay(600); if(!myDpm.isAdminActive(myComponent)){navCtrl.navigateUp()} } }, - modifier = Modifier.fillMaxWidth() + colors = ButtonDefaults.buttonColors(containerColor = colorScheme.error, contentColor = colorScheme.onError) ) { Text(stringResource(R.string.deactivate)) } @@ -232,7 +230,10 @@ private fun ProfileOwner(){ Text(stringResource(if(isProfileOwner(myDpm)){R.string.activated}else{R.string.deactivated}), style = typography.titleLarge) Spacer(Modifier.padding(vertical = 5.dp)) if(isProfileOwner(myDpm)&&VERSION.SDK_INT>=24){ - Button(onClick = {myDpm.clearProfileOwner(myComponent)}, modifier = Modifier.fillMaxWidth()) { + Button( + onClick = {myDpm.clearProfileOwner(myComponent)}, + colors = ButtonDefaults.buttonColors(containerColor = colorScheme.error, contentColor = colorScheme.onError) + ) { Text(stringResource(R.string.deactivate)) } } @@ -261,7 +262,7 @@ private fun DeviceOwner(navCtrl: NavHostController){ myDpm.clearDeviceOwnerApp(myContext.packageName) co.launch{ delay(600); if(!isDeviceOwner(myDpm)){navCtrl.navigateUp()} } }, - modifier = Modifier.fillMaxWidth() + colors = ButtonDefaults.buttonColors(containerColor = colorScheme.error, contentColor = colorScheme.onError) ) { Text(text = stringResource(R.string.deactivate)) } diff --git a/app/src/main/java/com/binbin/androidowner/dpm/ShizukuActivate.kt b/app/src/main/java/com/binbin/androidowner/dpm/ShizukuActivate.kt index 725f5ba..6eefe6e 100644 --- a/app/src/main/java/com/binbin/androidowner/dpm/ShizukuActivate.kt +++ b/app/src/main/java/com/binbin/androidowner/dpm/ShizukuActivate.kt @@ -111,8 +111,8 @@ fun ShizukuActivate(){ scrollState.animateScrollTo(scrollState.maxValue, scrollAnim()) outputTextScrollState.animateScrollTo(0, scrollAnim()) } - }, - modifier = Modifier.fillMaxWidth()) { + } + ) { Text(text = stringResource(R.string.activate_device_admin)) } } @@ -124,8 +124,8 @@ fun ShizukuActivate(){ scrollState.animateScrollTo(scrollState.maxValue, scrollAnim()) outputTextScrollState.animateScrollTo(0, scrollAnim()) } - }, - modifier = Modifier.fillMaxWidth()) { + } + ) { Text(text = stringResource(R.string.activate_profile_owner)) } @@ -136,8 +136,8 @@ fun ShizukuActivate(){ scrollState.animateScrollTo(scrollState.maxValue, scrollAnim()) outputTextScrollState.animateScrollTo(0, scrollAnim()) } - }, - modifier = Modifier.fillMaxWidth()) { + } + ) { Text(text = stringResource(R.string.activate_device_owner)) } diff --git a/app/src/main/java/com/binbin/androidowner/dpm/SystemManage.kt b/app/src/main/java/com/binbin/androidowner/dpm/SystemManage.kt index b3aad74..9b5fabf 100644 --- a/app/src/main/java/com/binbin/androidowner/dpm/SystemManage.kt +++ b/app/src/main/java/com/binbin/androidowner/dpm/SystemManage.kt @@ -76,7 +76,7 @@ fun SystemManage(navCtrl:NavHostController){ colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant) )*/ TopBar(backStackEntry,navCtrl,localNavCtrl){ - if(backStackEntry?.destination?.route=="Home"){ + if(backStackEntry?.destination?.route=="Home"&&scrollState.maxValue>80){ Text( text = stringResource(R.string.device_ctrl), modifier = Modifier.alpha((maxOf(scrollState.value-30,0)).toFloat()/80) diff --git a/app/src/main/java/com/binbin/androidowner/dpm/UserManage.kt b/app/src/main/java/com/binbin/androidowner/dpm/UserManage.kt index c9eb8c2..a18da00 100644 --- a/app/src/main/java/com/binbin/androidowner/dpm/UserManage.kt +++ b/app/src/main/java/com/binbin/androidowner/dpm/UserManage.kt @@ -67,7 +67,7 @@ fun UserManage(navCtrl:NavHostController) { colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant) )*/ TopBar(backStackEntry,navCtrl,localNavCtrl){ - if(backStackEntry?.destination?.route=="Home"){ + if(backStackEntry?.destination?.route=="Home"&&scrollState.maxValue>80){ Text( text = stringResource(R.string.user_manage), modifier = Modifier.alpha((maxOf(scrollState.value-30,0)).toFloat()/80) diff --git a/app/src/main/java/com/binbin/androidowner/dpm/UserRestriction.kt b/app/src/main/java/com/binbin/androidowner/dpm/UserRestriction.kt index e85e99e..9b13008 100644 --- a/app/src/main/java/com/binbin/androidowner/dpm/UserRestriction.kt +++ b/app/src/main/java/com/binbin/androidowner/dpm/UserRestriction.kt @@ -68,7 +68,7 @@ fun UserRestriction(navCtrl: NavHostController){ colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant) )*/ TopBar(backStackEntry,navCtrl,localNavCtrl){ - if(backStackEntry?.destination?.route=="Home"){ + if(backStackEntry?.destination?.route=="Home"&&scrollState.maxValue>80){ Text( text = stringResource(R.string.user_restrict), modifier = Modifier.alpha((maxOf(scrollState.value-30,0)).toFloat()/80) diff --git a/app/src/main/java/com/binbin/androidowner/ui/Animations.kt b/app/src/main/java/com/binbin/androidowner/ui/Animations.kt index cc3d80a..033b14f 100644 --- a/app/src/main/java/com/binbin/androidowner/ui/Animations.kt +++ b/app/src/main/java/com/binbin/androidowner/ui/Animations.kt @@ -17,8 +17,8 @@ class Animations{ val animateListSize:FiniteAnimationSpec = spring(stiffness = Spring.StiffnessMediumLow, visibilityThreshold = IntSize.VisibilityThreshold) private val screenWidth = displayMetrics.widthPixels - private val initialOffsetValue = screenWidth/8 - private val targetOffsetValue = screenWidth/8 + private val initialOffsetValue = screenWidth/10 + private val targetOffsetValue = screenWidth/10 val navHostEnterTransition: AnimatedContentTransitionScope.() -> EnterTransition = { fadeIn(animationSpec = fade) +