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.Build.VERSION
import android.os.UserManager import android.os.UserManager
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row 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.rememberScrollState
import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.verticalScroll 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.Icon
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.SwitchDefaults
import androidx.compose.material3.Text 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
@@ -30,11 +28,13 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clip
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
@Composable @Composable
fun UserRestriction(myDpm: DevicePolicyManager, myComponent: ComponentName){ fun UserRestriction(myDpm: DevicePolicyManager, myComponent: ComponentName){
val verticalScrolling = rememberScrollState() val verticalScrolling = rememberScrollState()
var currentSection by remember{ mutableStateOf(0) }
Column( Column(
horizontalAlignment = Alignment.CenterHorizontally, horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier modifier = Modifier
@@ -42,42 +42,153 @@ fun UserRestriction(myDpm: DevicePolicyManager, myComponent: ComponentName){
.padding(bottom = 20.dp) .padding(bottom = 20.dp)
) { ) {
Text("打开开关后会禁用对应的功能") Text("打开开关后会禁用对应的功能")
UserRestrictionItem(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS,R.string.config_mobile_network,"",R.drawable.signal_cellular_alt_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_CONFIG_WIFI,R.string.config_wifi,"",R.drawable.wifi_fill0,myComponent, myDpm) SectionTab("网络和互联网") { currentSection = if(currentSection==1){ 0 }else{ 1 } }
if(VERSION.SDK_INT>=26){ if(currentSection==1){
UserRestrictionItem(UserManager.DISALLOW_BLUETOOTH,R.string.bluetooth,"",R.drawable.bluetooth_fill0,myComponent, myDpm) UserRestrictionItem(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS,R.string.config_mobile_network,"",R.drawable.signal_cellular_alt_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_BLUETOOTH_SHARING,R.string.bt_share,"",R.drawable.bluetooth_searching_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)
} }
if(VERSION.SDK_INT>=28){
UserRestrictionItem(UserManager.DISALLOW_AIRPLANE_MODE,R.string.airplane_mode,"",R.drawable.airplanemode_active_fill0,myComponent, myDpm) SectionTab("其他连接") { currentSection = if(currentSection==6){ 0 }else{ 6 } }
UserRestrictionItem(UserManager.DISALLOW_CONFIG_LOCATION,R.string.config_location,"",R.drawable.location_on_fill0,myComponent, myDpm) if(currentSection==6){
UserRestrictionItem(UserManager.DISALLOW_CONFIG_BRIGHTNESS,R.string.config_brightness,"",R.drawable.brightness_5_fill0,myComponent, myDpm) 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)
}
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) SectionTab("应用") { currentSection = if(currentSection==2){ 0 }else{ 2 } }
UserRestrictionItem(UserManager.DISALLOW_CREATE_WINDOWS,R.string.create_windows, stringResource(R.string.create_windows_description),R.drawable.web_asset,myComponent, myDpm) if(currentSection==2){
UserRestrictionItem(UserManager.DISALLOW_ADJUST_VOLUME,R.string.adjust_volume,"",R.drawable.volume_up_fill0,myComponent, myDpm) UserRestrictionItem(UserManager.DISALLOW_INSTALL_APPS,R.string.install_apps,"",R.drawable.android_fill0,myComponent, myDpm)
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)}
if(VERSION.SDK_INT>=31){ UserRestrictionItem(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES,R.string.inst_unknown_src,"",R.drawable.android_fill0,myComponent, myDpm)
UserRestrictionItem(UserManager.DISALLOW_CAMERA_TOGGLE,R.string.camera_toggle,"",R.drawable.cameraswitch_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) }
} }
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==3){ 0 }else{ 3 } }
if(VERSION.SDK_INT>=26){ if(currentSection==3){
UserRestrictionItem(UserManager.DISALLOW_AUTOFILL,R.string.autofill, "",R.drawable.password_fill0,myComponent, myDpm) 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)
}
}
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_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){ if(VERSION.SDK_INT<26){
Text("以下功能需要安卓8或以上蓝牙、自动填充服务") Text("以下功能需要安卓8或以上蓝牙、自动填充服务、添加/移除工作资料")
} }
if(VERSION.SDK_INT<28){ if(VERSION.SDK_INT<28){
Text("以下功能需要安卓9或以上飞行模式、位置信息、调整亮度") Text("以下功能需要安卓9或以上飞行模式、位置信息、调整亮度、修改语言、修改日期时间、修改屏幕超时、打印、分享至工作应用、切换用户")
}
if(VERSION.SDK_INT<29){
Text("以下功能需要安卓10或以上配置私人DNS、内容捕获、内容建议")
} }
if(VERSION.SDK_INT<31){ 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 @Composable
private fun UserRestrictionItem(restriction:String, itemName:Int, restrictionDescription:String, leadIcon:Int,myComponent: ComponentName, myDpm: DevicePolicyManager){ private fun UserRestrictionItem(restriction:String, itemName:Int, restrictionDescription:String, leadIcon:Int,myComponent: ComponentName, myDpm: DevicePolicyManager){
val isdo = myDpm.isDeviceOwnerApp("com.binbin.androidowner") 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="create_windows">创建窗口</string>
<string name="adjust_volume">调整音量</string> <string name="adjust_volume">调整音量</string>
<string name="install_apps">安装应用</string> <string name="install_apps">安装应用</string>
<string name="camera_toggle">切换相机</string> <string name="camera_toggle">切换摄像头使用权限</string>
<string name="sms">短信</string> <string name="sms">短信</string>
<string name="apps_ctrl">控制应用</string> <string name="apps_ctrl">控制应用</string>
<string name="autofill">自动填充服务</string> <string name="autofill">自动填充服务</string>
<string name="inst_unknown_src">安装未知来源应用</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="password">密码</string>
<string name="security_desc">锁屏密码相关操作</string> <string name="security_desc">锁屏密码相关操作</string>