diff options
author | Ian Pedowitz <ijpedowitz@google.com> | 2015-08-21 17:33:02 +0000 |
---|---|---|
committer | The Android Automerger <android-build@google.com> | 2015-08-21 10:53:20 -0700 |
commit | cc257aa7960422795202de35ddc691fe2bce4e6c (patch) | |
tree | f39759200479d79430438534379028d998bec836 | |
parent | 32c4cb1558a9446d538ab1db9647d355ba85a6bd (diff) | |
download | android_packages_apps_PackageInstaller-cc257aa7960422795202de35ddc691fe2bce4e6c.tar.gz android_packages_apps_PackageInstaller-cc257aa7960422795202de35ddc691fe2bce4e6c.tar.bz2 android_packages_apps_PackageInstaller-cc257aa7960422795202de35ddc691fe2bce4e6c.zip |
Revert "Show multi-permission UI in the requested order."
This reverts commit dda78230999da573318594c7cfcdbc738bab864e.
Bug: 23314383
Bug: 23397858
Change-Id: I8d06936ad8a51299148f0a311da81d8868840e78
-rw-r--r-- | src/com/android/packageinstaller/permission/model/AppPermissions.java | 58 | ||||
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java | 18 |
2 files changed, 36 insertions, 40 deletions
diff --git a/src/com/android/packageinstaller/permission/model/AppPermissions.java b/src/com/android/packageinstaller/permission/model/AppPermissions.java index 125a6bd8..bca06c0c 100644 --- a/src/com/android/packageinstaller/permission/model/AppPermissions.java +++ b/src/com/android/packageinstaller/permission/model/AppPermissions.java @@ -19,16 +19,18 @@ 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 LinkedHashMap<String, AppPermissionGroup> mNameToGroupMap = new LinkedHashMap<>(); + private final ArrayMap<String, AppPermissionGroup> mNameToGroupMap = new ArrayMap<>(); private final Context mContext; @@ -93,40 +95,36 @@ public final class AppPermissions { return; } - if (mFilterPermissions != null) { - for (String filterPermission : mFilterPermissions) { - for (String requestedPerm : mPackageInfo.requestedPermissions) { - if (!filterPermission.equals(requestedPerm)) { - continue; - } + for (int i = 0; i < mPackageInfo.requestedPermissions.length; i++) { + String requestedPerm = mPackageInfo.requestedPermissions[i]; - if (hasGroupForPermission(requestedPerm)) { - break; - } + if (hasGroupForPermission(requestedPerm)) { + continue; + } + + AppPermissionGroup group = AppPermissionGroup.create(mContext, + mPackageInfo, requestedPerm); + if (group == null) { + continue; + } - AppPermissionGroup group = AppPermissionGroup.create(mContext, - mPackageInfo, requestedPerm); - if (group == null) { + 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; } - - mGroups.add(group); - break; } - } - } else { - for (String requestedPerm : mPackageInfo.requestedPermissions) { - if (hasGroupForPermission(requestedPerm)) { - continue; + if (!groupHasPermission) { + mGroups.remove(i); } - - AppPermissionGroup group = AppPermissionGroup.create(mContext, - mPackageInfo, requestedPerm); - if (group == null) { - continue; - } - - mGroups.add(group); } } diff --git a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java index 0c087350..a61432e3 100644 --- a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java +++ b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java @@ -31,6 +31,7 @@ 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; @@ -46,7 +47,6 @@ 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 @@ -57,7 +57,7 @@ public class GrantPermissionsActivity extends OverlayTouchActivity private String[] mRequestedPermissions; private int[] mGrantResults; - private LinkedHashMap<String, GroupState> mRequestGrantPermissionGroups = new LinkedHashMap<>(); + private ArrayMap<String, GroupState> mRequestGrantPermissionGroups = new ArrayMap<>(); private GrantPermissionsViewHandler mViewHandler; private AppPermissions mAppPermissions; @@ -187,8 +187,8 @@ public class GrantPermissionsActivity extends OverlayTouchActivity private boolean showNextPermissionGroupGrantRequest() { final int groupCount = mRequestGrantPermissionGroups.size(); - int currentIndex = 0; - for (GroupState groupState : mRequestGrantPermissionGroups.values()) { + for (int i = 0; i < groupCount; i++) { + GroupState groupState = mRequestGrantPermissionGroups.valueAt(i); if (groupState.mState == GroupState.STATE_UNKNOWN) { CharSequence appLabel = mAppPermissions.getAppLabel(); SpannableString message = new SpannableString(getString( @@ -215,13 +215,11 @@ public class GrantPermissionsActivity extends OverlayTouchActivity } int icon = groupState.mGroup.getIconResId(); - mViewHandler.updateUi(groupState.mGroup.getName(), groupCount, currentIndex, + mViewHandler.updateUi(groupState.mGroup.getName(), groupCount, i, Icon.createWithResource(resources, icon), message, groupState.mGroup.isUserSet()); - return true; + return true; } - - currentIndex++; } return false; @@ -361,8 +359,8 @@ public class GrantPermissionsActivity extends OverlayTouchActivity final int groupCount = mRequestGrantPermissionGroups.size(); List<AppPermissionGroup> groups = new ArrayList<>(groupCount); - for (GroupState groupState : mRequestGrantPermissionGroups.values()) { - groups.add(groupState.mGroup); + for (int i = 0; i < groupCount; i++) { + groups.add(mRequestGrantPermissionGroups.valueAt(i).mGroup); } SafetyNetLogger.logPermissionsRequested(mAppPermissions.getPackageInfo(), groups); |