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

Commit 4d01f61e authored by Fyodor Kupolov's avatar Fyodor Kupolov
Browse files

Do not enforce unlocked state when there is no caller

Do not enforce unlocked state when running on the background thread. User can
be in the stopping state or removed by the time the message is being processed.

Bug: 28471878
Change-Id: I1862849661d93b424a07ea94e80563bea7a94ce5
parent ede4fcea
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -656,11 +656,15 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
    }

    private void ensureGroupStateLoadedLocked(int userId) {
        if (!mUserManager.isUserUnlockingOrUnlocked(userId)) {
        ensureGroupStateLoadedLocked(userId, /* enforceUserUnlockingOrUnlocked */ true );
    }

    private void ensureGroupStateLoadedLocked(int userId, boolean enforceUserUnlockingOrUnlocked) {
        if (enforceUserUnlockingOrUnlocked && !mUserManager.isUserUnlockingOrUnlocked(userId)) {
            throw new IllegalStateException(
                    "User " + userId + " must be unlocked for widgets to be available");
        }
        if (isProfileWithLockedParent(userId)) {
        if (enforceUserUnlockingOrUnlocked && isProfileWithLockedParent(userId)) {
            throw new IllegalStateException(
                    "Profile " + userId + " must have unlocked parent");
        }
@@ -3945,7 +3949,9 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
        @Override
        public void run() {
            synchronized (mLock) {
                ensureGroupStateLoadedLocked(mUserId);
                // No need to enforce unlocked state when there is no caller. User can be in the
                // stopping state or removed by the time the message is processed
                ensureGroupStateLoadedLocked(mUserId, false /* enforceUserUnlockingOrUnlocked */ );
                saveStateLocked(mUserId);
            }
        }