Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ba8328ad authored by Ian Pedowitz's avatar Ian Pedowitz Committed by Android Git Automerger
Browse files

am d7b72885: Revert "Show multi-permission UI in the requested order."

* commit 'd7b72885':
  Revert "Show multi-permission UI in the requested order."
parents c25b64a1 d7b72885
Loading
Loading
Loading
Loading
+28 −30
Original line number Diff line number Diff line
@@ -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;
                continue;
            }

            AppPermissionGroup group = AppPermissionGroup.create(mContext,
                    mPackageInfo, requestedPerm);
            if (group == null) {
                        break;
                continue;
            }

            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;
                    }
                }
        } 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);
            }
        }

+8 −10
Original line number Diff line number Diff line
@@ -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;
            }

            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);