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