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

Commit d49f3fa8 authored by Makoto Onuki's avatar Makoto Onuki
Browse files

Cache isManagedProfile().

LauncherApps wants to use it in the client side.  Let's cache the
result.

Bug: 34340531
Test: manual tests with work profile
Change-Id: I594a9ca688867e7cb0b35ab389ccef66135ef9cd
parent e7beedff
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -66,6 +66,8 @@ public class UserManager {
    private final IUserManager mService;
    private final Context mContext;

    private Boolean mIsManagedProfileCached;

    /**
     * @hide
     * No user restriction.
@@ -970,8 +972,14 @@ public class UserManager {
     */
    @SystemApi
    public boolean isManagedProfile() {
        // No need for synchronization.  Once it becomes non-null, it'll be non-null forever.
        // Worst case we might end up calling the AIDL method multiple times but that's fine.
        if (mIsManagedProfileCached != null) {
            return mIsManagedProfileCached;
        }
        try {
            return mService.isManagedProfile(UserHandle.myUserId());
            mIsManagedProfileCached = mService.isManagedProfile(UserHandle.myUserId());
            return mIsManagedProfileCached;
        } catch (RemoteException re) {
            throw re.rethrowFromSystemServer();
        }
@@ -987,6 +995,9 @@ public class UserManager {
     */
    @SystemApi
    public boolean isManagedProfile(@UserIdInt int userId) {
        if (userId == UserHandle.myUserId()) {
            return isManagedProfile();
        }
        try {
            return mService.isManagedProfile(userId);
        } catch (RemoteException re) {