Loading src/com/android/packageinstaller/permission/ui/handheld/AllAppPermissionsFragment.java +6 −6 Original line number Diff line number Diff line Loading @@ -153,15 +153,12 @@ public final class AllAppPermissionsFragment extends SettingsWithHeader { continue; } PreferenceGroup pref = findOrCreate(group, pm, prefs); // We allow individual permission control in some groups if review enabled final boolean mutable = Utils.areGroupPermissionsIndividuallyControlled( getContext(), group.name); pref.addPreference(getPreference(info, perm, group, pm, mutable)); pref.addPreference(getPreference(info, perm, group, pm)); } else if (filterGroup == null) { if (perm.protectionLevel == PermissionInfo.PROTECTION_NORMAL) { PermissionGroupInfo group = getGroup(perm.group, pm); otherGroup.addPreference(getPreference(info, perm, group, pm, false)); perm, group, pm)); } } Loading Loading @@ -218,8 +215,11 @@ public final class AllAppPermissionsFragment extends SettingsWithHeader { } private Preference getPreference(PackageInfo packageInfo, PermissionInfo perm, PackageItemInfo group, PackageManager pm, boolean mutable) { PackageItemInfo group, PackageManager pm) { final Preference pref; // We allow individual permission control for some permissions if review enabled final boolean mutable = Utils.isPermissionIndividuallyControlled(getContext(), perm.name); if (mutable) { pref = new MyMultiTargetSwitchPreference(getContext(), packageInfo, perm.name); } else { Loading src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java +3 −0 Original line number Diff line number Diff line Loading @@ -351,6 +351,9 @@ public final class AppPermissionsFragment extends SettingsWithHeader final int permissionCount = permissions.size(); for (int i = 0; i < permissionCount; i++) { Permission permission = permissions.get(i); if (!Utils.isPermissionIndividuallyControlled(getContext(), permission.getName())) { continue; } if (group.doesSupportRuntimePermissions() ? !permission.isGranted() : !permission.isAppOpAllowed()) { revokedCount++; Loading src/com/android/packageinstaller/permission/utils/Utils.java +16 −0 Original line number Diff line number Diff line Loading @@ -155,4 +155,20 @@ public final class Utils { || Manifest.permission_group.PHONE.equals(group) || Manifest.permission_group.CONTACTS.equals(group); } public static boolean isPermissionIndividuallyControlled(Context context, String permission) { if (!context.getResources().getBoolean( com.android.internal.R.bool.config_permissionReviewRequired)) { return false; } return Manifest.permission.READ_CONTACTS.equals(permission) || Manifest.permission.WRITE_CONTACTS.equals(permission) || Manifest.permission.SEND_SMS.equals(permission) || Manifest.permission.RECEIVE_SMS.equals(permission) || Manifest.permission.READ_SMS.equals(permission) || Manifest.permission.RECEIVE_MMS.equals(permission) || Manifest.permission.CALL_PHONE.equals(permission) || Manifest.permission.READ_CALL_LOG.equals(permission) || Manifest.permission.WRITE_CALL_LOG.equals(permission); } } Loading
src/com/android/packageinstaller/permission/ui/handheld/AllAppPermissionsFragment.java +6 −6 Original line number Diff line number Diff line Loading @@ -153,15 +153,12 @@ public final class AllAppPermissionsFragment extends SettingsWithHeader { continue; } PreferenceGroup pref = findOrCreate(group, pm, prefs); // We allow individual permission control in some groups if review enabled final boolean mutable = Utils.areGroupPermissionsIndividuallyControlled( getContext(), group.name); pref.addPreference(getPreference(info, perm, group, pm, mutable)); pref.addPreference(getPreference(info, perm, group, pm)); } else if (filterGroup == null) { if (perm.protectionLevel == PermissionInfo.PROTECTION_NORMAL) { PermissionGroupInfo group = getGroup(perm.group, pm); otherGroup.addPreference(getPreference(info, perm, group, pm, false)); perm, group, pm)); } } Loading Loading @@ -218,8 +215,11 @@ public final class AllAppPermissionsFragment extends SettingsWithHeader { } private Preference getPreference(PackageInfo packageInfo, PermissionInfo perm, PackageItemInfo group, PackageManager pm, boolean mutable) { PackageItemInfo group, PackageManager pm) { final Preference pref; // We allow individual permission control for some permissions if review enabled final boolean mutable = Utils.isPermissionIndividuallyControlled(getContext(), perm.name); if (mutable) { pref = new MyMultiTargetSwitchPreference(getContext(), packageInfo, perm.name); } else { Loading
src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java +3 −0 Original line number Diff line number Diff line Loading @@ -351,6 +351,9 @@ public final class AppPermissionsFragment extends SettingsWithHeader final int permissionCount = permissions.size(); for (int i = 0; i < permissionCount; i++) { Permission permission = permissions.get(i); if (!Utils.isPermissionIndividuallyControlled(getContext(), permission.getName())) { continue; } if (group.doesSupportRuntimePermissions() ? !permission.isGranted() : !permission.isAppOpAllowed()) { revokedCount++; Loading
src/com/android/packageinstaller/permission/utils/Utils.java +16 −0 Original line number Diff line number Diff line Loading @@ -155,4 +155,20 @@ public final class Utils { || Manifest.permission_group.PHONE.equals(group) || Manifest.permission_group.CONTACTS.equals(group); } public static boolean isPermissionIndividuallyControlled(Context context, String permission) { if (!context.getResources().getBoolean( com.android.internal.R.bool.config_permissionReviewRequired)) { return false; } return Manifest.permission.READ_CONTACTS.equals(permission) || Manifest.permission.WRITE_CONTACTS.equals(permission) || Manifest.permission.SEND_SMS.equals(permission) || Manifest.permission.RECEIVE_SMS.equals(permission) || Manifest.permission.READ_SMS.equals(permission) || Manifest.permission.RECEIVE_MMS.equals(permission) || Manifest.permission.CALL_PHONE.equals(permission) || Manifest.permission.READ_CALL_LOG.equals(permission) || Manifest.permission.WRITE_CALL_LOG.equals(permission); } }