Loading src/com/android/packageinstaller/permission/model/AppPermissions.java +30 −28 Original line number Diff line number Diff line Loading @@ -19,18 +19,16 @@ package com.android.packageinstaller.permission.model; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.util.ArrayMap; import com.android.internal.util.ArrayUtils; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; public final class AppPermissions { private final ArrayList<AppPermissionGroup> mGroups = new ArrayList<>(); private final ArrayMap<String, AppPermissionGroup> mNameToGroupMap = new ArrayMap<>(); private final LinkedHashMap<String, AppPermissionGroup> mNameToGroupMap = new LinkedHashMap<>(); private final Context mContext; Loading Loading @@ -95,36 +93,40 @@ public final class AppPermissions { return; } for (int i = 0; i < mPackageInfo.requestedPermissions.length; i++) { String requestedPerm = mPackageInfo.requestedPermissions[i]; if (mFilterPermissions != null) { for (String filterPermission : mFilterPermissions) { for (String requestedPerm : mPackageInfo.requestedPermissions) { if (!filterPermission.equals(requestedPerm)) { continue; } if (hasGroupForPermission(requestedPerm)) { continue; break; } AppPermissionGroup group = AppPermissionGroup.create(mContext, mPackageInfo, requestedPerm); if (group == null) { continue; break; } mGroups.add(group); } if (!ArrayUtils.isEmpty(mFilterPermissions)) { final int groupCount = mGroups.size(); for (int i = groupCount - 1; i >= 0; i--) { AppPermissionGroup group = mGroups.get(i); boolean groupHasPermission = false; for (String filterPerm : mFilterPermissions) { if (group.hasPermission(filterPerm)) { groupHasPermission = true; break; } } if (!groupHasPermission) { mGroups.remove(i); } else { for (String requestedPerm : mPackageInfo.requestedPermissions) { if (hasGroupForPermission(requestedPerm)) { continue; } AppPermissionGroup group = AppPermissionGroup.create(mContext, mPackageInfo, requestedPerm); if (group == null) { continue; } mGroups.add(group); } } Loading src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java +10 −8 Original line number Diff line number Diff line Loading @@ -31,7 +31,6 @@ import android.hardware.camera2.utils.ArrayUtils; import android.os.Bundle; import android.text.SpannableString; import android.text.style.ForegroundColorSpan; import android.util.ArrayMap; import android.util.Log; import android.view.KeyEvent; import android.view.MotionEvent; Loading @@ -47,6 +46,7 @@ import com.android.packageinstaller.permission.utils.SafetyNetLogger; import com.android.packageinstaller.permission.utils.Utils; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; public class GrantPermissionsActivity extends OverlayTouchActivity Loading @@ -57,7 +57,7 @@ public class GrantPermissionsActivity extends OverlayTouchActivity private String[] mRequestedPermissions; private int[] mGrantResults; private ArrayMap<String, GroupState> mRequestGrantPermissionGroups = new ArrayMap<>(); private LinkedHashMap<String, GroupState> mRequestGrantPermissionGroups = new LinkedHashMap<>(); private GrantPermissionsViewHandler mViewHandler; private AppPermissions mAppPermissions; Loading Loading @@ -178,8 +178,8 @@ public class GrantPermissionsActivity extends OverlayTouchActivity private boolean showNextPermissionGroupGrantRequest() { final int groupCount = mRequestGrantPermissionGroups.size(); for (int i = 0; i < groupCount; i++) { GroupState groupState = mRequestGrantPermissionGroups.valueAt(i); int currentIndex = 0; for (GroupState groupState : mRequestGrantPermissionGroups.values()) { if (groupState.mState == GroupState.STATE_UNKNOWN) { CharSequence appLabel = mAppPermissions.getAppLabel(); SpannableString message = new SpannableString(getString( Loading @@ -206,11 +206,13 @@ public class GrantPermissionsActivity extends OverlayTouchActivity } int icon = groupState.mGroup.getIconResId(); mViewHandler.updateUi(groupState.mGroup.getName(), groupCount, i, mViewHandler.updateUi(groupState.mGroup.getName(), groupCount, currentIndex, Icon.createWithResource(resources, icon), message, groupState.mGroup.isUserSet()); return true; } currentIndex++; } return false; Loading Loading @@ -350,8 +352,8 @@ public class GrantPermissionsActivity extends OverlayTouchActivity final int groupCount = mRequestGrantPermissionGroups.size(); List<AppPermissionGroup> groups = new ArrayList<>(groupCount); for (int i = 0; i < groupCount; i++) { groups.add(mRequestGrantPermissionGroups.valueAt(i).mGroup); for (GroupState groupState : mRequestGrantPermissionGroups.values()) { groups.add(groupState.mGroup); } SafetyNetLogger.logPermissionsRequested(mAppPermissions.getPackageInfo(), groups); Loading Loading
src/com/android/packageinstaller/permission/model/AppPermissions.java +30 −28 Original line number Diff line number Diff line Loading @@ -19,18 +19,16 @@ package com.android.packageinstaller.permission.model; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.util.ArrayMap; import com.android.internal.util.ArrayUtils; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; public final class AppPermissions { private final ArrayList<AppPermissionGroup> mGroups = new ArrayList<>(); private final ArrayMap<String, AppPermissionGroup> mNameToGroupMap = new ArrayMap<>(); private final LinkedHashMap<String, AppPermissionGroup> mNameToGroupMap = new LinkedHashMap<>(); private final Context mContext; Loading Loading @@ -95,36 +93,40 @@ public final class AppPermissions { return; } for (int i = 0; i < mPackageInfo.requestedPermissions.length; i++) { String requestedPerm = mPackageInfo.requestedPermissions[i]; if (mFilterPermissions != null) { for (String filterPermission : mFilterPermissions) { for (String requestedPerm : mPackageInfo.requestedPermissions) { if (!filterPermission.equals(requestedPerm)) { continue; } if (hasGroupForPermission(requestedPerm)) { continue; break; } AppPermissionGroup group = AppPermissionGroup.create(mContext, mPackageInfo, requestedPerm); if (group == null) { continue; break; } mGroups.add(group); } if (!ArrayUtils.isEmpty(mFilterPermissions)) { final int groupCount = mGroups.size(); for (int i = groupCount - 1; i >= 0; i--) { AppPermissionGroup group = mGroups.get(i); boolean groupHasPermission = false; for (String filterPerm : mFilterPermissions) { if (group.hasPermission(filterPerm)) { groupHasPermission = true; break; } } if (!groupHasPermission) { mGroups.remove(i); } else { for (String requestedPerm : mPackageInfo.requestedPermissions) { if (hasGroupForPermission(requestedPerm)) { continue; } AppPermissionGroup group = AppPermissionGroup.create(mContext, mPackageInfo, requestedPerm); if (group == null) { continue; } mGroups.add(group); } } Loading
src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java +10 −8 Original line number Diff line number Diff line Loading @@ -31,7 +31,6 @@ import android.hardware.camera2.utils.ArrayUtils; import android.os.Bundle; import android.text.SpannableString; import android.text.style.ForegroundColorSpan; import android.util.ArrayMap; import android.util.Log; import android.view.KeyEvent; import android.view.MotionEvent; Loading @@ -47,6 +46,7 @@ import com.android.packageinstaller.permission.utils.SafetyNetLogger; import com.android.packageinstaller.permission.utils.Utils; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; public class GrantPermissionsActivity extends OverlayTouchActivity Loading @@ -57,7 +57,7 @@ public class GrantPermissionsActivity extends OverlayTouchActivity private String[] mRequestedPermissions; private int[] mGrantResults; private ArrayMap<String, GroupState> mRequestGrantPermissionGroups = new ArrayMap<>(); private LinkedHashMap<String, GroupState> mRequestGrantPermissionGroups = new LinkedHashMap<>(); private GrantPermissionsViewHandler mViewHandler; private AppPermissions mAppPermissions; Loading Loading @@ -178,8 +178,8 @@ public class GrantPermissionsActivity extends OverlayTouchActivity private boolean showNextPermissionGroupGrantRequest() { final int groupCount = mRequestGrantPermissionGroups.size(); for (int i = 0; i < groupCount; i++) { GroupState groupState = mRequestGrantPermissionGroups.valueAt(i); int currentIndex = 0; for (GroupState groupState : mRequestGrantPermissionGroups.values()) { if (groupState.mState == GroupState.STATE_UNKNOWN) { CharSequence appLabel = mAppPermissions.getAppLabel(); SpannableString message = new SpannableString(getString( Loading @@ -206,11 +206,13 @@ public class GrantPermissionsActivity extends OverlayTouchActivity } int icon = groupState.mGroup.getIconResId(); mViewHandler.updateUi(groupState.mGroup.getName(), groupCount, i, mViewHandler.updateUi(groupState.mGroup.getName(), groupCount, currentIndex, Icon.createWithResource(resources, icon), message, groupState.mGroup.isUserSet()); return true; } currentIndex++; } return false; Loading Loading @@ -350,8 +352,8 @@ public class GrantPermissionsActivity extends OverlayTouchActivity final int groupCount = mRequestGrantPermissionGroups.size(); List<AppPermissionGroup> groups = new ArrayList<>(groupCount); for (int i = 0; i < groupCount; i++) { groups.add(mRequestGrantPermissionGroups.valueAt(i).mGroup); for (GroupState groupState : mRequestGrantPermissionGroups.values()) { groups.add(groupState.mGroup); } SafetyNetLogger.logPermissionsRequested(mAppPermissions.getPackageInfo(), groups); Loading