Merge "Fix granting default roles timeout."

This commit is contained in:
TreeHugger Robot
2021-01-20 16:02:01 +00:00
committed by Android (Google) Code Review

View File

@@ -174,8 +174,10 @@ public final class RoleManager {
@NonNull
private final Object mListenersLock = new Object();
@NonNull
private final RoleControllerManager mRoleControllerManager;
@GuardedBy("mRoleControllerManagerLock")
@Nullable
private RoleControllerManager mRoleControllerManager;
private final Object mRoleControllerManagerLock = new Object();
/**
* @hide
@@ -184,7 +186,6 @@ public final class RoleManager {
mContext = context;
mService = IRoleManager.Stub.asInterface(ServiceManager.getServiceOrThrow(
Context.ROLE_SERVICE));
mRoleControllerManager = new RoleControllerManager(context);
}
/**
@@ -693,7 +694,7 @@ public final class RoleManager {
@TestApi
public void isRoleVisible(@NonNull String roleName,
@NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) {
mRoleControllerManager.isRoleVisible(roleName, executor, callback);
getRoleControllerManager().isRoleVisible(roleName, executor, callback);
}
/**
@@ -714,10 +715,20 @@ public final class RoleManager {
@TestApi
public void isApplicationVisibleForRole(@NonNull String roleName, @NonNull String packageName,
@NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) {
mRoleControllerManager.isApplicationVisibleForRole(roleName, packageName, executor,
getRoleControllerManager().isApplicationVisibleForRole(roleName, packageName, executor,
callback);
}
@NonNull
private RoleControllerManager getRoleControllerManager() {
synchronized (mRoleControllerManagerLock) {
if (mRoleControllerManager == null) {
mRoleControllerManager = new RoleControllerManager(mContext);
}
return mRoleControllerManager;
}
}
private static class OnRoleHoldersChangedListenerDelegate
extends IOnRoleHoldersChangedListener.Stub {