From ca46a775c878a1f2053569e5fed42584b2264865 Mon Sep 17 00:00:00 2001
From: BinTianqi <1220958406@qq.com>
Date: Tue, 30 Jan 2024 19:44:11 +0800
Subject: [PATCH] clean up unused resources
---
Readme.md | 2 +-
app/build.gradle.kts | 6 +-
.../com/binbin/androidowner/DeviceControl.kt | 2 +-
.../com/binbin/androidowner/MainActivity.kt | 27 ++-
.../java/com/binbin/androidowner/Password.kt | 10 +-
.../binbin/androidowner/SystemUpdatePolicy.kt | 3 +-
.../main/java/com/binbin/androidowner/User.kt | 10 +-
.../com/binbin/androidowner/UserRestrict.kt | 29 ++-
.../res/drawable/ic_launcher_background.xml | 170 ------------------
.../main/res/drawable/navigate_next_fill0.xml | 9 -
app/src/main/res/values/strings.xml | 22 ---
11 files changed, 42 insertions(+), 248 deletions(-)
delete mode 100644 app/src/main/res/drawable/ic_launcher_background.xml
delete mode 100644 app/src/main/res/drawable/navigate_next_fill0.xml
diff --git a/Readme.md b/Readme.md
index c3cd891..71866e6 100644
--- a/Readme.md
+++ b/Readme.md
@@ -50,7 +50,7 @@
### 许可证
-> Copyright (C) 2023 BinTianqi
+> Copyright (C) 2024 BinTianqi
>
> This program is free software: you can redistribute it and/or modifyit under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
>
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 0070adf..70554a6 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -9,10 +9,10 @@ android {
defaultConfig {
applicationId = "com.binbin.androidowner"
- minSdk = 23
+ minSdk = 21
targetSdk = 34
- versionCode = 7
- versionName = "2.0"
+ versionCode = 8
+ versionName = "2.1"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
diff --git a/app/src/main/java/com/binbin/androidowner/DeviceControl.kt b/app/src/main/java/com/binbin/androidowner/DeviceControl.kt
index 5059e76..3c90b0f 100644
--- a/app/src/main/java/com/binbin/androidowner/DeviceControl.kt
+++ b/app/src/main/java/com/binbin/androidowner/DeviceControl.kt
@@ -68,7 +68,7 @@ fun DeviceControl(){
if(VERSION.SDK_INT>=26&&(isDeviceOwner(myDpm)|| isProfileOwner(myDpm))){
DeviceCtrlItem(R.string.backup_service,R.string.place_holder,R.drawable.backup_fill0,myDpm,{myDpm.isBackupServiceEnabled(myComponent)},{b -> myDpm.setBackupServiceEnabled(myComponent,b) })
}
- if(isDeviceOwner(myDpm)|| isProfileOwner(myDpm)){
+ if(VERSION.SDK_INT>=23&&(isDeviceOwner(myDpm)|| isProfileOwner(myDpm))){
DeviceCtrlItem(R.string.disable_bt_contact_share,R.string.place_holder,R.drawable.account_circle_fill0,myDpm,{myDpm.getBluetoothContactSharingDisabled(myComponent)},{b -> myDpm.setBluetoothContactSharingDisabled(myComponent,b)})
}
if(VERSION.SDK_INT>=31&&isDeviceOwner(myDpm)){
diff --git a/app/src/main/java/com/binbin/androidowner/MainActivity.kt b/app/src/main/java/com/binbin/androidowner/MainActivity.kt
index 39ea7ff..6d11504 100644
--- a/app/src/main/java/com/binbin/androidowner/MainActivity.kt
+++ b/app/src/main/java/com/binbin/androidowner/MainActivity.kt
@@ -214,34 +214,35 @@ fun HomePage(navCtrl:NavHostController){
}
}
}
- HomePageItem(R.string.device_ctrl, R.drawable.mobile_phone_fill0, R.string.device_ctrl_desc, "DeviceControl", navCtrl)
- HomePageItem(R.string.app_manage, R.drawable.apps_fill0, R.string.apps_ctrl_description, "ApplicationManage", navCtrl)
- HomePageItem(R.string.user_restrict, R.drawable.manage_accounts_fill0, R.string.user_restrict_desc, "UserRestriction", navCtrl)
- HomePageItem(R.string.user_manage,R.drawable.account_circle_fill0,R.string.user_manage_desc,"UserManage",navCtrl)
- HomePageItem(R.string.password, R.drawable.password_fill0,R.string.security_desc, "Password",navCtrl)
- HomePageItem(R.string.setting, R.drawable.info_fill0, R.string.setting_desc, "AppSetting",navCtrl)
+ HomePageItem(R.string.device_ctrl, R.drawable.mobile_phone_fill0, "DeviceControl", navCtrl)
+ HomePageItem(R.string.app_manage, R.drawable.apps_fill0, "ApplicationManage", navCtrl)
+ HomePageItem(R.string.user_restrict, R.drawable.manage_accounts_fill0, "UserRestriction", navCtrl)
+ HomePageItem(R.string.user_manage,R.drawable.account_circle_fill0,"UserManage",navCtrl)
+ HomePageItem(R.string.password, R.drawable.password_fill0, "Password",navCtrl)
+ HomePageItem(R.string.setting, R.drawable.info_fill0, "AppSetting",navCtrl)
Spacer(Modifier.padding(vertical = 20.dp))
}
}
@Composable
-fun HomePageItem(name:Int, imgVector:Int, description:Int, navTo:String, myNav:NavHostController){
+fun HomePageItem(name:Int, imgVector:Int, navTo:String, myNav:NavHostController){
val sharedPref = LocalContext.current.getSharedPreferences("data", Context.MODE_PRIVATE)
+ val isWear = sharedPref.getBoolean("isWear", false)
Row(
modifier = Modifier
.fillMaxWidth()
- .padding(vertical = if (!sharedPref.getBoolean("isWear", false)) { 4.dp } else { 2.dp }, horizontal = if (!sharedPref.getBoolean("isWear", false)) { 7.dp } else { 4.dp })
+ .padding(vertical = if (!isWear) { 4.dp } else { 2.dp }, horizontal = if (!isWear) { 7.dp } else { 4.dp })
.clip(RoundedCornerShape(15))
.background(color = MaterialTheme.colorScheme.primaryContainer.copy(alpha = 0.8F))
.clickable(onClick = { myNav.navigate(navTo) })
- .padding(6.dp),
+ .padding(vertical = if(isWear){6.dp}else{10.dp}, horizontal = 6.dp),
verticalAlignment = Alignment.CenterVertically
) {
Icon(
painter = painterResource(imgVector),
contentDescription = null,
- modifier = Modifier.padding(horizontal = if(!sharedPref.getBoolean("isWear",false)){10.dp}else{6.dp}),
+ modifier = Modifier.padding(horizontal = if(!sharedPref.getBoolean("isWear",false)){12.dp}else{6.dp}),
tint = MaterialTheme.colorScheme.primary
)
Column {
@@ -250,11 +251,7 @@ fun HomePageItem(name:Int, imgVector:Int, description:Int, navTo:String, myNav:N
style = MaterialTheme.typography.headlineSmall,
color = MaterialTheme.colorScheme.onPrimaryContainer
)
- if(!sharedPref.getBoolean("isWear",false)){
- Text(
- text = stringResource(description)
- )
- }
+ Spacer(Modifier.padding(top = 2.dp))
}
}
}
diff --git a/app/src/main/java/com/binbin/androidowner/Password.kt b/app/src/main/java/com/binbin/androidowner/Password.kt
index 31a9e1b..ff13d44 100644
--- a/app/src/main/java/com/binbin/androidowner/Password.kt
+++ b/app/src/main/java/com/binbin/androidowner/Password.kt
@@ -160,7 +160,7 @@ fun Password(){
modifier = sections()
) {
var confirmed by remember{ mutableStateOf(false) }
- Text(text = "修改密码",style = MaterialTheme.typography.titleLarge,color = titleColor)
+ Text(text = "修改密码",style = typography.titleLarge,color = titleColor)
TextField(
value = newPwd,
onValueChange = {newPwd=it},
@@ -172,9 +172,11 @@ fun Password(){
)
Text(text = stringResource(R.string.reset_pwd_desc), modifier = Modifier.padding(vertical = 3.dp),style=if(!isWear){typography.bodyLarge}else{typography.bodyMedium})
var resetPwdFlag by remember{ mutableIntStateOf(0) }
- RadioButtonItem("开机时不要求密码(如果有指纹等其他解锁方式)",
- {resetPwdFlag==DevicePolicyManager.RESET_PASSWORD_DO_NOT_ASK_CREDENTIALS_ON_BOOT},
- {resetPwdFlag=DevicePolicyManager.RESET_PASSWORD_DO_NOT_ASK_CREDENTIALS_ON_BOOT})
+ if(VERSION.SDK_INT>=23){
+ RadioButtonItem("开机时不要求密码(如果有指纹等其他解锁方式)",
+ {resetPwdFlag==DevicePolicyManager.RESET_PASSWORD_DO_NOT_ASK_CREDENTIALS_ON_BOOT},
+ {resetPwdFlag=DevicePolicyManager.RESET_PASSWORD_DO_NOT_ASK_CREDENTIALS_ON_BOOT})
+ }
RadioButtonItem("要求立即输入新密码",{resetPwdFlag==DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY},
{resetPwdFlag=DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY})
RadioButtonItem("无",{resetPwdFlag==0},{resetPwdFlag=0})
diff --git a/app/src/main/java/com/binbin/androidowner/SystemUpdatePolicy.kt b/app/src/main/java/com/binbin/androidowner/SystemUpdatePolicy.kt
index ed67782..230f5bb 100644
--- a/app/src/main/java/com/binbin/androidowner/SystemUpdatePolicy.kt
+++ b/app/src/main/java/com/binbin/androidowner/SystemUpdatePolicy.kt
@@ -54,6 +54,7 @@ fun SysUpdatePolicy(myDpm:DevicePolicyManager,myComponent:ComponentName,myContex
}
}
}
+ if(VERSION.SDK_INT>=23){
Column(modifier = sections()) {
var selectedPolicy by remember{ mutableStateOf(myDpm.systemUpdatePolicy?.policyType) }
Text(text = "系统更新策略", style = MaterialTheme.typography.titleLarge)
@@ -101,7 +102,7 @@ fun SysUpdatePolicy(myDpm:DevicePolicyManager,myComponent:ComponentName,myContex
) {
Text("应用")
}
- }
+ }}
/*val policy = myDpm.systemUpdatePolicy
if(VERSION.SDK_INT>=28&&policy!=null){
Column {
diff --git a/app/src/main/java/com/binbin/androidowner/User.kt b/app/src/main/java/com/binbin/androidowner/User.kt
index f52476d..be53071 100644
--- a/app/src/main/java/com/binbin/androidowner/User.kt
+++ b/app/src/main/java/com/binbin/androidowner/User.kt
@@ -253,15 +253,11 @@ fun userOperationResultCode(result:Int): String {
private fun createWorkProfile(myContext: Context) {
val intent = Intent(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE)
- intent.putExtra(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME, ComponentName(myContext,MyDeviceAdminReceiver::class.java))
+ if(VERSION.SDK_INT>=23){
+ intent.putExtra(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME, ComponentName(myContext,MyDeviceAdminReceiver::class.java))
+ }
intent.putExtra(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME, myContext.packageName)
if (VERSION.SDK_INT >= 33) { intent.putExtra(DevicePolicyManager.EXTRA_PROVISIONING_ALLOW_OFFLINE,true) }
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,"hello")
myContext.startActivity(intent)
}
-
-private fun createManagedDevice(myContext: Context) {
- val intent = Intent(DevicePolicyManager.ACTION_PROVISION_MANAGED_DEVICE)
- intent.putExtra(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME, ComponentName(myContext,MyDeviceAdminReceiver::class.java))
- myContext.startActivity(intent)
-}
diff --git a/app/src/main/java/com/binbin/androidowner/UserRestrict.kt b/app/src/main/java/com/binbin/androidowner/UserRestrict.kt
index 35f782e..94960bc 100644
--- a/app/src/main/java/com/binbin/androidowner/UserRestrict.kt
+++ b/app/src/main/java/com/binbin/androidowner/UserRestrict.kt
@@ -51,7 +51,6 @@ private data class Restriction(
fun UserRestriction(){
val myContext = LocalContext.current
val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
- val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
var internetVisible by remember{ mutableStateOf(false) }
var connectivityVisible by remember{ mutableStateOf(false) }
var applicationVisible by remember{ mutableStateOf(false) }
@@ -83,42 +82,42 @@ fun UserRestriction(){
items(1){ SectionTab("网络和互联网",{internetVisible}, { internetVisible=!internetVisible}) }
items(restrictionData().internet()){data->
if(internetVisible){
- UserRestrictionItem(data.restriction,data.name,data.desc,data.ico,myContext,myComponent, myDpm)
+ UserRestrictionItem(data.restriction,data.name,data.desc,data.ico)
}
}
items(1){ SectionTab("更多连接",{connectivityVisible}) { connectivityVisible=!connectivityVisible } }
items(restrictionData().connectivity()){data->
if(connectivityVisible){
- UserRestrictionItem(data.restriction,data.name,data.desc,data.ico,myContext,myComponent, myDpm)
+ UserRestrictionItem(data.restriction,data.name,data.desc,data.ico)
}
}
items(1){ SectionTab("应用",{applicationVisible}) { applicationVisible=!applicationVisible } }
items(restrictionData().application()){data->
if(applicationVisible){
- UserRestrictionItem(data.restriction,data.name,data.desc,data.ico,myContext,myComponent, myDpm)
+ UserRestrictionItem(data.restriction,data.name,data.desc,data.ico)
}
}
items(1){ SectionTab("用户",{userVisible}) { userVisible=!userVisible } }
items(restrictionData().user()){data->
if(userVisible){
- UserRestrictionItem(data.restriction,data.name,data.desc,data.ico,myContext,myComponent, myDpm)
+ UserRestrictionItem(data.restriction,data.name,data.desc,data.ico)
}
}
items(1){ SectionTab("媒体",{mediaVisible}) { mediaVisible=!mediaVisible } }
items(restrictionData().media()){data->
if(mediaVisible){
- UserRestrictionItem(data.restriction,data.name,data.desc,data.ico,myContext,myComponent, myDpm)
+ UserRestrictionItem(data.restriction,data.name,data.desc,data.ico)
}
}
items(1){ SectionTab("其他",{otherVisible}) { otherVisible=!otherVisible } }
items(restrictionData().other()){data->
if(otherVisible){
- UserRestrictionItem(data.restriction,data.name,data.desc,data.ico,myContext,myComponent, myDpm)
+ UserRestrictionItem(data.restriction,data.name,data.desc,data.ico)
}
}
@@ -174,11 +173,11 @@ fun SectionTab(txt:String,getSection:()->Boolean,setSection:()->Unit){
private fun UserRestrictionItem(
restriction:String, itemName:Int,
restrictionDescription:String,
- leadIcon:Int,
- myContext: Context,
- myComponent: ComponentName,
- myDpm: DevicePolicyManager
+ leadIcon:Int
){
+ val myContext = LocalContext.current
+ val myDpm = myContext.getSystemService(ComponentActivity.DEVICE_POLICY_SERVICE) as DevicePolicyManager
+ val myComponent = ComponentName(myContext,MyDeviceAdminReceiver::class.java)
var strictState by remember{ mutableStateOf(false) }
val sharedPref = LocalContext.current.getSharedPreferences("data", Context.MODE_PRIVATE)
Row(
@@ -252,7 +251,7 @@ private class restrictionData{
list += Restriction(UserManager.DISALLOW_WIFI_TETHERING,R.string.wifi_tethering,"",R.drawable.wifi_tethering_fill0)
list += Restriction(UserManager.DISALLOW_SHARING_ADMIN_CONFIGURED_WIFI,R.string.share_admin_wifi,"",R.drawable.share_fill0)
}
- list += Restriction(UserManager.DISALLOW_NETWORK_RESET,R.string.network_reset,"",R.drawable.reset_wrench_fill0)
+ if(VERSION.SDK_INT>=23){ list += Restriction(UserManager.DISALLOW_NETWORK_RESET,R.string.network_reset,"",R.drawable.reset_wrench_fill0) }
list += Restriction(UserManager.DISALLOW_CONFIG_TETHERING,R.string.config_tethering,"",R.drawable.wifi_tethering_fill0)
list += Restriction(UserManager.DISALLOW_CONFIG_VPN,R.string.config_vpn,"",R.drawable.vpn_key_fill0)
if(VERSION.SDK_INT>=29){list += Restriction(UserManager.DISALLOW_CONFIG_PRIVATE_DNS,R.string.config_private_dns,"",R.drawable.dns_fill0)}
@@ -270,7 +269,7 @@ private class restrictionData{
}
list += Restriction(UserManager.DISALLOW_SHARE_LOCATION,R.string.share_location,"",R.drawable.location_on_fill0)
if(VERSION.SDK_INT>=28){list += Restriction(UserManager.DISALLOW_CONFIG_LOCATION,R.string.config_location,"",R.drawable.location_on_fill0)}
- list += Restriction(UserManager.DISALLOW_OUTGOING_BEAM,R.string.outgoing_beam,"",R.drawable.nfc_fill0)
+ if(VERSION.SDK_INT>=22){list += Restriction(UserManager.DISALLOW_OUTGOING_BEAM,R.string.outgoing_beam,"",R.drawable.nfc_fill0)}
list += Restriction(UserManager.DISALLOW_USB_FILE_TRANSFER,R.string.usb_file_transfer,"",R.drawable.usb_fill0)
list += Restriction(UserManager.DISALLOW_MOUNT_PHYSICAL_MEDIA,R.string.mount_physical_media, "包括TF卡和USB-OTG",R.drawable.sd_card_fill0)
if(VERSION.SDK_INT>=28){list += Restriction(UserManager.DISALLOW_PRINTING,R.string.printing,"",R.drawable.print_fill0)}
@@ -329,7 +328,7 @@ private class restrictionData{
list += Restriction(UserManager.DISALLOW_CREATE_WINDOWS,R.string.create_windows, "可能包括Toast和浮动通知",R.drawable.web_asset)
if(VERSION.SDK_INT>=24){list += Restriction(UserManager.DISALLOW_SET_WALLPAPER,R.string.set_wallpaper,"",R.drawable.wallpaper_fill0)}
if(VERSION.SDK_INT>=34){ list += Restriction(UserManager.DISALLOW_GRANT_ADMIN,R.string.grant_admin,"",R.drawable.android_fill0) }
- list += Restriction(UserManager.DISALLOW_FUN,R.string.`fun`,"可能会影响谷歌商店的游戏",R.drawable.stadia_controller_fill0)
+ if(VERSION.SDK_INT>=23){ list += Restriction(UserManager.DISALLOW_FUN,R.string.`fun`,"可能会影响谷歌商店的游戏",R.drawable.stadia_controller_fill0) }
list += Restriction(UserManager.DISALLOW_MODIFY_ACCOUNTS,R.string.modify_accounts,"",R.drawable.manage_accounts_fill0)
if(VERSION.SDK_INT>=28){
list += Restriction(UserManager.DISALLOW_CONFIG_LOCALE,R.string.config_locale,"",R.drawable.language_fill0)
@@ -337,7 +336,7 @@ private class restrictionData{
}
if(VERSION.SDK_INT>=28){list += Restriction(UserManager.DISALLOW_SYSTEM_ERROR_DIALOGS,R.string.sys_err_dialog,"",R.drawable.android_fill0)}
list += Restriction(UserManager.DISALLOW_FACTORY_RESET,R.string.factory_reset,"",R.drawable.android_fill0)
- list += Restriction(UserManager.DISALLOW_SAFE_BOOT,R.string.safe_boot,"",R.drawable.security_fill0)
+ if(VERSION.SDK_INT>=23){ list += Restriction(UserManager.DISALLOW_SAFE_BOOT,R.string.safe_boot,"",R.drawable.security_fill0) }
list += Restriction(UserManager.DISALLOW_DEBUGGING_FEATURES,R.string.debug_features,"",R.drawable.adb_fill0)
return list
}
diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml
deleted file mode 100644
index 07d5da9..0000000
--- a/app/src/main/res/drawable/ic_launcher_background.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/drawable/navigate_next_fill0.xml b/app/src/main/res/drawable/navigate_next_fill0.xml
deleted file mode 100644
index 76c4b34..0000000
--- a/app/src/main/res/drawable/navigate_next_fill0.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 579a724..4b9ce4b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -18,20 +18,8 @@
如果隐藏,有可能是没安装
禁止用户控制
阻止清除应用数据和缓存
- 允许
- 禁止
- 是否禁止:
- 可以隐藏、停用应用
- 包括Toast和浮动通知
权限
- UI控制
- 授权与取消授权DeviceAdmin或DeviceOwner
- 锁屏和重启等
- 非DeviceOwner勿入
- 管理当前用户可用的功能
- 防卸载
- 有时候不能用
用户限制
配置移动数据
@@ -67,17 +55,14 @@
内容捕获
内容建议
跨用户复制
- 在不同用户和工作资料之间复制粘贴
数据漫游
恢复出厂设置
娱乐
- 作用未知
启用设备管理器
安装未知来源应用(全局)
切换麦克风使用权限
修改账号设置
挂载物理媒体
- 包括TF卡和USB-OTG
重置网络
Beam发送
拨打电话
@@ -102,7 +87,6 @@
移除工作资料
密码
- 更改锁屏密码,设置密码复杂度
留空可以清除密码,纯数字将使用PIN码
最大密码错误次数
达到该限制会恢复出厂设置
@@ -119,15 +103,9 @@
提供支持的短消息
如果你禁用了某个功能,用户尝试使用这个功能时会看见这个消息(可多行)
消息
- 用户名
提供支持的长消息
都是显示短消息,长消息不知道在哪里显示
禁止蓝牙分享联系人
- 系统更新策略
- 管理系统更新策略
- 禁止锁屏(需无密码)
用户管理
- 查看用户状态,添加用户
设置
- 关于此应用
\ No newline at end of file