From 171bf04113154a7e3668e07677701869dfae9eda Mon Sep 17 00:00:00 2001 From: Kweku Adams Date: Mon, 27 Sep 2021 18:53:23 +0000 Subject: [PATCH] Partial revert "Wait for unlock to start jobs." This reverts commit e61cf5125e83b119701228e742f7b2cb3a433cb6 but changes onUserUnlocking to onUserUnlocked. Reason for revert: Direct-boot-aware jobs should be allowed to run when the user is locked Bug: 201307089 Change-Id: Ic5a67a42590e171f0bfed8da0c138096031469d5 --- .../android/server/job/JobSchedulerService.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java index 26237c41f5dc1..9c4cada0b5393 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java @@ -1075,13 +1075,21 @@ public class JobSchedulerService extends com.android.server.SystemService } @Override - public void onUserUnlocked(@NonNull TargetUser user) { + public void onUserStarting(@NonNull TargetUser user) { synchronized (mLock) { - // Note that the user has started after its unlocked instead of when the user - // actually starts because the storage won't be decrypted until unlock. mStartedUsers = ArrayUtils.appendInt(mStartedUsers, user.getUserIdentifier()); } - // Let's kick any outstanding jobs for this user. + // The user is starting but credential encrypted storage is still locked. + // Only direct-boot-aware jobs can safely run. + // Let's kick off any eligible jobs for this user. + mHandler.obtainMessage(MSG_CHECK_JOB).sendToTarget(); + } + + @Override + public void onUserUnlocked(@NonNull TargetUser user) { + // The user is fully unlocked and credential encrypted storage is now decrypted. + // Direct-boot-UNaware jobs can now safely run. + // Let's kick off any outstanding jobs for this user. mHandler.obtainMessage(MSG_CHECK_JOB).sendToTarget(); }