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

Commit 6986f29b authored by Svetoslav Ganov's avatar Svetoslav Ganov
Browse files

Auto grant permissions in an already granted group.

bug:24074183

Change-Id: Iad6f9b7d5b83d0b0121796891bcd069658995a47
parent 86f1ee8c
Loading
Loading
Loading
Loading
+18 −2
Original line number Diff line number Diff line
@@ -104,7 +104,7 @@ public class GrantPermissionsActivity extends OverlayTouchActivity
            return;
        }

        mAppPermissions = new AppPermissions(this, callingPackageInfo, mRequestedPermissions, false,
        mAppPermissions = new AppPermissions(this, callingPackageInfo, null, false,
                new Runnable() {
                    @Override
                    public void run() {
@@ -113,6 +113,16 @@ public class GrantPermissionsActivity extends OverlayTouchActivity
                });

        for (AppPermissionGroup group : mAppPermissions.getPermissionGroups()) {
            boolean groupHasRequestedPermission = false;
            for (String requestedPermission : mRequestedPermissions) {
                if (group.hasPermission(requestedPermission)) {
                    groupHasRequestedPermission = true;
                    break;
                }
            }
            if (!groupHasRequestedPermission) {
                continue;
            }
            // We allow the user to choose only non-fixed permissions. A permission
            // is fixed either by device policy or the user denying with prejudice.
            if (!group.isUserFixed() && !group.isPolicyFixed()) {
@@ -132,7 +142,13 @@ public class GrantPermissionsActivity extends OverlayTouchActivity
                    } break;

                    default: {
                        mRequestGrantPermissionGroups.put(group.getName(), new GroupState(group));
                        if (!group.areRuntimePermissionsGranted()) {
                            mRequestGrantPermissionGroups.put(group.getName(),
                                    new GroupState(group));
                        } else {
                            group.grantRuntimePermissions(false);
                            updateGrantResults(group);
                        }
                    } break;
                }
            } else {