mirror of
https://github.com/awfixers-stuff/OwnDroid.git
synced 2026-03-23 11:05:59 +00:00
show label on topbar
This commit is contained in:
@@ -11,8 +11,8 @@ android {
|
|||||||
applicationId = "com.binbin.androidowner"
|
applicationId = "com.binbin.androidowner"
|
||||||
minSdk = 21
|
minSdk = 21
|
||||||
targetSdk = 34
|
targetSdk = 34
|
||||||
versionCode = 20
|
versionCode = 21
|
||||||
versionName = "4.3"
|
versionName = "4.4"
|
||||||
|
|
||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
vectorDrawables {
|
vectorDrawables {
|
||||||
|
|||||||
@@ -192,13 +192,13 @@ fun HomePageItem(name:Int, imgVector:Int, navTo:String, myNav:NavHostController)
|
|||||||
.padding(vertical = 13.dp),
|
.padding(vertical = 13.dp),
|
||||||
verticalAlignment = Alignment.CenterVertically
|
verticalAlignment = Alignment.CenterVertically
|
||||||
) {
|
) {
|
||||||
Spacer(modifier = Modifier.fillMaxWidth(0.08F))
|
Spacer(Modifier.padding(start = 30.dp))
|
||||||
Icon(
|
Icon(
|
||||||
painter = painterResource(imgVector),
|
painter = painterResource(imgVector),
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
tint = colorScheme.onBackground
|
tint = colorScheme.onBackground
|
||||||
)
|
)
|
||||||
Spacer(modifier = Modifier.fillMaxWidth(0.05F))
|
Spacer(Modifier.padding(start = 15.dp))
|
||||||
Column {
|
Column {
|
||||||
Text(
|
Text(
|
||||||
text = stringResource(name),
|
text = stringResource(name),
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import androidx.compose.material3.MaterialTheme.typography
|
|||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.draw.alpha
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.platform.LocalFocusManager
|
import androidx.compose.ui.platform.LocalFocusManager
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
@@ -50,6 +51,7 @@ var ssidSet = mutableSetOf<WifiSsid>()
|
|||||||
fun Network(navCtrl: NavHostController){
|
fun Network(navCtrl: NavHostController){
|
||||||
val localNavCtrl = rememberNavController()
|
val localNavCtrl = rememberNavController()
|
||||||
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
|
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
|
||||||
|
val scrollState = rememberScrollState()
|
||||||
/*val titleMap = mapOf(
|
/*val titleMap = mapOf(
|
||||||
"Home" to R.string.network,
|
"Home" to R.string.network,
|
||||||
"MinWifiSecurityLevel" to R.string.min_wifi_security_level,
|
"MinWifiSecurityLevel" to R.string.min_wifi_security_level,
|
||||||
@@ -66,7 +68,14 @@ fun Network(navCtrl: NavHostController){
|
|||||||
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
||||||
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
||||||
)*/
|
)*/
|
||||||
TopBar(backStackEntry, navCtrl, localNavCtrl)
|
TopBar(backStackEntry,navCtrl,localNavCtrl){
|
||||||
|
if(backStackEntry?.destination?.route=="Home"){
|
||||||
|
Text(
|
||||||
|
text = stringResource(R.string.network),
|
||||||
|
modifier = Modifier.alpha((maxOf(scrollState.value-30,0)).toFloat()/80)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
){
|
){
|
||||||
NavHost(
|
NavHost(
|
||||||
@@ -77,7 +86,7 @@ fun Network(navCtrl: NavHostController){
|
|||||||
popExitTransition = Animations().navHostPopExitTransition,
|
popExitTransition = Animations().navHostPopExitTransition,
|
||||||
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
|
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
|
||||||
){
|
){
|
||||||
composable(route = "Home"){Home(localNavCtrl)}
|
composable(route = "Home"){Home(localNavCtrl,scrollState)}
|
||||||
composable(route = "Switches"){Switches()}
|
composable(route = "Switches"){Switches()}
|
||||||
composable(route = "MinWifiSecurityLevel"){WifiSecLevel()}
|
composable(route = "MinWifiSecurityLevel"){WifiSecLevel()}
|
||||||
composable(route = "WifiSsidPolicy"){WifiSsidPolicy()}
|
composable(route = "WifiSsidPolicy"){WifiSsidPolicy()}
|
||||||
@@ -90,11 +99,11 @@ fun Network(navCtrl: NavHostController){
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun Home(navCtrl:NavHostController){
|
private fun Home(navCtrl:NavHostController,scrollState: ScrollState){
|
||||||
val myContext = LocalContext.current
|
val myContext = LocalContext.current
|
||||||
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
|
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
|
||||||
val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
|
val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
|
||||||
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState())){
|
Column(modifier = Modifier.fillMaxSize().verticalScroll(scrollState)){
|
||||||
Text(text = stringResource(R.string.network), style = typography.headlineLarge, modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.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&&isDeviceOwner(myDpm)){
|
if(VERSION.SDK_INT>=24&&isDeviceOwner(myDpm)){
|
||||||
val wifimac = myDpm.getWifiMacAddress(myComponent)
|
val wifimac = myDpm.getWifiMacAddress(myComponent)
|
||||||
|
|||||||
@@ -11,18 +11,16 @@ import android.os.Build.VERSION
|
|||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.activity.ComponentActivity
|
import androidx.activity.ComponentActivity
|
||||||
import androidx.compose.animation.AnimatedVisibility
|
import androidx.compose.animation.AnimatedVisibility
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.*
|
||||||
import androidx.compose.foundation.focusable
|
|
||||||
import androidx.compose.foundation.layout.*
|
import androidx.compose.foundation.layout.*
|
||||||
import androidx.compose.foundation.rememberScrollState
|
|
||||||
import androidx.compose.foundation.text.KeyboardActions
|
import androidx.compose.foundation.text.KeyboardActions
|
||||||
import androidx.compose.foundation.text.KeyboardOptions
|
import androidx.compose.foundation.text.KeyboardOptions
|
||||||
import androidx.compose.foundation.verticalScroll
|
|
||||||
import androidx.compose.material3.*
|
import androidx.compose.material3.*
|
||||||
import androidx.compose.material3.MaterialTheme.colorScheme
|
import androidx.compose.material3.MaterialTheme.colorScheme
|
||||||
import androidx.compose.material3.MaterialTheme.typography
|
import androidx.compose.material3.MaterialTheme.typography
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.draw.alpha
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.platform.LocalFocusManager
|
import androidx.compose.ui.platform.LocalFocusManager
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
@@ -43,6 +41,7 @@ import com.binbin.androidowner.ui.theme.bgColor
|
|||||||
fun Password(navCtrl: NavHostController){
|
fun Password(navCtrl: NavHostController){
|
||||||
val localNavCtrl = rememberNavController()
|
val localNavCtrl = rememberNavController()
|
||||||
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
|
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
|
||||||
|
val scrollState = rememberScrollState()
|
||||||
/*val titleMap = mapOf(
|
/*val titleMap = mapOf(
|
||||||
"ResetPasswordToken" to R.string.reset_password_token,
|
"ResetPasswordToken" to R.string.reset_password_token,
|
||||||
"PasswordInfo" to R.string.password_info,
|
"PasswordInfo" to R.string.password_info,
|
||||||
@@ -62,7 +61,14 @@ fun Password(navCtrl: NavHostController){
|
|||||||
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
||||||
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
||||||
)*/
|
)*/
|
||||||
TopBar(backStackEntry, navCtrl, localNavCtrl)
|
TopBar(backStackEntry,navCtrl,localNavCtrl){
|
||||||
|
if(backStackEntry?.destination?.route=="Home"){
|
||||||
|
Text(
|
||||||
|
text = stringResource(R.string.password_and_keyguard),
|
||||||
|
modifier = Modifier.alpha((maxOf(scrollState.value-30,0)).toFloat()/80)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
){
|
){
|
||||||
NavHost(
|
NavHost(
|
||||||
@@ -73,7 +79,7 @@ fun Password(navCtrl: NavHostController){
|
|||||||
popExitTransition = Animations().navHostPopExitTransition,
|
popExitTransition = Animations().navHostPopExitTransition,
|
||||||
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
|
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
|
||||||
){
|
){
|
||||||
composable(route = "Home"){Home(localNavCtrl)}
|
composable(route = "Home"){Home(localNavCtrl,scrollState)}
|
||||||
composable(route = "PasswordInfo"){PasswordInfo()}
|
composable(route = "PasswordInfo"){PasswordInfo()}
|
||||||
composable(route = "ResetPasswordToken"){ResetPasswordToken()}
|
composable(route = "ResetPasswordToken"){ResetPasswordToken()}
|
||||||
composable(route = "ResetPassword"){ResetPassword()}
|
composable(route = "ResetPassword"){ResetPassword()}
|
||||||
@@ -89,8 +95,8 @@ fun Password(navCtrl: NavHostController){
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun Home(navCtrl:NavHostController){
|
private fun Home(navCtrl:NavHostController,scrollState: ScrollState){
|
||||||
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState())){
|
Column(modifier = Modifier.fillMaxSize().verticalScroll(scrollState)){
|
||||||
Text(text = stringResource(R.string.password_and_keyguard), style = typography.headlineLarge, modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.dp))
|
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,"",R.drawable.info_fill0){navCtrl.navigate("PasswordInfo")}
|
SubPageItem(R.string.password_info,"",R.drawable.info_fill0){navCtrl.navigate("PasswordInfo")}
|
||||||
if(VERSION.SDK_INT>=26){
|
if(VERSION.SDK_INT>=26){
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import androidx.compose.material3.Scaffold
|
|||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.draw.alpha
|
||||||
import androidx.compose.ui.focus.FocusRequester
|
import androidx.compose.ui.focus.FocusRequester
|
||||||
import androidx.compose.ui.focus.focusRequester
|
import androidx.compose.ui.focus.focusRequester
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
@@ -47,6 +48,7 @@ import kotlinx.coroutines.launch
|
|||||||
fun DpmPermissions(navCtrl:NavHostController){
|
fun DpmPermissions(navCtrl:NavHostController){
|
||||||
val localNavCtrl = rememberNavController()
|
val localNavCtrl = rememberNavController()
|
||||||
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
|
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
|
||||||
|
val scrollState = rememberScrollState()
|
||||||
/*val titleMap = mapOf(
|
/*val titleMap = mapOf(
|
||||||
"Home" to R.string.permission,
|
"Home" to R.string.permission,
|
||||||
"Shizuku" to R.string.shizuku,
|
"Shizuku" to R.string.shizuku,
|
||||||
@@ -68,7 +70,14 @@ fun DpmPermissions(navCtrl:NavHostController){
|
|||||||
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
||||||
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
||||||
)*/
|
)*/
|
||||||
TopBar(backStackEntry,navCtrl,localNavCtrl)
|
TopBar(backStackEntry,navCtrl,localNavCtrl){
|
||||||
|
if(backStackEntry?.destination?.route=="Home"){
|
||||||
|
Text(
|
||||||
|
text = stringResource(R.string.permission),
|
||||||
|
modifier = Modifier.alpha((maxOf(scrollState.value-30,0)).toFloat()/80)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
){
|
){
|
||||||
NavHost(
|
NavHost(
|
||||||
@@ -79,7 +88,7 @@ fun DpmPermissions(navCtrl:NavHostController){
|
|||||||
popExitTransition = Animations().navHostPopExitTransition,
|
popExitTransition = Animations().navHostPopExitTransition,
|
||||||
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
|
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
|
||||||
){
|
){
|
||||||
composable(route = "Home"){Home(localNavCtrl)}
|
composable(route = "Home"){Home(localNavCtrl,scrollState)}
|
||||||
composable(route = "Shizuku"){ShizukuActivate()}
|
composable(route = "Shizuku"){ShizukuActivate()}
|
||||||
composable(route = "DeviceAdmin"){DeviceAdmin(navCtrl)}
|
composable(route = "DeviceAdmin"){DeviceAdmin(navCtrl)}
|
||||||
composable(route = "ProfileOwner"){ProfileOwner()}
|
composable(route = "ProfileOwner"){ProfileOwner()}
|
||||||
@@ -96,11 +105,11 @@ fun DpmPermissions(navCtrl:NavHostController){
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun Home(localNavCtrl:NavHostController){
|
private fun Home(localNavCtrl:NavHostController,listScrollState:ScrollState){
|
||||||
val myContext = LocalContext.current
|
val myContext = LocalContext.current
|
||||||
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
|
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
|
||||||
val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
|
val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
|
||||||
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState())) {
|
Column(modifier = Modifier.fillMaxSize().verticalScroll(listScrollState)) {
|
||||||
Text(text = stringResource(R.string.permission), style = typography.headlineLarge, modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.dp))
|
Text(text = stringResource(R.string.permission), style = typography.headlineLarge, modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.dp))
|
||||||
SubPageItem(
|
SubPageItem(
|
||||||
R.string.device_admin, stringResource(if(myDpm.isAdminActive(myComponent)){R.string.activated}else{R.string.deactivated}),
|
R.string.device_admin, stringResource(if(myDpm.isAdminActive(myComponent)){R.string.activated}else{R.string.deactivated}),
|
||||||
|
|||||||
@@ -19,19 +19,17 @@ import android.widget.Toast
|
|||||||
import androidx.activity.ComponentActivity
|
import androidx.activity.ComponentActivity
|
||||||
import androidx.compose.animation.AnimatedVisibility
|
import androidx.compose.animation.AnimatedVisibility
|
||||||
import androidx.compose.animation.animateContentSize
|
import androidx.compose.animation.animateContentSize
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.*
|
||||||
import androidx.compose.foundation.focusable
|
|
||||||
import androidx.compose.foundation.layout.*
|
import androidx.compose.foundation.layout.*
|
||||||
import androidx.compose.foundation.rememberScrollState
|
|
||||||
import androidx.compose.foundation.text.KeyboardActions
|
import androidx.compose.foundation.text.KeyboardActions
|
||||||
import androidx.compose.foundation.text.KeyboardOptions
|
import androidx.compose.foundation.text.KeyboardOptions
|
||||||
import androidx.compose.foundation.text.selection.SelectionContainer
|
import androidx.compose.foundation.text.selection.SelectionContainer
|
||||||
import androidx.compose.foundation.verticalScroll
|
|
||||||
import androidx.compose.material3.*
|
import androidx.compose.material3.*
|
||||||
import androidx.compose.material3.MaterialTheme.colorScheme
|
import androidx.compose.material3.MaterialTheme.colorScheme
|
||||||
import androidx.compose.material3.MaterialTheme.typography
|
import androidx.compose.material3.MaterialTheme.typography
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.draw.alpha
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.platform.LocalFocusManager
|
import androidx.compose.ui.platform.LocalFocusManager
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
@@ -54,6 +52,7 @@ import java.util.Date
|
|||||||
fun SystemManage(navCtrl:NavHostController){
|
fun SystemManage(navCtrl:NavHostController){
|
||||||
val localNavCtrl = rememberNavController()
|
val localNavCtrl = rememberNavController()
|
||||||
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
|
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
|
||||||
|
val scrollState = rememberScrollState()
|
||||||
/*val titleMap = mapOf(
|
/*val titleMap = mapOf(
|
||||||
"Switches" to R.string.options,
|
"Switches" to R.string.options,
|
||||||
"Keyguard" to R.string.keyguard,
|
"Keyguard" to R.string.keyguard,
|
||||||
@@ -76,7 +75,14 @@ fun SystemManage(navCtrl:NavHostController){
|
|||||||
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
||||||
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
||||||
)*/
|
)*/
|
||||||
TopBar(backStackEntry,navCtrl,localNavCtrl)
|
TopBar(backStackEntry,navCtrl,localNavCtrl){
|
||||||
|
if(backStackEntry?.destination?.route=="Home"){
|
||||||
|
Text(
|
||||||
|
text = stringResource(R.string.device_ctrl),
|
||||||
|
modifier = Modifier.alpha((maxOf(scrollState.value-30,0)).toFloat()/80)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
){
|
){
|
||||||
NavHost(
|
NavHost(
|
||||||
@@ -87,7 +93,7 @@ fun SystemManage(navCtrl:NavHostController){
|
|||||||
popExitTransition = Animations().navHostPopExitTransition,
|
popExitTransition = Animations().navHostPopExitTransition,
|
||||||
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
|
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
|
||||||
){
|
){
|
||||||
composable(route = "Home"){Home(localNavCtrl)}
|
composable(route = "Home"){Home(localNavCtrl,scrollState)}
|
||||||
composable(route = "Switches"){Switches()}
|
composable(route = "Switches"){Switches()}
|
||||||
composable(route = "Keyguard"){Keyguard()}
|
composable(route = "Keyguard"){Keyguard()}
|
||||||
composable(route = "BugReport"){BugReport()}
|
composable(route = "BugReport"){BugReport()}
|
||||||
@@ -106,10 +112,10 @@ fun SystemManage(navCtrl:NavHostController){
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun Home(navCtrl: NavHostController){
|
private fun Home(navCtrl: NavHostController,scrollState: ScrollState){
|
||||||
val myContext = LocalContext.current
|
val myContext = LocalContext.current
|
||||||
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
|
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
|
||||||
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState())){
|
Column(modifier = Modifier.fillMaxSize().verticalScroll(scrollState)){
|
||||||
Text(text = stringResource(R.string.device_ctrl), style = typography.headlineLarge, modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.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)){
|
if(isDeviceOwner(myDpm)||isProfileOwner(myDpm)){
|
||||||
SubPageItem(R.string.options,"",R.drawable.tune_fill0){navCtrl.navigate("Switches")}
|
SubPageItem(R.string.options,"",R.drawable.tune_fill0){navCtrl.navigate("Switches")}
|
||||||
|
|||||||
@@ -15,18 +15,16 @@ import android.provider.MediaStore
|
|||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.activity.ComponentActivity
|
import androidx.activity.ComponentActivity
|
||||||
import androidx.compose.animation.AnimatedVisibility
|
import androidx.compose.animation.AnimatedVisibility
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.*
|
||||||
import androidx.compose.foundation.focusable
|
|
||||||
import androidx.compose.foundation.layout.*
|
import androidx.compose.foundation.layout.*
|
||||||
import androidx.compose.foundation.rememberScrollState
|
|
||||||
import androidx.compose.foundation.text.KeyboardActions
|
import androidx.compose.foundation.text.KeyboardActions
|
||||||
import androidx.compose.foundation.text.KeyboardOptions
|
import androidx.compose.foundation.text.KeyboardOptions
|
||||||
import androidx.compose.foundation.text.selection.SelectionContainer
|
import androidx.compose.foundation.text.selection.SelectionContainer
|
||||||
import androidx.compose.foundation.verticalScroll
|
|
||||||
import androidx.compose.material3.*
|
import androidx.compose.material3.*
|
||||||
import androidx.compose.material3.MaterialTheme.typography
|
import androidx.compose.material3.MaterialTheme.typography
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.draw.alpha
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.platform.LocalFocusManager
|
import androidx.compose.ui.platform.LocalFocusManager
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
@@ -51,6 +49,7 @@ var affiliationID = mutableSetOf<String>()
|
|||||||
fun UserManage(navCtrl:NavHostController) {
|
fun UserManage(navCtrl:NavHostController) {
|
||||||
val localNavCtrl = rememberNavController()
|
val localNavCtrl = rememberNavController()
|
||||||
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
|
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
|
||||||
|
val scrollState = rememberScrollState()
|
||||||
/*val titleMap = mapOf(
|
/*val titleMap = mapOf(
|
||||||
"UserInfo" to R.string.user_info,
|
"UserInfo" to R.string.user_info,
|
||||||
"UserOperation" to R.string.user_operation,
|
"UserOperation" to R.string.user_operation,
|
||||||
@@ -67,7 +66,14 @@ fun UserManage(navCtrl:NavHostController) {
|
|||||||
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
||||||
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
||||||
)*/
|
)*/
|
||||||
TopBar(backStackEntry,navCtrl,localNavCtrl)
|
TopBar(backStackEntry,navCtrl,localNavCtrl){
|
||||||
|
if(backStackEntry?.destination?.route=="Home"){
|
||||||
|
Text(
|
||||||
|
text = stringResource(R.string.user_manage),
|
||||||
|
modifier = Modifier.alpha((maxOf(scrollState.value-30,0)).toFloat()/80)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
){
|
){
|
||||||
NavHost(
|
NavHost(
|
||||||
@@ -78,7 +84,7 @@ fun UserManage(navCtrl:NavHostController) {
|
|||||||
popExitTransition = Animations().navHostPopExitTransition,
|
popExitTransition = Animations().navHostPopExitTransition,
|
||||||
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
|
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
|
||||||
){
|
){
|
||||||
composable(route = "Home"){Home(localNavCtrl)}
|
composable(route = "Home"){Home(localNavCtrl,scrollState)}
|
||||||
composable(route = "UserInfo"){CurrentUserInfo()}
|
composable(route = "UserInfo"){CurrentUserInfo()}
|
||||||
composable(route = "UserOperation"){UserOperation()}
|
composable(route = "UserOperation"){UserOperation()}
|
||||||
composable(route = "CreateUser"){CreateUser()}
|
composable(route = "CreateUser"){CreateUser()}
|
||||||
@@ -91,10 +97,10 @@ fun UserManage(navCtrl:NavHostController) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun Home(navCtrl: NavHostController){
|
private fun Home(navCtrl: NavHostController,scrollState: ScrollState){
|
||||||
val myContext = LocalContext.current
|
val myContext = LocalContext.current
|
||||||
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
|
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
|
||||||
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState())){
|
Column(modifier = Modifier.fillMaxSize().verticalScroll(scrollState)){
|
||||||
Text(text = stringResource(R.string.user_manage), style = typography.headlineLarge, modifier = Modifier.padding(top = 8.dp, bottom = 5.dp, start = 15.dp))
|
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,"",R.drawable.person_fill0){navCtrl.navigate("UserInfo")}
|
SubPageItem(R.string.user_info,"",R.drawable.person_fill0){navCtrl.navigate("UserInfo")}
|
||||||
SubPageItem(R.string.user_operation,"",R.drawable.sync_alt_fill0){navCtrl.navigate("UserOperation")}
|
SubPageItem(R.string.user_operation,"",R.drawable.sync_alt_fill0){navCtrl.navigate("UserOperation")}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import android.widget.Toast
|
|||||||
import androidx.activity.ComponentActivity
|
import androidx.activity.ComponentActivity
|
||||||
import androidx.annotation.DrawableRes
|
import androidx.annotation.DrawableRes
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
|
import androidx.compose.foundation.ScrollState
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.Spacer
|
import androidx.compose.foundation.layout.Spacer
|
||||||
@@ -23,6 +24,7 @@ import androidx.compose.material3.Text
|
|||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.draw.alpha
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
@@ -49,6 +51,7 @@ private data class Restriction(
|
|||||||
fun UserRestriction(navCtrl: NavHostController){
|
fun UserRestriction(navCtrl: NavHostController){
|
||||||
val localNavCtrl = rememberNavController()
|
val localNavCtrl = rememberNavController()
|
||||||
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
|
val backStackEntry by localNavCtrl.currentBackStackEntryAsState()
|
||||||
|
val scrollState = rememberScrollState()
|
||||||
/*val titleMap = mapOf(
|
/*val titleMap = mapOf(
|
||||||
"Internet" to R.string.network_internet,
|
"Internet" to R.string.network_internet,
|
||||||
"Connectivity" to R.string.more_connectivity,
|
"Connectivity" to R.string.more_connectivity,
|
||||||
@@ -64,7 +67,14 @@ fun UserRestriction(navCtrl: NavHostController){
|
|||||||
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
navigationIcon = {NavIcon{if(backStackEntry?.destination?.route=="Home"){navCtrl.navigateUp()}else{localNavCtrl.navigateUp()}}},
|
||||||
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
colors = TopAppBarDefaults.topAppBarColors(containerColor = colorScheme.surfaceVariant)
|
||||||
)*/
|
)*/
|
||||||
TopBar(backStackEntry,navCtrl,localNavCtrl)
|
TopBar(backStackEntry,navCtrl,localNavCtrl){
|
||||||
|
if(backStackEntry?.destination?.route=="Home"){
|
||||||
|
Text(
|
||||||
|
text = stringResource(R.string.user_restrict),
|
||||||
|
modifier = Modifier.alpha((maxOf(scrollState.value-30,0)).toFloat()/80)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
){
|
){
|
||||||
NavHost(
|
NavHost(
|
||||||
@@ -76,7 +86,7 @@ fun UserRestriction(navCtrl: NavHostController){
|
|||||||
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
|
modifier = Modifier.background(bgColor).padding(top = it.calculateTopPadding())
|
||||||
){
|
){
|
||||||
composable(route = "Internet"){Internet()}
|
composable(route = "Internet"){Internet()}
|
||||||
composable(route = "Home"){Home(localNavCtrl)}
|
composable(route = "Home"){Home(localNavCtrl,scrollState)}
|
||||||
composable(route = "Connectivity"){Connectivity()}
|
composable(route = "Connectivity"){Connectivity()}
|
||||||
composable(route = "Applications"){Application()}
|
composable(route = "Applications"){Application()}
|
||||||
composable(route = "Users"){User()}
|
composable(route = "Users"){User()}
|
||||||
@@ -87,11 +97,11 @@ fun UserRestriction(navCtrl: NavHostController){
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun Home(navCtrl:NavHostController){
|
private fun Home(navCtrl:NavHostController,scrollState: ScrollState){
|
||||||
val myContext = LocalContext.current
|
val myContext = LocalContext.current
|
||||||
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
|
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
|
||||||
val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
|
val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
|
||||||
Column(modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState())){
|
Column(modifier = Modifier.fillMaxSize().verticalScroll(scrollState)){
|
||||||
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.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))
|
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)){ Text(text = stringResource(R.string.profile_owner_is_restricted), modifier = Modifier.padding(start = 15.dp)) }
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ import androidx.compose.ui.unit.dp
|
|||||||
import androidx.navigation.NavBackStackEntry
|
import androidx.navigation.NavBackStackEntry
|
||||||
import androidx.navigation.NavHostController
|
import androidx.navigation.NavHostController
|
||||||
import com.binbin.androidowner.R
|
import com.binbin.androidowner.R
|
||||||
import com.binbin.androidowner.displayMetrics
|
|
||||||
import com.binbin.androidowner.ui.theme.bgColor
|
import com.binbin.androidowner.ui.theme.bgColor
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
@@ -35,11 +34,10 @@ fun SubPageItem(
|
|||||||
modifier = Modifier.fillMaxWidth().clickable(onClick = operation).padding(vertical = 15.dp),
|
modifier = Modifier.fillMaxWidth().clickable(onClick = operation).padding(vertical = 15.dp),
|
||||||
verticalAlignment = Alignment.CenterVertically
|
verticalAlignment = Alignment.CenterVertically
|
||||||
){
|
){
|
||||||
Spacer(Modifier.padding(start = (displayMetrics.widthPixels/20).dp))
|
Spacer(Modifier.padding(start = 30.dp))
|
||||||
if(icon!=null){
|
if(icon!=null){
|
||||||
Spacer(Modifier.padding(start = (displayMetrics.widthPixels/60).dp))
|
|
||||||
Icon(painter = painterResource(icon), contentDescription = stringResource(title), modifier = Modifier.padding(top = 1.dp))
|
Icon(painter = painterResource(icon), contentDescription = stringResource(title), modifier = Modifier.padding(top = 1.dp))
|
||||||
Spacer(Modifier.padding(start = (displayMetrics.widthPixels/30).dp))
|
Spacer(Modifier.padding(start = 15.dp))
|
||||||
}
|
}
|
||||||
Column {
|
Column {
|
||||||
Text(text = stringResource(title), style = typography.titleLarge, modifier = Modifier.padding(bottom = 1.dp))
|
Text(text = stringResource(title), style = typography.titleLarge, modifier = Modifier.padding(bottom = 1.dp))
|
||||||
@@ -131,11 +129,10 @@ fun SwitchItem(
|
|||||||
checked = getState()
|
checked = getState()
|
||||||
Box(modifier = Modifier.fillMaxWidth().padding(vertical = 5.dp)) {
|
Box(modifier = Modifier.fillMaxWidth().padding(vertical = 5.dp)) {
|
||||||
Row(verticalAlignment = Alignment.CenterVertically, modifier = Modifier.align(Alignment.CenterStart)){
|
Row(verticalAlignment = Alignment.CenterVertically, modifier = Modifier.align(Alignment.CenterStart)){
|
||||||
Spacer(Modifier.padding(start = (displayMetrics.widthPixels/20).dp))
|
Spacer(Modifier.padding(start = 30.dp))
|
||||||
if(icon!=null){
|
if(icon!=null){
|
||||||
Spacer(Modifier.padding(start = (displayMetrics.widthPixels/60).dp))
|
|
||||||
Icon(painter = painterResource(icon),contentDescription = null)
|
Icon(painter = painterResource(icon),contentDescription = null)
|
||||||
Spacer(Modifier.padding(start = (displayMetrics.widthPixels/30).dp))
|
Spacer(Modifier.padding(start = 15.dp))
|
||||||
}
|
}
|
||||||
Column(modifier = Modifier.padding(end = 60.dp)){
|
Column(modifier = Modifier.padding(end = 60.dp)){
|
||||||
Text(text = stringResource(title), style = typography.titleLarge)
|
Text(text = stringResource(title), style = typography.titleLarge)
|
||||||
|
|||||||
Reference in New Issue
Block a user