Merge "DO NOT MERGE Implement suggested changes in API review for permission mainline." into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-03-11 05:40:27 +00:00
committed by Android (Google) Code Review
12 changed files with 169 additions and 33 deletions

View File

@@ -40,7 +40,7 @@ public interface RuntimePermissionsPersistence {
* @return the runtime permissions read * @return the runtime permissions read
*/ */
@Nullable @Nullable
RuntimePermissionsState readAsUser(@NonNull UserHandle user); RuntimePermissionsState readForUser(@NonNull UserHandle user);
/** /**
* Write the runtime permissions to persistence. * Write the runtime permissions to persistence.
@@ -50,7 +50,8 @@ public interface RuntimePermissionsPersistence {
* @param runtimePermissions the runtime permissions to write * @param runtimePermissions the runtime permissions to write
* @param user the user to write for * @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. * Delete the runtime permissions from persistence.
@@ -59,7 +60,7 @@ public interface RuntimePermissionsPersistence {
* *
* @param user the user to delete for * @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. * Create a new instance of {@link RuntimePermissionsPersistence} implementation.

View File

@@ -67,7 +67,7 @@ public class RuntimePermissionsPersistenceImpl implements RuntimePermissionsPers
@Nullable @Nullable
@Override @Override
public RuntimePermissionsState readAsUser(@NonNull UserHandle user) { public RuntimePermissionsState readForUser(@NonNull UserHandle user) {
File file = getFile(user); File file = getFile(user);
try (FileInputStream inputStream = new AtomicFile(file).openRead()) { try (FileInputStream inputStream = new AtomicFile(file).openRead()) {
XmlPullParser parser = Xml.newPullParser(); XmlPullParser parser = Xml.newPullParser();
@@ -172,7 +172,7 @@ public class RuntimePermissionsPersistenceImpl implements RuntimePermissionsPers
} }
@Override @Override
public void writeAsUser(@NonNull RuntimePermissionsState runtimePermissions, public void writeForUser(@NonNull RuntimePermissionsState runtimePermissions,
@NonNull UserHandle user) { @NonNull UserHandle user) {
File file = getFile(user); File file = getFile(user);
AtomicFile atomicFile = new AtomicFile(file); AtomicFile atomicFile = new AtomicFile(file);
@@ -252,7 +252,7 @@ public class RuntimePermissionsPersistenceImpl implements RuntimePermissionsPers
} }
@Override @Override
public void deleteAsUser(@NonNull UserHandle user) { public void deleteForUser(@NonNull UserHandle user) {
getFile(user).delete(); getFile(user).delete();
} }

View File

@@ -23,6 +23,7 @@ import android.annotation.SystemApi.Client;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
/** /**
* State of all runtime permissions. * State of all runtime permissions.
@@ -61,6 +62,14 @@ public final class RuntimePermissionsState {
@NonNull @NonNull
private final Map<String, List<PermissionState>> mSharedUserPermissions; 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, public RuntimePermissionsState(int version, @Nullable String fingerprint,
@NonNull Map<String, List<PermissionState>> packagePermissions, @NonNull Map<String, List<PermissionState>> packagePermissions,
@NonNull Map<String, List<PermissionState>> sharedUserPermissions) { @NonNull Map<String, List<PermissionState>> sharedUserPermissions) {
@@ -70,32 +79,72 @@ public final class RuntimePermissionsState {
mSharedUserPermissions = sharedUserPermissions; mSharedUserPermissions = sharedUserPermissions;
} }
/**
* Get the version of the runtime permissions.
*
* @return the version of the runtime permissions
*/
public int getVersion() { public int getVersion() {
return mVersion; return mVersion;
} }
/**
* Get the fingerprint of the runtime permissions.
*
* @return the fingerprint of the runtime permissions
*/
@Nullable @Nullable
public String getFingerprint() { public String getFingerprint() {
return mFingerprint; return mFingerprint;
} }
/**
* Get the runtime permissions by packages.
*
* @return the runtime permissions by packages
*/
@NonNull @NonNull
public Map<String, List<PermissionState>> getPackagePermissions() { public Map<String, List<PermissionState>> getPackagePermissions() {
return mPackagePermissions; return mPackagePermissions;
} }
/**
* Get the runtime permissions by shared users.
*
* @return the runtime permissions by shared users
*/
@NonNull @NonNull
public Map<String, List<PermissionState>> getSharedUserPermissions() { public Map<String, List<PermissionState>> getSharedUserPermissions() {
return mSharedUserPermissions; 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. * State of a single permission.
*/ */
public static class PermissionState { public static final class PermissionState {
/** /**
* Name of the permission. * The name of the permission.
*/ */
@NonNull @NonNull
private final String mName; private final String mName;
@@ -106,27 +155,68 @@ public final class RuntimePermissionsState {
private final boolean mGranted; private final boolean mGranted;
/** /**
* Flags of the permission. * The flags of the permission.
*/ */
private final int mFlags; 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) { public PermissionState(@NonNull String name, boolean granted, int flags) {
mName = name; mName = name;
mGranted = granted; mGranted = granted;
mFlags = flags; mFlags = flags;
} }
/**
* Get the name of the permission.
*
* @return the name of the permission
*/
@NonNull @NonNull
public String getName() { public String getName() {
return mName; return mName;
} }
/**
* Get whether the permission is granted.
*
* @return whether the permission is granted
*/
public boolean isGranted() { public boolean isGranted() {
return mGranted; return mGranted;
} }
/**
* Get the flags of the permission.
*
* @return the flags of the permission
*/
public int getFlags() { public int getFlags() {
return mFlags; 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);
}
} }
} }

View File

@@ -40,7 +40,7 @@ public interface RolesPersistence {
* @return the roles read * @return the roles read
*/ */
@Nullable @Nullable
RolesState readAsUser(@NonNull UserHandle user); RolesState readForUser(@NonNull UserHandle user);
/** /**
* Write the roles to persistence. * Write the roles to persistence.
@@ -50,7 +50,7 @@ public interface RolesPersistence {
* @param roles the roles to write * @param roles the roles to write
* @param user the user to write for * @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. * Delete the roles from persistence.
@@ -59,7 +59,7 @@ public interface RolesPersistence {
* *
* @param user the user to delete for * @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. * Create a new instance of {@link RolesPersistence} implementation.

View File

@@ -65,7 +65,7 @@ public class RolesPersistenceImpl implements RolesPersistence {
@Nullable @Nullable
@Override @Override
public RolesState readAsUser(@NonNull UserHandle user) { public RolesState readForUser(@NonNull UserHandle user) {
File file = getFile(user); File file = getFile(user);
try (FileInputStream inputStream = new AtomicFile(file).openRead()) { try (FileInputStream inputStream = new AtomicFile(file).openRead()) {
XmlPullParser parser = Xml.newPullParser(); XmlPullParser parser = Xml.newPullParser();
@@ -146,7 +146,7 @@ public class RolesPersistenceImpl implements RolesPersistence {
} }
@Override @Override
public void writeAsUser(@NonNull RolesState roles, @NonNull UserHandle user) { public void writeForUser(@NonNull RolesState roles, @NonNull UserHandle user) {
File file = getFile(user); File file = getFile(user);
AtomicFile atomicFile = new AtomicFile(file); AtomicFile atomicFile = new AtomicFile(file);
FileOutputStream outputStream = null; FileOutputStream outputStream = null;
@@ -205,7 +205,7 @@ public class RolesPersistenceImpl implements RolesPersistence {
} }
@Override @Override
public void deleteAsUser(@NonNull UserHandle user) { public void deleteForUser(@NonNull UserHandle user) {
getFile(user).delete(); getFile(user).delete();
} }

View File

@@ -22,6 +22,7 @@ import android.annotation.SystemApi;
import android.annotation.SystemApi.Client; import android.annotation.SystemApi.Client;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.Set; import java.util.Set;
/** /**
@@ -50,6 +51,13 @@ public final class RolesState {
@NonNull @NonNull
private final Map<String, Set<String>> mRoles; 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, public RolesState(int version, @Nullable String packagesHash,
@NonNull Map<String, Set<String>> roles) { @NonNull Map<String, Set<String>> roles) {
mVersion = version; mVersion = version;
@@ -57,17 +65,51 @@ public final class RolesState {
mRoles = roles; mRoles = roles;
} }
/**
* Get the version of the roles.
*
* @return the version of the roles
*/
public int getVersion() { public int getVersion() {
return mVersion; return mVersion;
} }
/**
* Get the hash of all packages in the system.
*
* @return the hash of all packages in the system
*/
@Nullable @Nullable
public String getPackagesHash() { public String getPackagesHash() {
return mPackagesHash; return mPackagesHash;
} }
/**
* Get the roles.
*
* @return the roles
*/
@NonNull @NonNull
public Map<String, Set<String>> getRoles() { public Map<String, Set<String>> getRoles() {
return mRoles; 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);
}
} }

View File

@@ -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_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_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 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 USER_ACTIVITY = "android.permission.USER_ACTIVITY";
field public static final String USE_RESERVED_DISK = "android.permission.USE_RESERVED_DISK"; 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"; field public static final String WHITELIST_RESTRICTED_PERMISSIONS = "android.permission.WHITELIST_RESTRICTED_PERMISSIONS";
@@ -8944,7 +8945,7 @@ package android.permission {
} }
public final class PermissionManager { 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 @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 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>); 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>);
@@ -8952,7 +8953,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 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 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(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 startOneTimePermissionSession(@NonNull String, long, int, int);
method @RequiresPermission(android.Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS) public void stopOneTimePermissionSession(@NonNull String); method @RequiresPermission(android.Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS) public void stopOneTimePermissionSession(@NonNull String);
} }

View File

@@ -21,6 +21,7 @@ package android {
field public static final String REMOVE_TASKS = "android.permission.REMOVE_TASKS"; 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 SUSPEND_APPS = "android.permission.SUSPEND_APPS";
field public static final String TEST_MANAGE_ROLLBACKS = "android.permission.TEST_MANAGE_ROLLBACKS"; 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 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 @Deprecated public static final String WRITE_MEDIA_STORAGE = "android.permission.WRITE_MEDIA_STORAGE";
field public static final String WRITE_OBB = "android.permission.WRITE_OBB"; field public static final String WRITE_OBB = "android.permission.WRITE_OBB";
@@ -2811,9 +2812,9 @@ package android.permission {
} }
public final class PermissionManager { 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 @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 { public static final class PermissionManager.SplitPermissionInfo {

View File

@@ -3735,7 +3735,8 @@
<permission android:name="android.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY" <permission android:name="android.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY"
android:protectionLevel="signature|installer" /> 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" <permission android:name="android.permission.UPGRADE_RUNTIME_PERMISSIONS"
android:protectionLevel="signature" /> android:protectionLevel="signature" />

View File

@@ -3,9 +3,9 @@ package com.android.permission.persistence {
public interface RuntimePermissionsPersistence { public interface RuntimePermissionsPersistence {
method @NonNull public static com.android.permission.persistence.RuntimePermissionsPersistence createInstance(); method @NonNull public static com.android.permission.persistence.RuntimePermissionsPersistence createInstance();
method public void deleteAsUser(@NonNull android.os.UserHandle); method public void deleteForUser(@NonNull android.os.UserHandle);
method @Nullable public com.android.permission.persistence.RuntimePermissionsState readAsUser(@NonNull android.os.UserHandle); method @Nullable public com.android.permission.persistence.RuntimePermissionsState readForUser(@NonNull android.os.UserHandle);
method public void writeAsUser(@NonNull com.android.permission.persistence.RuntimePermissionsState, @NonNull android.os.UserHandle); method public void writeForUser(@NonNull com.android.permission.persistence.RuntimePermissionsState, @NonNull android.os.UserHandle);
} }
public final class RuntimePermissionsState { public final class RuntimePermissionsState {
@@ -17,7 +17,7 @@ package com.android.permission.persistence {
field public static final int NO_VERSION = -1; // 0xffffffff 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); ctor public RuntimePermissionsState.PermissionState(@NonNull String, boolean, int);
method public int getFlags(); method public int getFlags();
method @NonNull public String getName(); method @NonNull public String getName();
@@ -30,9 +30,9 @@ package com.android.role.persistence {
public interface RolesPersistence { public interface RolesPersistence {
method @NonNull public static com.android.role.persistence.RolesPersistence createInstance(); method @NonNull public static com.android.role.persistence.RolesPersistence createInstance();
method public void deleteAsUser(@NonNull android.os.UserHandle); method public void deleteForUser(@NonNull android.os.UserHandle);
method @Nullable public com.android.role.persistence.RolesState readAsUser(@NonNull android.os.UserHandle); method @Nullable public com.android.role.persistence.RolesState readForUser(@NonNull android.os.UserHandle);
method public void writeAsUser(@NonNull com.android.role.persistence.RolesState, @NonNull android.os.UserHandle); method public void writeForUser(@NonNull com.android.role.persistence.RolesState, @NonNull android.os.UserHandle);
} }
public final class RolesState { public final class RolesState {

View File

@@ -5450,7 +5450,7 @@ public final class Settings {
packagePermissions, sharedUserPermissions); packagePermissions, sharedUserPermissions);
} }
mPersistence.writeAsUser(runtimePermissions, UserHandle.of(userId)); mPersistence.writeForUser(runtimePermissions, UserHandle.of(userId));
} }
@NonNull @NonNull
@@ -5504,12 +5504,12 @@ public final class Settings {
} }
public void deleteUserRuntimePermissionsFile(int userId) { public void deleteUserRuntimePermissionsFile(int userId) {
mPersistence.deleteAsUser(UserHandle.of(userId)); mPersistence.deleteForUser(UserHandle.of(userId));
} }
@GuardedBy("Settings.this.mLock") @GuardedBy("Settings.this.mLock")
public void readStateForUserSyncLPr(int userId) { public void readStateForUserSyncLPr(int userId) {
RuntimePermissionsState runtimePermissions = mPersistence.readAsUser(UserHandle.of( RuntimePermissionsState runtimePermissions = mPersistence.readForUser(UserHandle.of(
userId)); userId));
if (runtimePermissions == null) { if (runtimePermissions == null) {
readLegacyStateForUserSyncLPr(userId); readLegacyStateForUserSyncLPr(userId);

View File

@@ -364,12 +364,12 @@ public class RoleUserState {
(Map<String, Set<String>>) (Map<String, ?>) snapshotRolesLocked()); (Map<String, Set<String>>) (Map<String, ?>) snapshotRolesLocked());
} }
mPersistence.writeAsUser(roles, UserHandle.of(mUserId)); mPersistence.writeForUser(roles, UserHandle.of(mUserId));
} }
private void readFile() { private void readFile() {
synchronized (mLock) { synchronized (mLock) {
RolesState roles = mPersistence.readAsUser(UserHandle.of(mUserId)); RolesState roles = mPersistence.readForUser(UserHandle.of(mUserId));
if (roles == null) { if (roles == null) {
readLegacyFileLocked(); readLegacyFileLocked();
scheduleWriteFileLocked(); scheduleWriteFileLocked();
@@ -545,7 +545,7 @@ public class RoleUserState {
throw new IllegalStateException("This RoleUserState has already been destroyed"); throw new IllegalStateException("This RoleUserState has already been destroyed");
} }
mWriteHandler.removeCallbacksAndMessages(null); mWriteHandler.removeCallbacksAndMessages(null);
mPersistence.deleteAsUser(UserHandle.of(mUserId)); mPersistence.deleteForUser(UserHandle.of(mUserId));
mDestroyed = true; mDestroyed = true;
} }
} }