add all of the user restrictions

This commit is contained in:
BinTianqi
2024-01-19 13:50:24 +08:00
parent 8c72d19847
commit c8af8f054f
23 changed files with 377 additions and 27 deletions

View File

@@ -5,6 +5,7 @@ import android.content.ComponentName
import android.os.Build.VERSION
import android.os.UserManager
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
@@ -13,12 +14,9 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Info
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Switch
import androidx.compose.material3.SwitchDefaults
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
@@ -30,11 +28,13 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
@Composable
fun UserRestriction(myDpm: DevicePolicyManager, myComponent: ComponentName){
val verticalScrolling = rememberScrollState()
var currentSection by remember{ mutableStateOf(0) }
Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier
@@ -42,42 +42,153 @@ fun UserRestriction(myDpm: DevicePolicyManager, myComponent: ComponentName){
.padding(bottom = 20.dp)
) {
Text("打开开关后会禁用对应的功能")
SectionTab("网络和互联网") { currentSection = if(currentSection==1){ 0 }else{ 1 } }
if(currentSection==1){
UserRestrictionItem(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS,R.string.config_mobile_network,"",R.drawable.signal_cellular_alt_fill0,myComponent, myDpm)
if(VERSION.SDK_INT>=24){UserRestrictionItem(UserManager.DISALLOW_DATA_ROAMING,R.string.data_roaming,"",R.drawable.network_cell_fill0,myComponent, myDpm)}
if(VERSION.SDK_INT>=34){
UserRestrictionItem(UserManager.DISALLOW_CELLULAR_2G,R.string.cellular_2g,"",R.drawable.network_cell_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_ULTRA_WIDEBAND_RADIO,R.string.ultra_wideband_radio,"",R.drawable.android_fill0,myComponent, myDpm)
}
UserRestrictionItem(UserManager.DISALLOW_CONFIG_WIFI,R.string.config_wifi,"",R.drawable.wifi_fill0,myComponent, myDpm)
if(VERSION.SDK_INT>=33){
UserRestrictionItem(UserManager.DISALLOW_ADD_WIFI_CONFIG,R.string.add_wifi_conf,"",R.drawable.wifi_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_CHANGE_WIFI_STATE,R.string.change_wifi_state,"",R.drawable.wifi_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_WIFI_DIRECT,R.string.wifi_direct,"",R.drawable.wifi_tethering_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_WIFI_TETHERING,R.string.wifi_tethering,"",R.drawable.wifi_tethering_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_SHARING_ADMIN_CONFIGURED_WIFI,R.string.share_admin_wifi,"",R.drawable.share_fill0,myComponent, myDpm)
}
UserRestrictionItem(UserManager.DISALLOW_NETWORK_RESET,R.string.network_reset,"",R.drawable.reset_wrench_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_CONFIG_TETHERING,R.string.config_tethering,"",R.drawable.wifi_tethering_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_CONFIG_VPN,R.string.config_vpn,"",R.drawable.vpn_key_fill0,myComponent, myDpm)
if(VERSION.SDK_INT>=29){UserRestrictionItem(UserManager.DISALLOW_CONFIG_PRIVATE_DNS,R.string.config_private_dns,"",R.drawable.dns_fill0,myComponent, myDpm)}
if(VERSION.SDK_INT>=28){ UserRestrictionItem(UserManager.DISALLOW_AIRPLANE_MODE,R.string.airplane_mode,"",R.drawable.airplanemode_active_fill0,myComponent, myDpm) }
UserRestrictionItem(UserManager.DISALLOW_CONFIG_CELL_BROADCASTS,R.string.config_cell_broadcasts,"",R.drawable.cell_tower_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_SMS,R.string.sms,"",R.drawable.sms_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_OUTGOING_CALLS,R.string.outgoing_calls,"",R.drawable.phone_forwarded_fill0,myComponent, myDpm)
}
SectionTab("其他连接") { currentSection = if(currentSection==6){ 0 }else{ 6 } }
if(currentSection==6){
if(VERSION.SDK_INT>=26){
UserRestrictionItem(UserManager.DISALLOW_BLUETOOTH,R.string.bluetooth,"",R.drawable.bluetooth_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_BLUETOOTH_SHARING,R.string.bt_share,"",R.drawable.bluetooth_searching_fill0,myComponent, myDpm)
}
if(VERSION.SDK_INT>=28){
UserRestrictionItem(UserManager.DISALLOW_AIRPLANE_MODE,R.string.airplane_mode,"",R.drawable.airplanemode_active_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_CONFIG_LOCATION,R.string.config_location,"",R.drawable.location_on_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_CONFIG_BRIGHTNESS,R.string.config_brightness,"",R.drawable.brightness_5_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_SHARE_LOCATION,R.string.share_location,"",R.drawable.location_on_fill0,myComponent, myDpm)
if(VERSION.SDK_INT>=28){UserRestrictionItem(UserManager.DISALLOW_CONFIG_LOCATION,R.string.config_location,"",R.drawable.location_on_fill0,myComponent, myDpm)}
UserRestrictionItem(UserManager.DISALLOW_OUTGOING_BEAM,R.string.outgoing_beam,"",R.drawable.nfc_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_USB_FILE_TRANSFER,R.string.usb_file_transfer,"",R.drawable.usb_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_MOUNT_PHYSICAL_MEDIA,R.string.mount_physical_media, stringResource(R.string.mount_phisical_media_desc),R.drawable.sd_card_fill0,myComponent, myDpm)
if(VERSION.SDK_INT>=28){UserRestrictionItem(UserManager.DISALLOW_PRINTING,R.string.printing,"",R.drawable.print_fill0,myComponent, myDpm)}
}
UserRestrictionItem(UserManager.DISALLOW_DEBUGGING_FEATURES,R.string.debug_features,"",R.drawable.adb_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_CREATE_WINDOWS,R.string.create_windows, stringResource(R.string.create_windows_description),R.drawable.web_asset,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_ADJUST_VOLUME,R.string.adjust_volume,"",R.drawable.volume_up_fill0,myComponent, myDpm)
SectionTab("应用") { currentSection = if(currentSection==2){ 0 }else{ 2 } }
if(currentSection==2){
UserRestrictionItem(UserManager.DISALLOW_INSTALL_APPS,R.string.install_apps,"",R.drawable.android_fill0,myComponent, myDpm)
if(VERSION.SDK_INT>=29){UserRestrictionItem(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY,R.string.install_unknown_src_globally,"",R.drawable.android_fill0,myComponent, myDpm)}
UserRestrictionItem(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES,R.string.inst_unknown_src,"",R.drawable.android_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_UNINSTALL_APPS,R.string.uninstall_apps,"",R.drawable.delete_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_APPS_CONTROL,R.string.apps_ctrl, stringResource(R.string.apps_ctrl_description),R.drawable.apps_fill0,myComponent, myDpm)
if(VERSION.SDK_INT>=34){ UserRestrictionItem(UserManager.DISALLOW_CONFIG_DEFAULT_APPS,R.string.config_default_apps,"",R.drawable.apps_fill0,myComponent, myDpm) }
}
SectionTab("显示与音量") { currentSection = if(currentSection==3){ 0 }else{ 3 } }
if(currentSection==3){
if(VERSION.SDK_INT>=28){
UserRestrictionItem(UserManager.DISALLOW_CONFIG_BRIGHTNESS,R.string.config_brightness,"",R.drawable.brightness_5_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_CONFIG_SCREEN_TIMEOUT,R.string.config_scr_timeout,"",R.drawable.screen_lock_portrait_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_AMBIENT_DISPLAY,R.string.ambient_display,"",R.drawable.brightness_5_fill0,myComponent, myDpm)
}
UserRestrictionItem(UserManager.DISALLOW_ADJUST_VOLUME,R.string.adjust_volume,"",R.drawable.volume_up_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_UNMUTE_MICROPHONE,R.string.unmute_microphone,"",R.drawable.mic_fill0,myComponent, myDpm)
if(VERSION.SDK_INT>=31){
UserRestrictionItem(UserManager.DISALLOW_CAMERA_TOGGLE,R.string.camera_toggle,"",R.drawable.cameraswitch_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_MICROPHONE_TOGGLE,R.string.microphone_toggle,"",R.drawable.mic_fill0,myComponent, myDpm)
}
UserRestrictionItem(UserManager.DISALLOW_SMS,R.string.sms,"",R.drawable.sms_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_APPS_CONTROL,R.string.apps_ctrl, stringResource(R.string.apps_ctrl_description),R.drawable.apps_fill0,myComponent, myDpm)
}
SectionTab("用户与工作资料") { currentSection = if(currentSection==4){ 0 }else{ 4 } }
if(currentSection==4){
UserRestrictionItem(UserManager.DISALLOW_ADD_USER,R.string.add_user,"",R.drawable.account_circle_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_REMOVE_USER,R.string.remove_user,"",R.drawable.account_circle_fill0,myComponent, myDpm)
if(VERSION.SDK_INT>=28){UserRestrictionItem(UserManager.DISALLOW_USER_SWITCH,R.string.switch_user,"",R.drawable.account_circle_fill0,myComponent, myDpm)}
if(VERSION.SDK_INT>=24){UserRestrictionItem(UserManager.DISALLOW_SET_USER_ICON,R.string.set_user_icon,"",R.drawable.account_circle_fill0,myComponent, myDpm)}
UserRestrictionItem(UserManager.DISALLOW_CROSS_PROFILE_COPY_PASTE,R.string.cross_profile_copy, stringResource(R.string.cross_profile_copy_desc),R.drawable.content_paste_fill0,myComponent, myDpm)
if(VERSION.SDK_INT>=26){
UserRestrictionItem(UserManager.DISALLOW_AUTOFILL,R.string.autofill, "",R.drawable.password_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_ADD_MANAGED_PROFILE,R.string.add_managed_profile,"",R.drawable.work_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_REMOVE_MANAGED_PROFILE,R.string.remove_managed_profile,"",R.drawable.work_fill0,myComponent, myDpm)
}
if(VERSION.SDK_INT>=28){
UserRestrictionItem(UserManager.DISALLOW_SHARE_INTO_MANAGED_PROFILE,R.string.share_into_managed_profile,"",R.drawable.share_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_UNIFIED_PASSWORD,R.string.unifiied_pwd,"",R.drawable.work_fill0,myComponent, myDpm)
}
}
SectionTab("杂项") { currentSection = if(currentSection==5){ 0 }else{ 5 } }
if(currentSection==5){
if(VERSION.SDK_INT>=26){ UserRestrictionItem(UserManager.DISALLOW_AUTOFILL,R.string.autofill, "",R.drawable.password_fill0,myComponent, myDpm) }
UserRestrictionItem(UserManager.DISALLOW_CONFIG_CREDENTIALS,R.string.config_credentials,"",R.drawable.android_fill0,myComponent, myDpm)
if(VERSION.SDK_INT>=29){
UserRestrictionItem(UserManager.DISALLOW_CONTENT_CAPTURE,R.string.content_capture,"",R.drawable.android_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_CONTENT_SUGGESTIONS,R.string.content_suggestions,"",R.drawable.android_fill0,myComponent, myDpm)
}
UserRestrictionItem(UserManager.DISALLOW_CREATE_WINDOWS,R.string.create_windows, stringResource(R.string.create_windows_description),R.drawable.web_asset,myComponent, myDpm)
if(VERSION.SDK_INT>=24){UserRestrictionItem(UserManager.DISALLOW_SET_WALLPAPER,R.string.set_wallpaper,"",R.drawable.wallpaper_fill0,myComponent, myDpm)}
if(VERSION.SDK_INT>=34){ UserRestrictionItem(UserManager.DISALLOW_GRANT_ADMIN,R.string.grant_admin,"",R.drawable.android_fill0,myComponent, myDpm) }
UserRestrictionItem(UserManager.DISALLOW_FUN,R.string.`fun`,"可能会影响谷歌商店的游戏",R.drawable.stadia_controller_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_MODIFY_ACCOUNTS,R.string.modify_accounts,"",R.drawable.manage_accounts_fill0,myComponent, myDpm)
if(VERSION.SDK_INT>=28){
UserRestrictionItem(UserManager.DISALLOW_CONFIG_LOCALE,R.string.config_locale,"",R.drawable.language_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_CONFIG_DATE_TIME,R.string.config_date_time,"",R.drawable.schedule_fill0,myComponent, myDpm)
}
if(VERSION.SDK_INT>=28){UserRestrictionItem(UserManager.DISALLOW_SYSTEM_ERROR_DIALOGS,R.string.sys_err_dialog,"",R.drawable.android_fill0,myComponent, myDpm)}
UserRestrictionItem(UserManager.DISALLOW_FACTORY_RESET,R.string.factory_reset,"",R.drawable.android_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_SAFE_BOOT,R.string.safe_boot,"",R.drawable.android_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_DEBUGGING_FEATURES,R.string.debug_features,"",R.drawable.adb_fill0,myComponent, myDpm)
}
if(VERSION.SDK_INT<24){
Text("以下功能需要安卓7或以上数据漫游、修改用户头像、更换壁纸")
}
UserRestrictionItem(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES,R.string.inst_unknown_src,"",R.drawable.android_fill0,myComponent, myDpm)
if(VERSION.SDK_INT<26){
Text("以下功能需要安卓8或以上蓝牙、自动填充服务")
Text("以下功能需要安卓8或以上蓝牙、自动填充服务、添加/移除工作资料")
}
if(VERSION.SDK_INT<28){
Text("以下功能需要安卓9或以上飞行模式、位置信息、调整亮度")
Text("以下功能需要安卓9或以上飞行模式、位置信息、调整亮度、修改语言、修改日期时间、修改屏幕超时、打印、分享至工作应用、切换用户")
}
if(VERSION.SDK_INT<29){
Text("以下功能需要安卓10或以上配置私人DNS、内容捕获、内容建议")
}
if(VERSION.SDK_INT<31){
Text("以下功能需要安卓12或以上切换相机")
Text("以下功能需要安卓12或以上切换摄像头使用权限")
}
if(VERSION.SDK_INT<33){
Text("以下功能需要安卓13或以上添加WiFi配置、分享设备管理器配置的WiFi、WiFi共享")
}
if(VERSION.SDK_INT<34){
Text("以下功能需要安卓14或以上2G信号、启用设备管理器、超宽频段无线电")
}
}
}
@Composable
fun SectionTab(txt:String,setSection:()->Unit){
Text(
text = txt,
color = MaterialTheme.colorScheme.onTertiaryContainer,
textAlign = TextAlign.Center,
style = MaterialTheme.typography.headlineMedium,
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = 8.dp, vertical = 6.dp)
.clip(RoundedCornerShape(15))
.background(color = MaterialTheme.colorScheme.tertiaryContainer)
.clickable(onClick = setSection)
.padding(vertical = 8.dp)
)
}
@Composable
private fun UserRestrictionItem(restriction:String, itemName:Int, restrictionDescription:String, leadIcon:Int,myComponent: ComponentName, myDpm: DevicePolicyManager){
val isdo = myDpm.isDeviceOwnerApp("com.binbin.androidowner")

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="M234,684q51,-39 114,-61.5T480,600q69,0 132,22.5T726,684q35,-41 54.5,-93T800,480q0,-133 -93.5,-226.5T480,160q-133,0 -226.5,93.5T160,480q0,59 19.5,111t54.5,93ZM480,520q-59,0 -99.5,-40.5T340,380q0,-59 40.5,-99.5T480,240q59,0 99.5,40.5T620,380q0,59 -40.5,99.5T480,520ZM480,880q-83,0 -156,-31.5T197,763q-54,-54 -85.5,-127T80,480q0,-83 31.5,-156T197,197q54,-54 127,-85.5T480,80q83,0 156,31.5T763,197q54,54 85.5,127T880,480q0,83 -31.5,156T763,763q-54,54 -127,85.5T480,880ZM480,800q53,0 100,-15.5t86,-44.5q-39,-29 -86,-44.5T480,680q-53,0 -100,15.5T294,740q39,29 86,44.5T480,800ZM480,440q26,0 43,-17t17,-43q0,-26 -17,-43t-43,-17q-26,0 -43,17t-17,43q0,26 17,43t43,17ZM480,380ZM480,740Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="M196,684q-57,-60 -86.5,-133T80,400q0,-78 29.5,-151T196,116l48,48q-48,48 -72,110.5T148,400q0,63 24,125.5T244,636l-48,48ZM292,588q-39,-39 -59.5,-88T212,400q0,-51 20.5,-100t59.5,-88l48,48q-30,27 -45,64t-15,76q0,36 15,73t45,67l-48,48ZM280,880l135,-405q-16,-14 -25.5,-33t-9.5,-42q0,-42 29,-71t71,-29q42,0 71,29t29,71q0,23 -9.5,42T545,475L680,880h-80l-26,-80L387,800l-27,80h-80ZM413,720h134l-67,-200 -67,200ZM668,588 L620,540q30,-27 45,-64t15,-76q0,-36 -15,-73t-45,-67l48,-48q39,39 58,88t22,100q0,51 -20.5,100T668,588ZM764,684 L716,636q48,-48 72,-110.5T812,400q0,-63 -24,-125.5T716,164l48,-48q57,60 86.5,133T880,400q0,78 -28,151t-88,133Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="M200,840q-33,0 -56.5,-23.5T120,760v-560q0,-33 23.5,-56.5T200,120h167q11,-35 43,-57.5t70,-22.5q40,0 71.5,22.5T594,120h166q33,0 56.5,23.5T840,200v560q0,33 -23.5,56.5T760,840L200,840ZM200,760h560v-560h-80v120L280,320v-120h-80v560ZM480,200q17,0 28.5,-11.5T520,160q0,-17 -11.5,-28.5T480,120q-17,0 -28.5,11.5T440,160q0,17 11.5,28.5T480,200Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="M280,840q-33,0 -56.5,-23.5T200,760v-520h-40v-80h200v-40h240v40h200v80h-40v520q0,33 -23.5,56.5T680,840L280,840ZM680,240L280,240v520h400v-520ZM360,680h80v-360h-80v360ZM520,680h80v-360h-80v360ZM280,240v520,-520Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="M300,240q-25,0 -42.5,17.5T240,300q0,25 17.5,42.5T300,360q25,0 42.5,-17.5T360,300q0,-25 -17.5,-42.5T300,240ZM300,640q-25,0 -42.5,17.5T240,700q0,25 17.5,42.5T300,760q25,0 42.5,-17.5T360,700q0,-25 -17.5,-42.5T300,640ZM160,120h640q17,0 28.5,11.5T840,160v280q0,17 -11.5,28.5T800,480L160,480q-17,0 -28.5,-11.5T120,440v-280q0,-17 11.5,-28.5T160,120ZM200,200v200h560v-200L200,200ZM160,520h640q17,0 28.5,11.5T840,560v280q0,17 -11.5,28.5T800,880L160,880q-17,0 -28.5,-11.5T120,840v-280q0,-17 11.5,-28.5T160,520ZM200,600v200h560v-200L200,600ZM200,200v200,-200ZM200,600v200,-200Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="M480,880q-82,0 -155,-31.5t-127.5,-86Q143,708 111.5,635T80,480q0,-83 31.5,-155.5t86,-127Q252,143 325,111.5T480,80q83,0 155.5,31.5t127,86q54.5,54.5 86,127T880,480q0,82 -31.5,155t-86,127.5q-54.5,54.5 -127,86T480,880ZM480,798q26,-36 45,-75t31,-83L404,640q12,44 31,83t45,75ZM376,782q-18,-33 -31.5,-68.5T322,640L204,640q29,50 72.5,87t99.5,55ZM584,782q56,-18 99.5,-55t72.5,-87L638,640q-9,38 -22.5,73.5T584,782ZM170,560h136q-3,-20 -4.5,-39.5T300,480q0,-21 1.5,-40.5T306,400L170,400q-5,20 -7.5,39.5T160,480q0,21 2.5,40.5T170,560ZM386,560h188q3,-20 4.5,-39.5T580,480q0,-21 -1.5,-40.5T574,400L386,400q-3,20 -4.5,39.5T380,480q0,21 1.5,40.5T386,560ZM654,560h136q5,-20 7.5,-39.5T800,480q0,-21 -2.5,-40.5T790,400L654,400q3,20 4.5,39.5T660,480q0,21 -1.5,40.5T654,560ZM638,320h118q-29,-50 -72.5,-87T584,178q18,33 31.5,68.5T638,320ZM404,320h152q-12,-44 -31,-83t-45,-75q-26,36 -45,75t-31,83ZM204,320h118q9,-38 22.5,-73.5T376,178q-56,18 -99.5,55T204,320Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="M480,560q-50,0 -85,-35t-35,-85v-240q0,-50 35,-85t85,-35q50,0 85,35t35,85v240q0,50 -35,85t-85,35ZM480,320ZM440,840v-123q-104,-14 -172,-93t-68,-184h80q0,83 58.5,141.5T480,640q83,0 141.5,-58.5T680,440h80q0,105 -68,184t-172,93v123h-80ZM480,480q17,0 28.5,-11.5T520,440v-240q0,-17 -11.5,-28.5T480,160q-17,0 -28.5,11.5T440,200v240q0,17 11.5,28.5T480,480Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="m80,880 l800,-800v800L80,880ZM680,800h120v-526L680,394v406Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="M280,680h400v-400L520,280q-33,0 -56.5,23.5T440,360v52q-20,11 -30,28t-10,40q0,33 23.5,56.5T480,560q33,0 56.5,-23.5T560,480q0,-23 -11,-40t-29,-28v-52h80v240L360,600v-240h40v-80L280,280v400ZM200,840q-33,0 -56.5,-23.5T120,760v-560q0,-33 23.5,-56.5T200,120h560q33,0 56.5,23.5T840,200v560q0,33 -23.5,56.5T760,840L200,840ZM200,760h560v-560L200,200v560ZM200,200v560,-560Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="m720,400 l-58,-56 64,-64L520,280v-80h206l-62,-62 56,-58 160,162 -160,158ZM798,840q-125,0 -247,-54.5T329,631Q229,531 174.5,409T120,162q0,-18 12,-30t30,-12h162q14,0 25,9.5t13,22.5l26,140q2,16 -1,27t-11,19l-97,98q20,37 47.5,71.5T387,574q31,31 65,57.5t72,48.5l94,-94q9,-9 23.5,-13.5T670,570l138,28q14,4 23,14.5t9,23.5v162q0,18 -12,30t-30,12ZM241,360l66,-66 -17,-94h-89q5,41 14,81t26,79ZM599,718q39,17 79.5,27t81.5,13v-88l-94,-19 -67,67ZM241,360ZM599,718Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="M640,320v-120L320,200v120h-80v-200h480v200h-80ZM160,400h640,-640ZM720,500q17,0 28.5,-11.5T760,460q0,-17 -11.5,-28.5T720,420q-17,0 -28.5,11.5T680,460q0,17 11.5,28.5T720,500ZM640,760v-160L320,600v160h320ZM720,840L240,840v-160L80,680v-240q0,-51 35,-85.5t85,-34.5h560q51,0 85.5,34.5T880,440v240L720,680v160ZM800,600v-160q0,-17 -11.5,-28.5T760,400L200,400q-17,0 -28.5,11.5T160,440v160h80v-80h480v80h80Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="m653,752 l-88,88 -85,-85 88,-88q-4,-11 -6,-23t-2,-24q0,-58 41,-99t99,-41q18,0 35,4.5t32,12.5l-95,95 56,56 95,-94q8,15 12.5,31.5T840,620q0,58 -41,99t-99,41q-13,0 -24.5,-2t-22.5,-6ZM831,400h-83q-26,-88 -99,-144t-169,-56q-117,0 -198.5,81.5T200,480q0,72 32.5,132t87.5,98v-110h80v240L160,840v-80h94q-62,-50 -98,-122.5T120,480q0,-75 28.5,-140.5t77,-114q48.5,-48.5 114,-77T480,120q129,0 226.5,79.5T831,400Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="M394,640q-14,0 -24,-10t-10,-24v-132q0,-14 10,-24t24,-10h6v-40q0,-33 23.5,-56.5T480,320q33,0 56.5,23.5T560,400v40h6q14,0 24,10t10,24v132q0,14 -10,24t-24,10L394,640ZM440,440h80v-40q0,-17 -11.5,-28.5T480,360q-17,0 -28.5,11.5T440,400v40ZM280,920q-33,0 -56.5,-23.5T200,840v-720q0,-33 23.5,-56.5T280,40h400q33,0 56.5,23.5T760,120v720q0,33 -23.5,56.5T680,920L280,920ZM280,800v40h400v-40L280,800ZM280,720h400v-480L280,240v480ZM280,160h400v-40L280,120v40ZM280,160v-40,40ZM280,800v40,-40Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="M360,440h80v-160h-80v160ZM480,440h80v-160h-80v160ZM600,440h80v-160h-80v160ZM240,880q-33,0 -56.5,-23.5T160,800v-480l240,-240h320q33,0 56.5,23.5T800,160v640q0,33 -23.5,56.5T720,880L240,880ZM240,800h480v-640L434,160L240,354v446ZM240,800h480,-480Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="M720,880q-50,0 -85,-35t-35,-85q0,-7 1,-14.5t3,-13.5L322,568q-17,15 -38,23.5t-44,8.5q-50,0 -85,-35t-35,-85q0,-50 35,-85t85,-35q23,0 44,8.5t38,23.5l282,-164q-2,-6 -3,-13.5t-1,-14.5q0,-50 35,-85t85,-35q50,0 85,35t35,85q0,50 -35,85t-85,35q-23,0 -44,-8.5T638,288L356,452q2,6 3,13.5t1,14.5q0,7 -1,14.5t-3,13.5l282,164q17,-15 38,-23.5t44,-8.5q50,0 85,35t35,85q0,50 -35,85t-85,35ZM720,240q17,0 28.5,-11.5T760,200q0,-17 -11.5,-28.5T720,160q-17,0 -28.5,11.5T680,200q0,17 11.5,28.5T720,240ZM240,520q17,0 28.5,-11.5T280,480q0,-17 -11.5,-28.5T240,440q-17,0 -28.5,11.5T200,480q0,17 11.5,28.5T240,520ZM720,800q17,0 28.5,-11.5T760,760q0,-17 -11.5,-28.5T720,720q-17,0 -28.5,11.5T680,760q0,17 11.5,28.5T720,800ZM720,200ZM240,480ZM720,760Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="M189,800q-60,0 -102.5,-43T42,653q0,-9 1,-18t3,-18l84,-336q14,-54 57,-87.5t98,-33.5h390q55,0 98,33.5t57,87.5l84,336q2,9 3.5,18.5T919,654q0,61 -43.5,103.5T771,800q-42,0 -78,-22t-54,-60l-28,-58q-5,-10 -15,-15t-21,-5L385,640q-11,0 -21,5t-15,15l-28,58q-18,38 -54,60t-78,22ZM192,720q19,0 34.5,-10t23.5,-27l28,-57q15,-31 44,-48.5t63,-17.5h190q34,0 63,18t45,48l28,57q8,17 23.5,27t34.5,10q28,0 48,-18.5t21,-46.5q0,1 -2,-19l-84,-335q-7,-27 -28,-44t-49,-17L285,240q-28,0 -49.5,17T208,301l-84,335q-2,6 -2,18 0,28 20.5,47t49.5,19ZM540,440q17,0 28.5,-11.5T580,400q0,-17 -11.5,-28.5T540,360q-17,0 -28.5,11.5T500,400q0,17 11.5,28.5T540,440ZM620,360q17,0 28.5,-11.5T660,320q0,-17 -11.5,-28.5T620,280q-17,0 -28.5,11.5T580,320q0,17 11.5,28.5T620,360ZM620,520q17,0 28.5,-11.5T660,480q0,-17 -11.5,-28.5T620,440q-17,0 -28.5,11.5T580,480q0,17 11.5,28.5T620,520ZM700,440q17,0 28.5,-11.5T740,400q0,-17 -11.5,-28.5T700,360q-17,0 -28.5,11.5T660,400q0,17 11.5,28.5T700,440ZM340,500q13,0 21.5,-8.5T370,470v-40h40q13,0 21.5,-8.5T440,400q0,-13 -8.5,-21.5T410,370h-40v-40q0,-13 -8.5,-21.5T340,300q-13,0 -21.5,8.5T310,330v40h-40q-13,0 -21.5,8.5T240,400q0,13 8.5,21.5T270,430h40v40q0,13 8.5,21.5T340,500ZM480,480Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="M480,880q-33,0 -56.5,-23.5T400,800q0,-21 11,-39t29,-29v-92L320,640q-33,0 -56.5,-23.5T240,560v-92q-18,-9 -29,-27t-11,-41q0,-33 23.5,-56.5T280,320q33,0 56.5,23.5T360,400q0,23 -11,40t-29,28v92h120v-320h-80l120,-160 120,160h-80v320h120v-80h-40v-160h160v160h-40v80q0,33 -23.5,56.5T640,640L520,640v92q19,10 29.5,28t10.5,40q0,33 -23.5,56.5T480,880Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="M280,720q-100,0 -170,-70T40,480q0,-100 70,-170t170,-70q66,0 121,33t87,87h432v240h-80v120L600,720v-120L488,600q-32,54 -87,87t-121,33ZM280,640q66,0 106,-40.5t48,-79.5h246v120h80v-120h80v-80L434,440q-8,-39 -48,-79.5T280,320q-66,0 -113,47t-47,113q0,66 47,113t113,47ZM280,560q33,0 56.5,-23.5T360,480q0,-33 -23.5,-56.5T280,400q-33,0 -56.5,23.5T200,480q0,33 23.5,56.5T280,560ZM280,480Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="M200,840q-33,0 -56.5,-23.5T120,760v-240h80v240h240v80L200,840ZM520,840v-80h240v-240h80v240q0,33 -23.5,56.5T760,840L520,840ZM240,680l120,-160 90,120 120,-160 150,200L240,680ZM120,440v-240q0,-33 23.5,-56.5T200,120h240v80L200,200v240h-80ZM760,440v-240L520,200v-80h240q33,0 56.5,23.5T840,200v240h-80ZM620,400q-26,0 -43,-17t-17,-43q0,-26 17,-43t43,-17q26,0 43,17t17,43q0,26 -17,43t-43,17Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="M204,810q-57,-55 -90.5,-129.5T80,520q0,-83 31.5,-156T197,237q54,-54 127,-85.5T480,120q83,0 156,31.5T763,237q54,54 85.5,127T880,520q0,86 -33.5,161T756,810l-56,-56q46,-44 73,-104.5T800,520q0,-134 -93,-227t-227,-93q-134,0 -227,93t-93,227q0,69 27,129t74,104l-57,57ZM317,697q-35,-33 -56,-78.5T240,520q0,-100 70,-170t170,-70q100,0 170,70t70,170q0,53 -21,99t-56,78l-57,-57q25,-23 39.5,-54t14.5,-66q0,-66 -47,-113t-113,-47q-66,0 -113,47t-47,113q0,36 14.5,66.5T374,640l-57,57ZM480,600q-33,0 -56.5,-23.5T400,520q0,-33 23.5,-56.5T480,440q33,0 56.5,23.5T560,520q0,33 -23.5,56.5T480,600Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#FF000000"
android:pathData="M160,840q-33,0 -56.5,-23.5T80,760v-440q0,-33 23.5,-56.5T160,240h160v-80q0,-33 23.5,-56.5T400,80h160q33,0 56.5,23.5T640,160v80h160q33,0 56.5,23.5T880,320v440q0,33 -23.5,56.5T800,840L160,840ZM160,760h640v-440L160,320v440ZM400,240h160v-80L400,160v80ZM160,760v-440,440Z"/>
</vector>

View File

@@ -45,11 +45,61 @@
<string name="create_windows">创建窗口</string>
<string name="adjust_volume">调整音量</string>
<string name="install_apps">安装应用</string>
<string name="camera_toggle">切换相机</string>
<string name="camera_toggle">切换摄像头使用权限</string>
<string name="sms">短信</string>
<string name="apps_ctrl">控制应用</string>
<string name="autofill">自动填充服务</string>
<string name="inst_unknown_src">安装未知来源应用</string>
<string name="add_user">添加用户</string>
<string name="ambient_display">息屏显示</string>
<string name="add_wifi_conf">添加WiFi配置</string>
<string name="change_wifi_state">修改WiFi状态</string>
<string name="config_cell_broadcasts">配置小区广播</string>
<string name="config_credentials">配置可信凭据</string>
<string name="config_locale">修改语言</string>
<string name="cellular_2g">使用2G(GSM)</string>
<string name="config_date_time">修改日期、时间</string>
<string name="config_default_apps">修改默认App</string>
<string name="config_private_dns">配置私人DNS</string>
<string name="config_scr_timeout">修改屏幕超时</string>
<string name="config_tethering">配置网络共享</string>
<string name="config_vpn">配置VPN</string>
<string name="content_capture">内容捕获</string>
<string name="content_suggestions">内容建议</string>
<string name="cross_profile_copy">跨用户复制</string>
<string name="cross_profile_copy_desc">在不同用户和工作资料之间复制粘贴</string>
<string name="data_roaming">数据漫游</string>
<string name="factory_reset">恢复出厂设置</string>
<string name="fun">娱乐</string>
<string name="unknown_feature">作用未知</string>
<string name="grant_admin">启用设备管理器</string>
<string name="install_unknown_src_globally">安装未知来源应用(全局)</string>
<string name="microphone_toggle">切换麦克风使用权限</string>
<string name="modify_accounts">修改账号设置</string>
<string name="mount_physical_media">挂载物理媒体</string>
<string name="mount_phisical_media_desc">包括TF卡和USB-OTG</string>
<string name="network_reset">重置网络</string>
<string name="outgoing_beam">Beam发送</string>
<string name="outgoing_calls">拨打电话</string>
<string name="printing">打印</string>
<string name="remove_user">移除用户</string>
<string name="safe_boot">安全模式</string>
<string name="set_user_icon">修改用户头像</string>
<string name="set_wallpaper">更换壁纸</string>
<string name="share_into_managed_profile">分享至工作应用</string>
<string name="share_location">分享位置</string>
<string name="share_admin_wifi">分享设备管理器配置的WiFi</string>
<string name="sys_err_dialog">系统报错对话框</string>
<string name="ultra_wideband_radio">超宽频段无线电</string>
<string name="unifiied_pwd">个人和工作密码相同</string>
<string name="uninstall_apps">卸载应用</string>
<string name="unmute_microphone">取消麦克风静音</string>
<string name="usb_file_transfer">USB文件传输</string>
<string name="switch_user">切换用户</string>
<string name="wifi_direct">WiFi直连</string>
<string name="wifi_tethering">WiFi共享</string>
<string name="add_managed_profile">添加工作资料</string>
<string name="remove_managed_profile">移除工作资料</string>
<string name="password">密码</string>
<string name="security_desc">锁屏密码相关操作</string>