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

Commit 6f656a52 authored by mrulhania's avatar mrulhania Committed by Manjeet Rulhania
Browse files

Fix deviceId when checking permission in getPermissionRequestState API

For virtual devices, we need a context with virtual device id
instead of the context available in service.

Fix: 390701599
Test: manual
Test: test issue with ag/31507836
FLAG: EXEMPT bug fix
Change-Id: I368418e8650284fd429eca1df56f4960506cdbe2
parent f86c511e
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -271,8 +271,9 @@ public class PermissionManagerService extends IPermissionManager.Stub {
            @NonNull String permissionName, int deviceId) {
        Objects.requireNonNull(permissionName, "permission can't be null.");
        Objects.requireNonNull(packageName, "package name can't be null.");

        return mPermissionManagerServiceImpl.getPermissionRequestState(packageName, permissionName,
                getPersistentDeviceId(deviceId));
                deviceId, getPersistentDeviceId(deviceId));
    }

    private String getPersistentDeviceId(int deviceId) {
+2 −1
Original line number Diff line number Diff line
@@ -1014,7 +1014,8 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt
    }

    @Override
    public int getPermissionRequestState(String packageName, String permName, String deviceId) {
    public int getPermissionRequestState(String packageName, String permName, int deviceId,
            String persistentDeviceId) {
        throw new IllegalStateException("getPermissionRequestState is not supported.");
    }

+1 −1
Original line number Diff line number Diff line
@@ -415,7 +415,7 @@ public interface PermissionManagerServiceInterface extends PermissionManagerInte
     *  for permission request permission flow.
     */
    int getPermissionRequestState(@NonNull String packageName, @NonNull String permName,
            @NonNull String deviceId);
            int deviceId, @NonNull String persistentDeviceId);

    /**
     * Gets the permission states for requested package, persistent device and user.
+5 −3
Original line number Diff line number Diff line
@@ -247,10 +247,12 @@ public class PermissionManagerServiceLoggingDecorator implements PermissionManag
    }

    @Override
    public int getPermissionRequestState(String packageName, String permName, String deviceId) {
    public int getPermissionRequestState(String packageName, String permName, int deviceId,
            String persistentDeviceId) {
        Log.i(LOG_TAG, "checkUidPermissionState(permName = " + permName + ", deviceId = "
                + deviceId + ", packageName = " + packageName + ")");
        return mService.getPermissionRequestState(packageName, permName, deviceId);
                + persistentDeviceId + ", packageName = " + packageName + ")");
        return mService.getPermissionRequestState(
                packageName, permName, deviceId, persistentDeviceId);
    }

    @Override
+4 −2
Original line number Diff line number Diff line
@@ -319,8 +319,10 @@ public class PermissionManagerServiceTestingShim implements PermissionManagerSer
    }

    @Override
    public int getPermissionRequestState(String packageName, String permName, String deviceId) {
        return mNewImplementation.getPermissionRequestState(packageName, permName, deviceId);
    public int getPermissionRequestState(String packageName, String permName, int deviceId,
            String persistentDeviceId) {
        return mNewImplementation.getPermissionRequestState(
                packageName, permName, deviceId, persistentDeviceId);
    }

    @Override
Loading