Loading src/com/android/packageinstaller/permission/model/AppPermissionGroup.java +3 −22 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import android.os.Build; import android.os.UserHandle; import android.util.ArrayMap; import com.android.internal.util.ArrayUtils; import com.android.packageinstaller.R; import com.android.packageinstaller.permission.utils.LocationUtils; Loading Loading @@ -265,19 +264,13 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup> return mPermissions.get(permission) != null; } public boolean areRuntimePermissionsGranted(String[] filterPermissions) { public boolean areRuntimePermissionsGranted() { if (LocationUtils.isLocked(mName, mPackageInfo.packageName)) { return LocationUtils.isLocationEnabled(mContext); } final int permissionCount = mPermissions.size(); for (int i = 0; i < permissionCount; i++) { Permission permission = mPermissions.valueAt(i); if (filterPermissions != null && !ArrayUtils.contains( filterPermissions, permission.getName())) { continue; } if (mAppSupportsRuntimePermissions) { if (permission.isGranted()) { return true; Loading @@ -290,7 +283,7 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup> return false; } public boolean grantRuntimePermissions(boolean fixedByTheUser, String[] filterPermissions) { public boolean grantRuntimePermissions(boolean fixedByTheUser) { final boolean isSharedUser = mPackageInfo.sharedUserId != null; final int uid = mPackageInfo.applicationInfo.uid; Loading @@ -298,12 +291,6 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup> // permissions, otherwise we toggle the app op corresponding // to the permission if the permission is granted to the app. for (Permission permission : mPermissions.values()) { if (filterPermissions != null && !ArrayUtils.contains( filterPermissions, permission.getName())) { continue; } if (mAppSupportsRuntimePermissions) { // Do not touch permissions fixed by the system. if (permission.isSystemFixed()) { Loading Loading @@ -384,7 +371,7 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup> return true; } public boolean revokeRuntimePermissions(boolean fixedByTheUser, String[] filterPermissions) { public boolean revokeRuntimePermissions(boolean fixedByTheUser) { final boolean isSharedUser = mPackageInfo.sharedUserId != null; final int uid = mPackageInfo.applicationInfo.uid; Loading @@ -392,12 +379,6 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup> // permissions, otherwise we toggle the app op corresponding // to the permission if the permission is granted to the app. for (Permission permission : mPermissions.values()) { if (filterPermissions != null && !ArrayUtils.contains( filterPermissions, permission.getName())) { continue; } if (mAppSupportsRuntimePermissions) { // Do not touch permissions fixed by the system. if (permission.isSystemFixed()) { Loading src/com/android/packageinstaller/permission/model/PermissionApps.java +3 −3 Original line number Diff line number Diff line Loading @@ -313,15 +313,15 @@ public class PermissionApps { } public boolean areRuntimePermissionsGranted() { return mAppPermissionGroup.areRuntimePermissionsGranted(null); return mAppPermissionGroup.areRuntimePermissionsGranted(); } public void grantRuntimePermissions() { mAppPermissionGroup.grantRuntimePermissions(false, null); mAppPermissionGroup.grantRuntimePermissions(false); } public void revokeRuntimePermissions() { mAppPermissionGroup.revokeRuntimePermissions(false, null); mAppPermissionGroup.revokeRuntimePermissions(false); } public boolean isPolicyFixed() { Loading src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java +1 −1 Original line number Diff line number Diff line Loading @@ -77,7 +77,7 @@ public class PermissionStatusReceiver extends BroadcastReceiver { for (AppPermissionGroup group : appPermissions.getPermissionGroups()) { if (Utils.shouldShowPermission(group)) { totalCount++; if (group.areRuntimePermissionsGranted(null)) { if (group.areRuntimePermissionsGranted()) { grantedCount++; if (Utils.OS_PKG.equals(group.getDeclaringPackage())) { Loading src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java +5 −5 Original line number Diff line number Diff line Loading @@ -224,7 +224,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader } preference.setPersistent(false); preference.setEnabled(!group.isPolicyFixed()); preference.setChecked(group.areRuntimePermissionsGranted(null)); preference.setChecked(group.areRuntimePermissionsGranted()); if (isPlatform) { screen.addPreference(preference); Loading Loading @@ -281,7 +281,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader return false; } if (newValue == Boolean.TRUE) { group.grantRuntimePermissions(false, null); group.grantRuntimePermissions(false); } else { final boolean grantedByDefault = group.hasGrantedByDefaultPermission(); if (grantedByDefault || (!group.hasRuntimePermission() && !mHasConfirmedRevoke)) { Loading @@ -294,7 +294,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader @Override public void onClick(DialogInterface dialog, int which) { ((SwitchPreference) preference).setChecked(false); group.revokeRuntimePermissions(false, null); group.revokeRuntimePermissions(false); if (!grantedByDefault) { mHasConfirmedRevoke = true; } Loading @@ -303,7 +303,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader .show(); return false; } else { group.revokeRuntimePermissions(false, null); group.revokeRuntimePermissions(false); } } Loading Loading @@ -351,7 +351,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader SwitchPreference switchPref = (SwitchPreference) preference; AppPermissionGroup group = mAppPermissions.getPermissionGroup(switchPref.getKey()); if (group != null) { switchPref.setChecked(group.areRuntimePermissionsGranted(null)); switchPref.setChecked(group.areRuntimePermissionsGranted()); } } } Loading src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java +7 −16 Original line number Diff line number Diff line Loading @@ -118,30 +118,21 @@ public class GrantPermissionsActivity extends OverlayTouchActivity if (!group.isUserFixed() && !group.isPolicyFixed()) { switch (permissionPolicy) { case DevicePolicyManager.PERMISSION_POLICY_AUTO_GRANT: { if (!group.areRuntimePermissionsGranted(mRequestedPermissions)) { group.grantRuntimePermissions(false, mRequestedPermissions); if (!group.areRuntimePermissionsGranted()) { group.grantRuntimePermissions(false); group.setPolicyFixed(); } } break; case DevicePolicyManager.PERMISSION_POLICY_AUTO_DENY: { if (group.areRuntimePermissionsGranted(mRequestedPermissions)) { group.revokeRuntimePermissions(false, mRequestedPermissions); if (!group.areRuntimePermissionsGranted()) { group.revokeRuntimePermissions(false); group.setPolicyFixed(); } } break; default: { if (group.areRuntimePermissionsGranted(null) && !group.areRuntimePermissionsGranted(mRequestedPermissions)) { // If the group is granted but requested permissions // in it not we auto grant the these permissions. group.grantRuntimePermissions(group.isUserFixed(), mRequestedPermissions); } else { mRequestGrantPermissionGroups.put(group.getName(), new GroupState(group)); } mRequestGrantPermissionGroups.put(group.getName(), new GroupState(group)); } break; } } else { Loading Loading @@ -235,10 +226,10 @@ public class GrantPermissionsActivity extends OverlayTouchActivity GroupState groupState = mRequestGrantPermissionGroups.get(name); if (groupState.mGroup != null) { if (granted) { groupState.mGroup.grantRuntimePermissions(doNotAskAgain, mRequestedPermissions); groupState.mGroup.grantRuntimePermissions(doNotAskAgain); groupState.mState = GroupState.STATE_ALLOWED; } else { groupState.mGroup.revokeRuntimePermissions(doNotAskAgain, mRequestedPermissions); groupState.mGroup.revokeRuntimePermissions(doNotAskAgain); groupState.mState = GroupState.STATE_DENIED; } updateGrantResults(groupState.mGroup); Loading Loading
src/com/android/packageinstaller/permission/model/AppPermissionGroup.java +3 −22 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import android.os.Build; import android.os.UserHandle; import android.util.ArrayMap; import com.android.internal.util.ArrayUtils; import com.android.packageinstaller.R; import com.android.packageinstaller.permission.utils.LocationUtils; Loading Loading @@ -265,19 +264,13 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup> return mPermissions.get(permission) != null; } public boolean areRuntimePermissionsGranted(String[] filterPermissions) { public boolean areRuntimePermissionsGranted() { if (LocationUtils.isLocked(mName, mPackageInfo.packageName)) { return LocationUtils.isLocationEnabled(mContext); } final int permissionCount = mPermissions.size(); for (int i = 0; i < permissionCount; i++) { Permission permission = mPermissions.valueAt(i); if (filterPermissions != null && !ArrayUtils.contains( filterPermissions, permission.getName())) { continue; } if (mAppSupportsRuntimePermissions) { if (permission.isGranted()) { return true; Loading @@ -290,7 +283,7 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup> return false; } public boolean grantRuntimePermissions(boolean fixedByTheUser, String[] filterPermissions) { public boolean grantRuntimePermissions(boolean fixedByTheUser) { final boolean isSharedUser = mPackageInfo.sharedUserId != null; final int uid = mPackageInfo.applicationInfo.uid; Loading @@ -298,12 +291,6 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup> // permissions, otherwise we toggle the app op corresponding // to the permission if the permission is granted to the app. for (Permission permission : mPermissions.values()) { if (filterPermissions != null && !ArrayUtils.contains( filterPermissions, permission.getName())) { continue; } if (mAppSupportsRuntimePermissions) { // Do not touch permissions fixed by the system. if (permission.isSystemFixed()) { Loading Loading @@ -384,7 +371,7 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup> return true; } public boolean revokeRuntimePermissions(boolean fixedByTheUser, String[] filterPermissions) { public boolean revokeRuntimePermissions(boolean fixedByTheUser) { final boolean isSharedUser = mPackageInfo.sharedUserId != null; final int uid = mPackageInfo.applicationInfo.uid; Loading @@ -392,12 +379,6 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup> // permissions, otherwise we toggle the app op corresponding // to the permission if the permission is granted to the app. for (Permission permission : mPermissions.values()) { if (filterPermissions != null && !ArrayUtils.contains( filterPermissions, permission.getName())) { continue; } if (mAppSupportsRuntimePermissions) { // Do not touch permissions fixed by the system. if (permission.isSystemFixed()) { Loading
src/com/android/packageinstaller/permission/model/PermissionApps.java +3 −3 Original line number Diff line number Diff line Loading @@ -313,15 +313,15 @@ public class PermissionApps { } public boolean areRuntimePermissionsGranted() { return mAppPermissionGroup.areRuntimePermissionsGranted(null); return mAppPermissionGroup.areRuntimePermissionsGranted(); } public void grantRuntimePermissions() { mAppPermissionGroup.grantRuntimePermissions(false, null); mAppPermissionGroup.grantRuntimePermissions(false); } public void revokeRuntimePermissions() { mAppPermissionGroup.revokeRuntimePermissions(false, null); mAppPermissionGroup.revokeRuntimePermissions(false); } public boolean isPolicyFixed() { Loading
src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java +1 −1 Original line number Diff line number Diff line Loading @@ -77,7 +77,7 @@ public class PermissionStatusReceiver extends BroadcastReceiver { for (AppPermissionGroup group : appPermissions.getPermissionGroups()) { if (Utils.shouldShowPermission(group)) { totalCount++; if (group.areRuntimePermissionsGranted(null)) { if (group.areRuntimePermissionsGranted()) { grantedCount++; if (Utils.OS_PKG.equals(group.getDeclaringPackage())) { Loading
src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java +5 −5 Original line number Diff line number Diff line Loading @@ -224,7 +224,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader } preference.setPersistent(false); preference.setEnabled(!group.isPolicyFixed()); preference.setChecked(group.areRuntimePermissionsGranted(null)); preference.setChecked(group.areRuntimePermissionsGranted()); if (isPlatform) { screen.addPreference(preference); Loading Loading @@ -281,7 +281,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader return false; } if (newValue == Boolean.TRUE) { group.grantRuntimePermissions(false, null); group.grantRuntimePermissions(false); } else { final boolean grantedByDefault = group.hasGrantedByDefaultPermission(); if (grantedByDefault || (!group.hasRuntimePermission() && !mHasConfirmedRevoke)) { Loading @@ -294,7 +294,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader @Override public void onClick(DialogInterface dialog, int which) { ((SwitchPreference) preference).setChecked(false); group.revokeRuntimePermissions(false, null); group.revokeRuntimePermissions(false); if (!grantedByDefault) { mHasConfirmedRevoke = true; } Loading @@ -303,7 +303,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader .show(); return false; } else { group.revokeRuntimePermissions(false, null); group.revokeRuntimePermissions(false); } } Loading Loading @@ -351,7 +351,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader SwitchPreference switchPref = (SwitchPreference) preference; AppPermissionGroup group = mAppPermissions.getPermissionGroup(switchPref.getKey()); if (group != null) { switchPref.setChecked(group.areRuntimePermissionsGranted(null)); switchPref.setChecked(group.areRuntimePermissionsGranted()); } } } Loading
src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java +7 −16 Original line number Diff line number Diff line Loading @@ -118,30 +118,21 @@ public class GrantPermissionsActivity extends OverlayTouchActivity if (!group.isUserFixed() && !group.isPolicyFixed()) { switch (permissionPolicy) { case DevicePolicyManager.PERMISSION_POLICY_AUTO_GRANT: { if (!group.areRuntimePermissionsGranted(mRequestedPermissions)) { group.grantRuntimePermissions(false, mRequestedPermissions); if (!group.areRuntimePermissionsGranted()) { group.grantRuntimePermissions(false); group.setPolicyFixed(); } } break; case DevicePolicyManager.PERMISSION_POLICY_AUTO_DENY: { if (group.areRuntimePermissionsGranted(mRequestedPermissions)) { group.revokeRuntimePermissions(false, mRequestedPermissions); if (!group.areRuntimePermissionsGranted()) { group.revokeRuntimePermissions(false); group.setPolicyFixed(); } } break; default: { if (group.areRuntimePermissionsGranted(null) && !group.areRuntimePermissionsGranted(mRequestedPermissions)) { // If the group is granted but requested permissions // in it not we auto grant the these permissions. group.grantRuntimePermissions(group.isUserFixed(), mRequestedPermissions); } else { mRequestGrantPermissionGroups.put(group.getName(), new GroupState(group)); } mRequestGrantPermissionGroups.put(group.getName(), new GroupState(group)); } break; } } else { Loading Loading @@ -235,10 +226,10 @@ public class GrantPermissionsActivity extends OverlayTouchActivity GroupState groupState = mRequestGrantPermissionGroups.get(name); if (groupState.mGroup != null) { if (granted) { groupState.mGroup.grantRuntimePermissions(doNotAskAgain, mRequestedPermissions); groupState.mGroup.grantRuntimePermissions(doNotAskAgain); groupState.mState = GroupState.STATE_ALLOWED; } else { groupState.mGroup.revokeRuntimePermissions(doNotAskAgain, mRequestedPermissions); groupState.mGroup.revokeRuntimePermissions(doNotAskAgain); groupState.mState = GroupState.STATE_DENIED; } updateGrantResults(groupState.mGroup); Loading