DO NOT MERGE Implement suggested changes in API review for permission mainline.
Test: build Fixes: 150877494 Change-Id: Ieca5f7a46241032f6722bb379fc08206b9600ddc
This commit is contained in:
@@ -40,7 +40,7 @@ public interface RuntimePermissionsPersistence {
|
||||
* @return the runtime permissions read
|
||||
*/
|
||||
@Nullable
|
||||
RuntimePermissionsState readAsUser(@NonNull UserHandle user);
|
||||
RuntimePermissionsState readForUser(@NonNull UserHandle user);
|
||||
|
||||
/**
|
||||
* Write the runtime permissions to persistence.
|
||||
@@ -50,7 +50,8 @@ public interface RuntimePermissionsPersistence {
|
||||
* @param runtimePermissions the runtime permissions to write
|
||||
* @param user the user to write for
|
||||
*/
|
||||
void writeAsUser(@NonNull RuntimePermissionsState runtimePermissions, @NonNull UserHandle user);
|
||||
void writeForUser(@NonNull RuntimePermissionsState runtimePermissions,
|
||||
@NonNull UserHandle user);
|
||||
|
||||
/**
|
||||
* Delete the runtime permissions from persistence.
|
||||
@@ -59,7 +60,7 @@ public interface RuntimePermissionsPersistence {
|
||||
*
|
||||
* @param user the user to delete for
|
||||
*/
|
||||
void deleteAsUser(@NonNull UserHandle user);
|
||||
void deleteForUser(@NonNull UserHandle user);
|
||||
|
||||
/**
|
||||
* Create a new instance of {@link RuntimePermissionsPersistence} implementation.
|
||||
|
||||
@@ -67,7 +67,7 @@ public class RuntimePermissionsPersistenceImpl implements RuntimePermissionsPers
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public RuntimePermissionsState readAsUser(@NonNull UserHandle user) {
|
||||
public RuntimePermissionsState readForUser(@NonNull UserHandle user) {
|
||||
File file = getFile(user);
|
||||
try (FileInputStream inputStream = new AtomicFile(file).openRead()) {
|
||||
XmlPullParser parser = Xml.newPullParser();
|
||||
@@ -172,7 +172,7 @@ public class RuntimePermissionsPersistenceImpl implements RuntimePermissionsPers
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeAsUser(@NonNull RuntimePermissionsState runtimePermissions,
|
||||
public void writeForUser(@NonNull RuntimePermissionsState runtimePermissions,
|
||||
@NonNull UserHandle user) {
|
||||
File file = getFile(user);
|
||||
AtomicFile atomicFile = new AtomicFile(file);
|
||||
@@ -252,7 +252,7 @@ public class RuntimePermissionsPersistenceImpl implements RuntimePermissionsPers
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteAsUser(@NonNull UserHandle user) {
|
||||
public void deleteForUser(@NonNull UserHandle user) {
|
||||
getFile(user).delete();
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ import android.annotation.SystemApi.Client;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* State of all runtime permissions.
|
||||
@@ -61,6 +62,14 @@ public final class RuntimePermissionsState {
|
||||
@NonNull
|
||||
private final Map<String, List<PermissionState>> mSharedUserPermissions;
|
||||
|
||||
/**
|
||||
* Create a new instance of this class.
|
||||
*
|
||||
* @param version the version of the runtime permissions
|
||||
* @param fingerprint the fingerprint of the runtime permissions
|
||||
* @param packagePermissions the runtime permissions by packages
|
||||
* @param sharedUserPermissions the runtime permissions by shared users
|
||||
*/
|
||||
public RuntimePermissionsState(int version, @Nullable String fingerprint,
|
||||
@NonNull Map<String, List<PermissionState>> packagePermissions,
|
||||
@NonNull Map<String, List<PermissionState>> sharedUserPermissions) {
|
||||
@@ -70,32 +79,72 @@ public final class RuntimePermissionsState {
|
||||
mSharedUserPermissions = sharedUserPermissions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the version of the runtime permissions.
|
||||
*
|
||||
* @return the version of the runtime permissions
|
||||
*/
|
||||
public int getVersion() {
|
||||
return mVersion;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the fingerprint of the runtime permissions.
|
||||
*
|
||||
* @return the fingerprint of the runtime permissions
|
||||
*/
|
||||
@Nullable
|
||||
public String getFingerprint() {
|
||||
return mFingerprint;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the runtime permissions by packages.
|
||||
*
|
||||
* @return the runtime permissions by packages
|
||||
*/
|
||||
@NonNull
|
||||
public Map<String, List<PermissionState>> getPackagePermissions() {
|
||||
return mPackagePermissions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the runtime permissions by shared users.
|
||||
*
|
||||
* @return the runtime permissions by shared users
|
||||
*/
|
||||
@NonNull
|
||||
public Map<String, List<PermissionState>> getSharedUserPermissions() {
|
||||
return mSharedUserPermissions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object object) {
|
||||
if (this == object) {
|
||||
return true;
|
||||
}
|
||||
if (object == null || getClass() != object.getClass()) {
|
||||
return false;
|
||||
}
|
||||
RuntimePermissionsState that = (RuntimePermissionsState) object;
|
||||
return mVersion == that.mVersion
|
||||
&& Objects.equals(mFingerprint, that.mFingerprint)
|
||||
&& Objects.equals(mPackagePermissions, that.mPackagePermissions)
|
||||
&& Objects.equals(mSharedUserPermissions, that.mSharedUserPermissions);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(mVersion, mFingerprint, mPackagePermissions, mSharedUserPermissions);
|
||||
}
|
||||
|
||||
/**
|
||||
* State of a single permission.
|
||||
*/
|
||||
public static class PermissionState {
|
||||
public static final class PermissionState {
|
||||
|
||||
/**
|
||||
* Name of the permission.
|
||||
* The name of the permission.
|
||||
*/
|
||||
@NonNull
|
||||
private final String mName;
|
||||
@@ -106,27 +155,68 @@ public final class RuntimePermissionsState {
|
||||
private final boolean mGranted;
|
||||
|
||||
/**
|
||||
* Flags of the permission.
|
||||
* The flags of the permission.
|
||||
*/
|
||||
private final int mFlags;
|
||||
|
||||
/**
|
||||
* Create a new instance of this class.
|
||||
*
|
||||
* @param name the name of the permission
|
||||
* @param granted whether the permission is granted
|
||||
* @param flags the flags of the permission
|
||||
*/
|
||||
public PermissionState(@NonNull String name, boolean granted, int flags) {
|
||||
mName = name;
|
||||
mGranted = granted;
|
||||
mFlags = flags;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the name of the permission.
|
||||
*
|
||||
* @return the name of the permission
|
||||
*/
|
||||
@NonNull
|
||||
public String getName() {
|
||||
return mName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get whether the permission is granted.
|
||||
*
|
||||
* @return whether the permission is granted
|
||||
*/
|
||||
public boolean isGranted() {
|
||||
return mGranted;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the flags of the permission.
|
||||
*
|
||||
* @return the flags of the permission
|
||||
*/
|
||||
public int getFlags() {
|
||||
return mFlags;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object object) {
|
||||
if (this == object) {
|
||||
return true;
|
||||
}
|
||||
if (object == null || getClass() != object.getClass()) {
|
||||
return false;
|
||||
}
|
||||
PermissionState that = (PermissionState) object;
|
||||
return mGranted == that.mGranted
|
||||
&& mFlags == that.mFlags
|
||||
&& Objects.equals(mName, that.mName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(mName, mGranted, mFlags);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ public interface RolesPersistence {
|
||||
* @return the roles read
|
||||
*/
|
||||
@Nullable
|
||||
RolesState readAsUser(@NonNull UserHandle user);
|
||||
RolesState readForUser(@NonNull UserHandle user);
|
||||
|
||||
/**
|
||||
* Write the roles to persistence.
|
||||
@@ -50,7 +50,7 @@ public interface RolesPersistence {
|
||||
* @param roles the roles to write
|
||||
* @param user the user to write for
|
||||
*/
|
||||
void writeAsUser(@NonNull RolesState roles, @NonNull UserHandle user);
|
||||
void writeForUser(@NonNull RolesState roles, @NonNull UserHandle user);
|
||||
|
||||
/**
|
||||
* Delete the roles from persistence.
|
||||
@@ -59,7 +59,7 @@ public interface RolesPersistence {
|
||||
*
|
||||
* @param user the user to delete for
|
||||
*/
|
||||
void deleteAsUser(@NonNull UserHandle user);
|
||||
void deleteForUser(@NonNull UserHandle user);
|
||||
|
||||
/**
|
||||
* Create a new instance of {@link RolesPersistence} implementation.
|
||||
|
||||
@@ -65,7 +65,7 @@ public class RolesPersistenceImpl implements RolesPersistence {
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public RolesState readAsUser(@NonNull UserHandle user) {
|
||||
public RolesState readForUser(@NonNull UserHandle user) {
|
||||
File file = getFile(user);
|
||||
try (FileInputStream inputStream = new AtomicFile(file).openRead()) {
|
||||
XmlPullParser parser = Xml.newPullParser();
|
||||
@@ -146,7 +146,7 @@ public class RolesPersistenceImpl implements RolesPersistence {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeAsUser(@NonNull RolesState roles, @NonNull UserHandle user) {
|
||||
public void writeForUser(@NonNull RolesState roles, @NonNull UserHandle user) {
|
||||
File file = getFile(user);
|
||||
AtomicFile atomicFile = new AtomicFile(file);
|
||||
FileOutputStream outputStream = null;
|
||||
@@ -205,7 +205,7 @@ public class RolesPersistenceImpl implements RolesPersistence {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteAsUser(@NonNull UserHandle user) {
|
||||
public void deleteForUser(@NonNull UserHandle user) {
|
||||
getFile(user).delete();
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ import android.annotation.SystemApi;
|
||||
import android.annotation.SystemApi.Client;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
@@ -50,6 +51,13 @@ public final class RolesState {
|
||||
@NonNull
|
||||
private final Map<String, Set<String>> mRoles;
|
||||
|
||||
/**
|
||||
* Create a new instance of this class.
|
||||
*
|
||||
* @param version the version of the roles
|
||||
* @param packagesHash the hash of all packages in the system
|
||||
* @param roles the roles
|
||||
*/
|
||||
public RolesState(int version, @Nullable String packagesHash,
|
||||
@NonNull Map<String, Set<String>> roles) {
|
||||
mVersion = version;
|
||||
@@ -57,17 +65,51 @@ public final class RolesState {
|
||||
mRoles = roles;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the version of the roles.
|
||||
*
|
||||
* @return the version of the roles
|
||||
*/
|
||||
public int getVersion() {
|
||||
return mVersion;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the hash of all packages in the system.
|
||||
*
|
||||
* @return the hash of all packages in the system
|
||||
*/
|
||||
@Nullable
|
||||
public String getPackagesHash() {
|
||||
return mPackagesHash;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the roles.
|
||||
*
|
||||
* @return the roles
|
||||
*/
|
||||
@NonNull
|
||||
public Map<String, Set<String>> getRoles() {
|
||||
return mRoles;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object object) {
|
||||
if (this == object) {
|
||||
return true;
|
||||
}
|
||||
if (object == null || getClass() != object.getClass()) {
|
||||
return false;
|
||||
}
|
||||
RolesState that = (RolesState) object;
|
||||
return mVersion == that.mVersion
|
||||
&& Objects.equals(mPackagesHash, that.mPackagesHash)
|
||||
&& Objects.equals(mRoles, that.mRoles);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(mVersion, mPackagesHash, mRoles);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -231,6 +231,7 @@ package android {
|
||||
field public static final String UPDATE_APP_OPS_STATS = "android.permission.UPDATE_APP_OPS_STATS";
|
||||
field public static final String UPDATE_LOCK = "android.permission.UPDATE_LOCK";
|
||||
field public static final String UPDATE_TIME_ZONE_RULES = "android.permission.UPDATE_TIME_ZONE_RULES";
|
||||
field public static final String UPGRADE_RUNTIME_PERMISSIONS = "android.permission.UPGRADE_RUNTIME_PERMISSIONS";
|
||||
field public static final String USER_ACTIVITY = "android.permission.USER_ACTIVITY";
|
||||
field public static final String USE_RESERVED_DISK = "android.permission.USE_RESERVED_DISK";
|
||||
field public static final String WHITELIST_RESTRICTED_PERMISSIONS = "android.permission.WHITELIST_RESTRICTED_PERMISSIONS";
|
||||
@@ -8948,7 +8949,7 @@ package android.permission {
|
||||
}
|
||||
|
||||
public final class PermissionManager {
|
||||
method @IntRange(from=0) @RequiresPermission(anyOf={android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY, "android.permission.UPGRADE_RUNTIME_PERMISSIONS"}) public int getRuntimePermissionsVersion();
|
||||
method @IntRange(from=0) @RequiresPermission(anyOf={android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY, android.Manifest.permission.UPGRADE_RUNTIME_PERMISSIONS}) public int getRuntimePermissionsVersion();
|
||||
method @NonNull public java.util.List<android.permission.PermissionManager.SplitPermissionInfo> getSplitPermissions();
|
||||
method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToEnabledCarrierApps(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
|
||||
method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToEnabledImsServices(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
|
||||
@@ -8956,7 +8957,7 @@ package android.permission {
|
||||
method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToLuiApp(@NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
|
||||
method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void revokeDefaultPermissionsFromDisabledTelephonyDataServices(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
|
||||
method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void revokeDefaultPermissionsFromLuiApps(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY, "android.permission.UPGRADE_RUNTIME_PERMISSIONS"}) public void setRuntimePermissionsVersion(@IntRange(from=0) int);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY, android.Manifest.permission.UPGRADE_RUNTIME_PERMISSIONS}) public void setRuntimePermissionsVersion(@IntRange(from=0) int);
|
||||
method @RequiresPermission(android.Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS) public void startOneTimePermissionSession(@NonNull String, long, int, int);
|
||||
method @RequiresPermission(android.Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS) public void stopOneTimePermissionSession(@NonNull String);
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ package android {
|
||||
field public static final String REMOVE_TASKS = "android.permission.REMOVE_TASKS";
|
||||
field public static final String SUSPEND_APPS = "android.permission.SUSPEND_APPS";
|
||||
field public static final String TEST_MANAGE_ROLLBACKS = "android.permission.TEST_MANAGE_ROLLBACKS";
|
||||
field public static final String UPGRADE_RUNTIME_PERMISSIONS = "android.permission.UPGRADE_RUNTIME_PERMISSIONS";
|
||||
field public static final String WRITE_DEVICE_CONFIG = "android.permission.WRITE_DEVICE_CONFIG";
|
||||
field @Deprecated public static final String WRITE_MEDIA_STORAGE = "android.permission.WRITE_MEDIA_STORAGE";
|
||||
field public static final String WRITE_OBB = "android.permission.WRITE_OBB";
|
||||
@@ -2797,9 +2798,9 @@ package android.permission {
|
||||
}
|
||||
|
||||
public final class PermissionManager {
|
||||
method @IntRange(from=0) @RequiresPermission(anyOf={"android.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY", "android.permission.UPGRADE_RUNTIME_PERMISSIONS"}) public int getRuntimePermissionsVersion();
|
||||
method @IntRange(from=0) @RequiresPermission(anyOf={"android.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY", android.Manifest.permission.UPGRADE_RUNTIME_PERMISSIONS}) public int getRuntimePermissionsVersion();
|
||||
method @NonNull public java.util.List<android.permission.PermissionManager.SplitPermissionInfo> getSplitPermissions();
|
||||
method @RequiresPermission(anyOf={"android.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY", "android.permission.UPGRADE_RUNTIME_PERMISSIONS"}) public void setRuntimePermissionsVersion(@IntRange(from=0) int);
|
||||
method @RequiresPermission(anyOf={"android.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY", android.Manifest.permission.UPGRADE_RUNTIME_PERMISSIONS}) public void setRuntimePermissionsVersion(@IntRange(from=0) int);
|
||||
}
|
||||
|
||||
public static final class PermissionManager.SplitPermissionInfo {
|
||||
|
||||
@@ -3726,7 +3726,8 @@
|
||||
<permission android:name="android.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY"
|
||||
android:protectionLevel="signature|installer" />
|
||||
|
||||
<!-- @hide Allows an application to upgrade runtime permissions. -->
|
||||
<!-- @SystemApi @TestApi Allows an application to upgrade runtime permissions.
|
||||
@hide -->
|
||||
<permission android:name="android.permission.UPGRADE_RUNTIME_PERMISSIONS"
|
||||
android:protectionLevel="signature" />
|
||||
|
||||
|
||||
@@ -3,9 +3,9 @@ package com.android.permission.persistence {
|
||||
|
||||
public interface RuntimePermissionsPersistence {
|
||||
method @NonNull public static com.android.permission.persistence.RuntimePermissionsPersistence createInstance();
|
||||
method public void deleteAsUser(@NonNull android.os.UserHandle);
|
||||
method @Nullable public com.android.permission.persistence.RuntimePermissionsState readAsUser(@NonNull android.os.UserHandle);
|
||||
method public void writeAsUser(@NonNull com.android.permission.persistence.RuntimePermissionsState, @NonNull android.os.UserHandle);
|
||||
method public void deleteForUser(@NonNull android.os.UserHandle);
|
||||
method @Nullable public com.android.permission.persistence.RuntimePermissionsState readForUser(@NonNull android.os.UserHandle);
|
||||
method public void writeForUser(@NonNull com.android.permission.persistence.RuntimePermissionsState, @NonNull android.os.UserHandle);
|
||||
}
|
||||
|
||||
public final class RuntimePermissionsState {
|
||||
@@ -17,7 +17,7 @@ package com.android.permission.persistence {
|
||||
field public static final int NO_VERSION = -1; // 0xffffffff
|
||||
}
|
||||
|
||||
public static class RuntimePermissionsState.PermissionState {
|
||||
public static final class RuntimePermissionsState.PermissionState {
|
||||
ctor public RuntimePermissionsState.PermissionState(@NonNull String, boolean, int);
|
||||
method public int getFlags();
|
||||
method @NonNull public String getName();
|
||||
@@ -30,9 +30,9 @@ package com.android.role.persistence {
|
||||
|
||||
public interface RolesPersistence {
|
||||
method @NonNull public static com.android.role.persistence.RolesPersistence createInstance();
|
||||
method public void deleteAsUser(@NonNull android.os.UserHandle);
|
||||
method @Nullable public com.android.role.persistence.RolesState readAsUser(@NonNull android.os.UserHandle);
|
||||
method public void writeAsUser(@NonNull com.android.role.persistence.RolesState, @NonNull android.os.UserHandle);
|
||||
method public void deleteForUser(@NonNull android.os.UserHandle);
|
||||
method @Nullable public com.android.role.persistence.RolesState readForUser(@NonNull android.os.UserHandle);
|
||||
method public void writeForUser(@NonNull com.android.role.persistence.RolesState, @NonNull android.os.UserHandle);
|
||||
}
|
||||
|
||||
public final class RolesState {
|
||||
|
||||
@@ -5426,7 +5426,7 @@ public final class Settings {
|
||||
packagePermissions, sharedUserPermissions);
|
||||
}
|
||||
|
||||
mPersistence.writeAsUser(runtimePermissions, UserHandle.of(userId));
|
||||
mPersistence.writeForUser(runtimePermissions, UserHandle.of(userId));
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@@ -5480,12 +5480,12 @@ public final class Settings {
|
||||
}
|
||||
|
||||
public void deleteUserRuntimePermissionsFile(int userId) {
|
||||
mPersistence.deleteAsUser(UserHandle.of(userId));
|
||||
mPersistence.deleteForUser(UserHandle.of(userId));
|
||||
}
|
||||
|
||||
@GuardedBy("Settings.this.mLock")
|
||||
public void readStateForUserSyncLPr(int userId) {
|
||||
RuntimePermissionsState runtimePermissions = mPersistence.readAsUser(UserHandle.of(
|
||||
RuntimePermissionsState runtimePermissions = mPersistence.readForUser(UserHandle.of(
|
||||
userId));
|
||||
if (runtimePermissions == null) {
|
||||
readLegacyStateForUserSyncLPr(userId);
|
||||
|
||||
@@ -364,12 +364,12 @@ public class RoleUserState {
|
||||
(Map<String, Set<String>>) (Map<String, ?>) snapshotRolesLocked());
|
||||
}
|
||||
|
||||
mPersistence.writeAsUser(roles, UserHandle.of(mUserId));
|
||||
mPersistence.writeForUser(roles, UserHandle.of(mUserId));
|
||||
}
|
||||
|
||||
private void readFile() {
|
||||
synchronized (mLock) {
|
||||
RolesState roles = mPersistence.readAsUser(UserHandle.of(mUserId));
|
||||
RolesState roles = mPersistence.readForUser(UserHandle.of(mUserId));
|
||||
if (roles == null) {
|
||||
readLegacyFileLocked();
|
||||
scheduleWriteFileLocked();
|
||||
@@ -545,7 +545,7 @@ public class RoleUserState {
|
||||
throw new IllegalStateException("This RoleUserState has already been destroyed");
|
||||
}
|
||||
mWriteHandler.removeCallbacksAndMessages(null);
|
||||
mPersistence.deleteAsUser(UserHandle.of(mUserId));
|
||||
mPersistence.deleteForUser(UserHandle.of(mUserId));
|
||||
mDestroyed = true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user