diff options
| author | 2016-08-09 14:51:24 -0700 | |
|---|---|---|
| committer | 2016-08-23 23:53:41 +0000 | |
| commit | c3eedd972dbd4f7c12428de0dc1bc86e55e13dc5 (patch) | |
| tree | cc85d2203a3488d13e5c2937f81cce5bbf5d5516 | |
| parent | 8664df3d76811d4e044fe8946cc164375ef58d0c (diff) | |
Bump up preloading recents on boot up to user unlocked.
- To fix b/29320695, we moved the initial recents preloading to boot
completed. However, that event happens fairly late in the boot
sequence, and preloading can instead be done in response to user
unlocked.
Bug: 29879478
Change-Id: I881bd9c4c3b91d73df4947bfd2cc55eb6e615d15
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/recents/Recents.java | 26 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java | 6 |
2 files changed, 29 insertions, 3 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/recents/Recents.java b/packages/SystemUI/src/com/android/systemui/recents/Recents.java index e117bfeb1364..de51c939b13e 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/Recents.java +++ b/packages/SystemUI/src/com/android/systemui/recents/Recents.java @@ -18,10 +18,12 @@ package com.android.systemui.recents; import android.app.ActivityManager; import android.app.UiModeManager; +import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; +import android.content.IntentFilter; import android.content.ServiceConnection; import android.content.pm.ActivityInfo; import android.content.res.Configuration; @@ -96,7 +98,7 @@ public class Recents extends SystemUI // and does not reside in the home stack. private String mOverrideRecentsPackageName; - private Handler mHandler; + private Handler mHandler = new Handler(); private RecentsImpl mImpl; private int mDraggingInRecentsCurrentUser; @@ -162,6 +164,20 @@ public class Recents extends SystemUI } }; + + private BroadcastReceiver mSystemUserUnlockedReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + if (Intent.ACTION_USER_UNLOCKED.equals(intent.getAction())) { + int userId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, UserHandle.USER_NULL); + if (userId != UserHandle.USER_NULL) { + mImpl.onUserUnlocked(userId); + } + } + } + }; + + /** * Returns the callbacks interface that non-system users can call. */ @@ -191,7 +207,7 @@ public class Recents extends SystemUI sSystemServicesProxy = SystemServicesProxy.getInstance(mContext); sTaskLoader = new RecentsTaskLoader(mContext); sConfiguration = new RecentsConfiguration(mContext); - mHandler = new Handler(); + UiModeManager uiModeManager = (UiModeManager) mContext. getSystemService(Context.UI_MODE_SERVICE); if (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION) { @@ -221,6 +237,12 @@ public class Recents extends SystemUI // For the system user, initialize an instance of the interface that we can pass to the // secondary user mSystemToUserCallbacks = new RecentsSystemUser(mContext, mImpl); + + // Listen for user-unlocked to kick off preloading recents + IntentFilter filter = new IntentFilter(); + filter.addAction(Intent.ACTION_USER_UNLOCKED); + mContext.registerReceiverAsUser(mSystemUserUnlockedReceiver, UserHandle.SYSTEM, filter, + null /* permission */, null /* scheduler */); } else { // For the secondary user, bind to the primary user's service to get a persistent // interface to register its implementation and to later update its state diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java index 2757fc4f5cc7..d813170f9239 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java @@ -186,7 +186,7 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener reloadResources(); } - public void onBootCompleted() { + public void onUserUnlocked(int userId) { // When we start, preload the data associated with the previous recent tasks. // We can use a new plan since the caches will be the same. RecentsTaskLoader loader = Recents.getTaskLoader(); @@ -199,6 +199,10 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener loader.loadTasks(mContext, plan, launchOpts); } + public void onBootCompleted() { + // Do nothing + } + public void onConfigurationChanged() { reloadResources(); mDummyStackView.reloadOnConfigurationChange(); |