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

Commit 95717890 authored by Evan Severson's avatar Evan Severson
Browse files

Do not mark user_set on one-time

Feedback has told us that users expect the platform to treat one-time as
not a decision by the user. This means that selecting one-time in the
grant dialog or selecting Ask in settings will act as if the user never
made a decision after revocation.

Test: atest CtsPermission3TestCases
Bug: 151910236
Change-Id: I205d9259640d29c5c0bf73e1019654508606aa70
parent 0a70d12d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -663,6 +663,7 @@ public final class PermissionControllerServiceImpl extends PermissionControllerL
                logOneTimeSessionRevoke(packageName, uid, group, requestId);
                group.revokeRuntimePermissions(false);
            }
            group.setUserSet(false);
            group.persistChanges(false);
        }
    }
+3 −2
Original line number Diff line number Diff line
@@ -623,7 +623,8 @@ object KotlinUtils {
        // Take a note that the user fixed the permission, if applicable.
        newFlags = if (userFixed) newFlags.setFlag(PackageManager.FLAG_PERMISSION_USER_FIXED)
        else newFlags.clearFlag(PackageManager.FLAG_PERMISSION_USER_FIXED)
        newFlags = newFlags.setFlag(PackageManager.FLAG_PERMISSION_USER_SET)
        newFlags = if (oneTime) newFlags.clearFlag(PackageManager.FLAG_PERMISSION_USER_SET)
        else newFlags.setFlag(PackageManager.FLAG_PERMISSION_USER_SET)
        newFlags = if (oneTime) newFlags.setFlag(PackageManager.FLAG_PERMISSION_ONE_TIME)
        else newFlags.clearFlag(PackageManager.FLAG_PERMISSION_ONE_TIME)