diff --git a/app/src/main/java/com/binbin/androidowner/ApplicationManage.kt b/app/src/main/java/com/binbin/androidowner/ApplicationManage.kt index 80bd6bd..ae33926 100644 --- a/app/src/main/java/com/binbin/androidowner/ApplicationManage.kt +++ b/app/src/main/java/com/binbin/androidowner/ApplicationManage.kt @@ -330,8 +330,9 @@ fun ApplicationManage(){ if(count>0) { listText += "\n" } } } - refreshList() - Text(text = listText, style = bodyTextStyle) + var inited by remember{mutableStateOf(false)} + if(!inited){refreshList(); inited=true} + Text(text = if(listText!=""){listText}else{"无"}, style = bodyTextStyle) Row(modifier = Modifier.fillMaxWidth(),horizontalArrangement = Arrangement.SpaceBetween){ Button( onClick = { @@ -372,8 +373,9 @@ fun ApplicationManage(){ imeListText = "" for(eachIme in imeList){ imeListText += "$eachIme \n" } } - refreshList() - Text(text = imeListText, style = bodyTextStyle) + var inited by remember{mutableStateOf(false)} + if(!inited){refreshList();inited=true} + Text(text = if(imeListText!=""){imeListText}else{"无"}, style = bodyTextStyle) Row(modifier = Modifier.fillMaxWidth(),horizontalArrangement = Arrangement.SpaceBetween){ Button( onClick = { diff --git a/app/src/main/java/com/binbin/androidowner/DeviceControl.kt b/app/src/main/java/com/binbin/androidowner/DeviceControl.kt index 34101cd..442707b 100644 --- a/app/src/main/java/com/binbin/androidowner/DeviceControl.kt +++ b/app/src/main/java/com/binbin/androidowner/DeviceControl.kt @@ -121,29 +121,50 @@ fun DeviceControl(){ Button( onClick = { Toast.makeText(myContext, if(myDpm.setKeyguardDisabled(myComponent,true)){"成功"}else{"失败"}, Toast.LENGTH_SHORT).show() }, enabled = isDeviceOwner(myDpm)|| (isProfileOwner(myDpm)&&myDpm.isAffiliatedUser), - modifier = if(isWear){Modifier}else{Modifier.fillMaxWidth(0.48F)} + modifier = if(isWear){Modifier}else{Modifier.fillMaxWidth(0.49F)} ) { Text("禁用") } Button( onClick = { Toast.makeText(myContext, if(myDpm.setKeyguardDisabled(myComponent,false)){"成功"}else{"失败"}, Toast.LENGTH_SHORT).show() }, enabled = isDeviceOwner(myDpm)|| (isProfileOwner(myDpm)&&myDpm.isAffiliatedUser), - modifier = if(isWear){Modifier}else{Modifier.fillMaxWidth(0.92F)} + modifier = if(isWear){Modifier}else{Modifier.fillMaxWidth(0.96F)} ) { Text("启用") } }} } - - Row(horizontalArrangement = Arrangement.SpaceBetween, modifier = sections()) { - if(VERSION.SDK_INT>=24){ - Button(onClick = {myDpm.reboot(myComponent)}, enabled = isDeviceOwner(myDpm), - modifier = if(isWear){Modifier}else{Modifier.fillMaxWidth(0.48F)}) { - Text("重启") + + Column(modifier = sections()){ + Text(text = "锁屏", style = typography.titleLarge) + var flag by remember{mutableIntStateOf(0)} + if(VERSION.SDK_INT>=26){ CheckBoxItem("需要重新输入密码",{flag==FLAG_EVICT_CREDENTIAL_ENCRYPTION_KEY},{flag = if(flag==0){1}else{0} }) } + Button( + onClick = {myDpm.lockNow()}, + enabled = myDpm.isAdminActive(myComponent), + modifier = Modifier.fillMaxWidth() + ) { + Text("立即锁屏") + } + } + + if(VERSION.SDK_INT>=24){ + Column(modifier = sections()){ + Button( + onClick = { + val result = myDpm.requestBugreport(myComponent) + Toast.makeText(myContext, if(result){"成功"}else{"失败"}, Toast.LENGTH_SHORT).show() + }, + modifier = Modifier.fillMaxWidth() + ) { + Text("请求错误报告") } - Button(onClick = {myDpm.lockNow()}, enabled = myDpm.isAdminActive(myComponent), - modifier = if(isWear){Modifier}else{Modifier.fillMaxWidth(0.92F)}) { - Text("锁屏") + Button( + onClick = {myDpm.reboot(myComponent)}, + enabled = isDeviceOwner(myDpm), + modifier = Modifier.fillMaxWidth() + ) { + Text("重启") } } } diff --git a/app/src/main/java/com/binbin/androidowner/MainActivity.kt b/app/src/main/java/com/binbin/androidowner/MainActivity.kt index e758119..f2e0007 100644 --- a/app/src/main/java/com/binbin/androidowner/MainActivity.kt +++ b/app/src/main/java/com/binbin/androidowner/MainActivity.kt @@ -7,6 +7,7 @@ import android.content.Context import android.content.Intent import android.os.Build.VERSION import android.os.Bundle +import android.os.UserManager import android.widget.Toast import androidx.activity.ComponentActivity import androidx.activity.compose.setContent @@ -43,6 +44,7 @@ import java.io.FileNotFoundException import java.io.IOException lateinit var getCaCert: ActivityResultLauncher +lateinit var createUser:ActivityResultLauncher var caCert = byteArrayOf() @ExperimentalMaterial3Api @@ -65,6 +67,13 @@ class MainActivity : ComponentActivity() { catch(e:IOException){ Toast.makeText(applicationContext, "IO异常", Toast.LENGTH_SHORT).show() } }else{ Toast.makeText(applicationContext, "空URI", Toast.LENGTH_SHORT).show() } } + createUser = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { + when(it.resultCode){ + UserManager.USER_CREATION_FAILED_NO_MORE_USERS->Toast.makeText(applicationContext, "用户太多了", Toast.LENGTH_SHORT).show(); + UserManager.USER_CREATION_FAILED_NOT_PERMITTED->Toast.makeText(applicationContext, "不是管理员用户", Toast.LENGTH_SHORT).show(); + else->Toast.makeText(applicationContext, "成功", Toast.LENGTH_SHORT).show() + } + } setContent { AndroidOwnerTheme { MyScaffold() diff --git a/app/src/main/java/com/binbin/androidowner/Network.kt b/app/src/main/java/com/binbin/androidowner/Network.kt index 0898fdb..763fa4c 100644 --- a/app/src/main/java/com/binbin/androidowner/Network.kt +++ b/app/src/main/java/com/binbin/androidowner/Network.kt @@ -10,7 +10,6 @@ import android.net.wifi.WifiSsid import android.os.Build.VERSION import android.telephony.TelephonyManager import android.telephony.TelephonyManager.UNKNOWN_CARRIER_ID -import android.telephony.data.ApnSetting import android.telephony.data.ApnSetting.* import android.widget.Toast import androidx.activity.ComponentActivity @@ -316,7 +315,7 @@ fun Network(){ var persistent by remember{mutableStateOf(false)} var protocol by remember{mutableIntStateOf(-1)} var roamingProtocol by remember{mutableIntStateOf(-1)} - var id by remember{mutableStateOf(0)} + var id by remember{mutableIntStateOf(0)} if(inputNum!="0"){ val current = setting[inputNum.toInt()-1] diff --git a/app/src/main/java/com/binbin/androidowner/Permissions.kt b/app/src/main/java/com/binbin/androidowner/Permissions.kt index a01184a..de9187a 100644 --- a/app/src/main/java/com/binbin/androidowner/Permissions.kt +++ b/app/src/main/java/com/binbin/androidowner/Permissions.kt @@ -269,36 +269,23 @@ fun DpmPermissions(navCtrl:NavHostController){ keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = {focusManager.clearFocus()}) ) - if(isWear){ - Button(onClick={focusManager.clearFocus() - myDpm.setAccountManagementDisabled(myComponent,inputText,true) - noManageAccount=myDpm.accountTypesWithManagementDisabled - refreshList() - },modifier = Modifier.fillMaxWidth()){ - Text("添加至列表") - } - Button(onClick={focusManager.clearFocus() - myDpm.setAccountManagementDisabled(myComponent,inputText,false) - noManageAccount=myDpm.accountTypesWithManagementDisabled - refreshList() - },modifier = Modifier.fillMaxWidth()){ - Text("从列表中移除") - }}else{ - Row(modifier = Modifier.fillMaxWidth(),horizontalArrangement = Arrangement.SpaceBetween){ - Button(onClick={focusManager.clearFocus() - myDpm.setAccountManagementDisabled(myComponent,inputText,true) - noManageAccount=myDpm.accountTypesWithManagementDisabled - refreshList() - },modifier = Modifier.fillMaxWidth(0.48f)){ - Text("添加至列表") - } - Button(onClick={focusManager.clearFocus() + Row(modifier = Modifier.fillMaxWidth(),horizontalArrangement = Arrangement.SpaceBetween){ + Button(onClick={focusManager.clearFocus() + myDpm.setAccountManagementDisabled(myComponent,inputText,true) + noManageAccount=myDpm.accountTypesWithManagementDisabled + refreshList() + },modifier = Modifier.fillMaxWidth(0.49f)){ + Text("列表") + } + Button( + onClick={focusManager.clearFocus() myDpm.setAccountManagementDisabled(myComponent,inputText,false) noManageAccount=myDpm.accountTypesWithManagementDisabled refreshList() - },modifier = Modifier.fillMaxWidth(0.92F)){ - Text("从列表中移除") - } + }, + modifier = Modifier.fillMaxWidth(0.96F) + ){ + Text("从列表中移除") } } } diff --git a/app/src/main/java/com/binbin/androidowner/SystemUpdatePolicy.kt b/app/src/main/java/com/binbin/androidowner/SystemUpdatePolicy.kt index c21545d..69d4b97 100644 --- a/app/src/main/java/com/binbin/androidowner/SystemUpdatePolicy.kt +++ b/app/src/main/java/com/binbin/androidowner/SystemUpdatePolicy.kt @@ -1,12 +1,10 @@ package com.binbin.androidowner import android.app.admin.DevicePolicyManager -import android.app.admin.DevicePolicyManager.InstallSystemUpdateCallback import android.app.admin.SystemUpdateInfo import android.app.admin.SystemUpdatePolicy import android.content.ComponentName import android.content.Context -import android.content.Intent import android.os.Build.VERSION import android.widget.Toast import androidx.activity.ComponentActivity @@ -26,7 +24,6 @@ import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import java.util.Date -import java.util.concurrent.Executors @Composable fun SysUpdatePolicy(){ diff --git a/app/src/main/java/com/binbin/androidowner/User.kt b/app/src/main/java/com/binbin/androidowner/User.kt index 2c0ab50..e315b57 100644 --- a/app/src/main/java/com/binbin/androidowner/User.kt +++ b/app/src/main/java/com/binbin/androidowner/User.kt @@ -10,13 +10,7 @@ import android.os.UserManager import android.widget.Toast import androidx.activity.ComponentActivity import androidx.compose.foundation.clickable -import androidx.compose.foundation.horizontalScroll -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.* import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.KeyboardActions @@ -28,12 +22,7 @@ import androidx.compose.material3.MaterialTheme.colorScheme import androidx.compose.material3.MaterialTheme.typography import androidx.compose.material3.Text import androidx.compose.material3.TextField -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableIntStateOf -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue +import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip @@ -144,7 +133,7 @@ fun UserManage(navCtrl:NavHostController){ } }, enabled = isDeviceOwner(myDpm)&&VERSION.SDK_INT>=28, - modifier = Modifier.fillMaxWidth(0.48F) + modifier = Modifier.fillMaxWidth(0.49F) ){ Text(if(isWear){"启动"}else{"在后台启动"}) } @@ -159,7 +148,7 @@ fun UserManage(navCtrl:NavHostController){ } }, enabled = isDeviceOwner(myDpm), - modifier = Modifier.fillMaxWidth(0.92F) + modifier = Modifier.fillMaxWidth(0.96F) ) { Text("切换") } @@ -178,7 +167,7 @@ fun UserManage(navCtrl:NavHostController){ } }, enabled = isDeviceOwner(myDpm)&&VERSION.SDK_INT>=28, - modifier = Modifier.fillMaxWidth(0.48F) + modifier = Modifier.fillMaxWidth(0.49F) ) { Text("停止") } @@ -193,7 +182,7 @@ fun UserManage(navCtrl:NavHostController){ } }, enabled = isDeviceOwner(myDpm), - modifier = Modifier.fillMaxWidth(0.92F) + modifier = Modifier.fillMaxWidth(0.96F) ) { Text("移除") } @@ -205,13 +194,10 @@ fun UserManage(navCtrl:NavHostController){ Column(modifier = sections()) { Text(text = "工作资料", style = typography.titleLarge) - Row( - modifier = if(isWear){ Modifier.fillMaxWidth().horizontalScroll(rememberScrollState())}else{Modifier.fillMaxWidth()}, - horizontalArrangement = Arrangement.SpaceBetween - ){ + Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween){ Button( onClick = { createWorkProfile(myContext)}, - modifier = Modifier.fillMaxWidth(0.48F) + modifier = Modifier.fillMaxWidth(0.49F) ) { Text("创建") } @@ -224,7 +210,7 @@ fun UserManage(navCtrl:NavHostController){ } }, enabled = isProfileOwner(myDpm)||isDeviceOwner(myDpm), - modifier = Modifier.fillMaxWidth(0.95F) + modifier = Modifier.fillMaxWidth(0.96F) ) { Text(text = "启用") } @@ -253,49 +239,29 @@ fun UserManage(navCtrl:NavHostController){ RadioButtonItem("启用所有系统应用",{selectedFlag==DevicePolicyManager.LEAVE_ALL_SYSTEM_APPS_ENABLED},{selectedFlag=DevicePolicyManager.LEAVE_ALL_SYSTEM_APPS_ENABLED}) } var newUserHandle: UserHandle? by remember{ mutableStateOf(null) } - Row( - modifier = if(isWear){ if(newUserHandle==null){Modifier.fillMaxWidth()}else{ - Modifier - .fillMaxWidth() - .horizontalScroll(rememberScrollState())} }else{Modifier.fillMaxWidth()}, - horizontalArrangement = Arrangement.SpaceBetween + Button( + onClick = { + newUserHandle=myDpm.createAndManageUser(myComponent,userName,myComponent,null,selectedFlag) + focusMgr.clearFocus() + Toast.makeText(myContext, if(newUserHandle!=null){"成功"}else{"失败"}, Toast.LENGTH_SHORT).show() + }, + enabled = isDeviceOwner(myDpm), + modifier = Modifier.fillMaxWidth() ) { - Button( - onClick = { - newUserHandle=myDpm.createAndManageUser(myComponent,userName,myComponent,null,selectedFlag) - focusMgr.clearFocus() - Toast.makeText(myContext, if(newUserHandle!=null){"成功"}else{"失败"}, Toast.LENGTH_SHORT).show() - }, - enabled = isDeviceOwner(myDpm), - modifier = if(isWear){ - if(newUserHandle==null){Modifier.fillMaxWidth()}else{Modifier} - }else{ - if(newUserHandle==null){Modifier.fillMaxWidth()}else{Modifier.fillMaxWidth(0.4F)} - } - ) { - Text("创建") - } - if(newUserHandle!=null){ - Spacer(Modifier.padding(horizontal = 4.dp)) - Button( - onClick = { - if(myDpm.switchUser(myComponent,newUserHandle)){ - Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show() - navCtrl.navigate("HomePage") - } else{ - Toast.makeText(myContext, "失败", Toast.LENGTH_SHORT).show() - } - }, - modifier = if(isWear){Modifier}else{Modifier.fillMaxWidth(0.97F)} - ) { - Text("切换至新用户") - } - } + Text("创建(Owner)") } + Button( + onClick = { + val intent = UserManager.createUserCreationIntent(userName,null,null,null) + createUser.launch(intent) + }, + modifier = Modifier.fillMaxWidth() + ) { + Text("创建(Intent)") + } + Text(text = "尽量用Device owner模式创建,Intent模式可能没有效果", style = bodyTextStyle) if(newUserHandle!=null){ Text(text = "新用户的序列号:${userManager.getSerialNumberForUser(newUserHandle)}", style = bodyTextStyle) } } - }else{ - Text(text = "创建用户需安卓7", style = bodyTextStyle) } UserSessionMessage("用户名","用户名",true,myDpm,myContext,{null},{msg -> myDpm.setProfileName(myComponent, msg.toString())}) if(VERSION.SDK_INT>=28){ diff --git a/app/src/main/java/com/binbin/androidowner/UserRestrict.kt b/app/src/main/java/com/binbin/androidowner/UserRestrict.kt index 19ae2f6..1c7e422 100644 --- a/app/src/main/java/com/binbin/androidowner/UserRestrict.kt +++ b/app/src/main/java/com/binbin/androidowner/UserRestrict.kt @@ -9,12 +9,13 @@ import android.widget.Toast import androidx.activity.ComponentActivity import androidx.annotation.DrawableRes import androidx.annotation.StringRes +import androidx.compose.animation.AnimatedVisibility import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme.colorScheme import androidx.compose.material3.MaterialTheme.typography @@ -38,7 +39,6 @@ private data class Restriction( @DrawableRes val ico:Int ) - @Composable fun UserRestriction(){ val myContext = LocalContext.current @@ -52,75 +52,66 @@ fun UserRestriction(){ val sharedPref = LocalContext.current.getSharedPreferences("data", Context.MODE_PRIVATE) val isWear = sharedPref.getBoolean("isWear",false) val bodyTextStyle = if(isWear){typography.bodyMedium}else{typography.bodyLarge} - LazyColumn(horizontalAlignment = Alignment.CenterHorizontally){ - items(1){ - Text(text = "打开开关后会禁用对应的功能",modifier = Modifier.padding(3.dp), style = bodyTextStyle) - if(VERSION.SDK_INT<24){ - Text(text = "所有的用户限制都需要API24,你的设备低于API24,无法使用。", style = bodyTextStyle, color = colorScheme.error) - } - if(isProfileOwner(myDpm)){ - Text(text = "Profile owner无法使用部分功能", style = bodyTextStyle) - } - if(isWear){ - Text(text = "部分功能在手表上无效", style = typography.bodyMedium) + Column(modifier = Modifier.verticalScroll(rememberScrollState()), horizontalAlignment = Alignment.CenterHorizontally){ + Text(text = "打开开关后会禁用对应的功能",modifier = Modifier.padding(3.dp), style = bodyTextStyle) + if(VERSION.SDK_INT<24){ + Text(text = "所有的用户限制都需要API24,你的设备低于API24,无法使用。", style = bodyTextStyle, color = colorScheme.error) + } + if(isProfileOwner(myDpm)){ + Text(text = "Profile owner无法使用部分功能", style = bodyTextStyle) + } + if(isWear){ + Text(text = "部分功能在手表上无效", style = typography.bodyMedium) + } + SectionTab("网络和互联网",{internetVisible}, { internetVisible=!internetVisible}) + AnimatedVisibility(internetVisible) { + Column { + for(internetItem in RestrictionData().internet()){ + UserRestrictionItem(internetItem.restriction,internetItem.name,internetItem.desc,internetItem.ico) + } } } - - items(1){ SectionTab("网络和互联网",{internetVisible}, { internetVisible=!internetVisible}) } - items(RestrictionData().internet()){data-> - if(internetVisible){ - UserRestrictionItem(data.restriction,data.name,data.desc,data.ico) + SectionTab("更多连接",{connectivityVisible}) { connectivityVisible=!connectivityVisible } + AnimatedVisibility(connectivityVisible) { + Column { + for(connectivityItem in RestrictionData().connectivity()){ + UserRestrictionItem(connectivityItem.restriction,connectivityItem.name,connectivityItem.desc,connectivityItem.ico) + } } } - - items(1){ SectionTab("更多连接",{connectivityVisible}) { connectivityVisible=!connectivityVisible } } - items(RestrictionData().connectivity()){data-> - if(connectivityVisible){ - UserRestrictionItem(data.restriction,data.name,data.desc,data.ico) + SectionTab("应用",{applicationVisible}) { applicationVisible=!applicationVisible } + AnimatedVisibility(applicationVisible) { + Column { + for(applicationItem in RestrictionData().application()){ + UserRestrictionItem(applicationItem.restriction,applicationItem.name,applicationItem.desc,applicationItem.ico) + } } } - - items(1){ SectionTab("应用",{applicationVisible}) { applicationVisible=!applicationVisible } } - items(RestrictionData().application()){data-> - if(applicationVisible){ - UserRestrictionItem(data.restriction,data.name,data.desc,data.ico) + SectionTab("用户",{userVisible}) { userVisible=!userVisible } + AnimatedVisibility(userVisible) { + Column { + for(userItem in RestrictionData().user()){ + UserRestrictionItem(userItem.restriction,userItem.name,userItem.desc,userItem.ico) + } } } - - items(1){ SectionTab("用户",{userVisible}) { userVisible=!userVisible } } - items(RestrictionData().user()){data-> - if(userVisible){ - UserRestrictionItem(data.restriction,data.name,data.desc,data.ico) + SectionTab("媒体",{mediaVisible}) { mediaVisible=!mediaVisible } + AnimatedVisibility(mediaVisible) { + Column { + for(mediaItem in RestrictionData().media()){ + UserRestrictionItem(mediaItem.restriction,mediaItem.name,mediaItem.desc,mediaItem.ico) + } } } - - items(1){ SectionTab("媒体",{mediaVisible}) { mediaVisible=!mediaVisible } } - items(RestrictionData().media()){data-> - if(mediaVisible){ - UserRestrictionItem(data.restriction,data.name,data.desc,data.ico) + SectionTab("其他",{otherVisible}) { otherVisible=!otherVisible } + AnimatedVisibility(otherVisible) { + Column { + for(otherItem in RestrictionData().other()){ + UserRestrictionItem(otherItem.restriction,otherItem.name,otherItem.desc,otherItem.ico) + } } } - - items(1){ SectionTab("其他",{otherVisible}) { otherVisible=!otherVisible } } - items(RestrictionData().other()){data-> - if(otherVisible){ - UserRestrictionItem(data.restriction,data.name,data.desc,data.ico) - } - } - - items(1){ - Spacer(Modifier.padding(vertical = 5.dp)) - Column(modifier = Modifier.padding(horizontal = if(!isWear){10.dp}else{3.dp})) { - if(VERSION.SDK_INT<24){ Text(text = "以下功能需要安卓7或以上:数据漫游、修改用户头像、更换壁纸", style = bodyTextStyle) } - if(VERSION.SDK_INT<26){ Text(text = "以下功能需要安卓8或以上:蓝牙、自动填充服务、添加/移除工作资料", style = bodyTextStyle) } - if(VERSION.SDK_INT<28){ Text(text = "以下功能需要安卓9或以上:飞行模式、位置信息、调整亮度、修改语言、修改日期时间、修改屏幕超时、打印、分享至工作应用、切换用户", style = bodyTextStyle) } - if(VERSION.SDK_INT<29){ Text(text = "以下功能需要安卓10或以上:配置私人DNS、内容捕获、内容建议", style = bodyTextStyle) } - if(VERSION.SDK_INT<31){ Text(text = "以下功能需要安卓12或以上:切换摄像头使用权限、切换麦克风使用权限", style = bodyTextStyle) } - if(VERSION.SDK_INT<33){ Text(text = "以下功能需要安卓13或以上:添加WiFi配置、分享设备管理器配置的WiFi、WiFi共享", style = bodyTextStyle) } - if(VERSION.SDK_INT<34){ Text(text = "以下功能需要安卓14或以上:2G信号、启用设备管理器、超宽频段无线电", style = bodyTextStyle) } - } - Spacer(Modifier.padding(vertical = 30.dp)) - } + Spacer(Modifier.padding(vertical = 30.dp)) } } @@ -129,9 +120,7 @@ fun SectionTab(txt:String,getSection:()->Boolean,setSection:()->Unit){ val sharedPref = LocalContext.current.getSharedPreferences("data", Context.MODE_PRIVATE) Text( text = txt, - color = if(getSection()){ - colorScheme.onTertiaryContainer}else{ - colorScheme.onPrimaryContainer}, + color = if(getSection()){ colorScheme.onTertiaryContainer }else{ colorScheme.onPrimaryContainer }, textAlign = TextAlign.Center, style = if(!sharedPref.getBoolean("isWear",false)){typography.headlineMedium}else{typography.titleLarge}, modifier = Modifier @@ -139,13 +128,7 @@ fun SectionTab(txt:String,getSection:()->Boolean,setSection:()->Unit){ .padding(horizontal = if(!sharedPref.getBoolean("isWear",false)){8.dp}else{4.dp}, vertical = if(!sharedPref.getBoolean("isWear",false)){5.dp}else{2.dp}) .clip(RoundedCornerShape(15.dp)) - .background( - color = if (getSection()) { - colorScheme.tertiaryContainer.copy(alpha = 0.8F) - } else { - colorScheme.primaryContainer.copy(alpha = 0.8F) - } - ) + .background(color = if (getSection()){ colorScheme.tertiaryContainer }else{ colorScheme.primaryContainer }.copy(0.8F)) .clickable(onClick = setSection) .padding(vertical = if(!sharedPref.getBoolean("isWear",false)){8.dp}else{3.dp}) )