int currentUser = sSystemServicesProxy.getCurrentUser();
if (sSystemServicesProxy.isSystemUser(currentUser)) {
- mImpl.showRecents(triggeredFromAltTab, false /* draggingInRecents */, true /* animate */);
+ mImpl.showRecents(triggeredFromAltTab, false /* draggingInRecents */,
+ true /* animate */, false /* reloadTasks */);
} else {
if (mSystemUserCallbacks != null) {
IRecentsNonSystemUserCallbacks callbacks =
if (callbacks != null) {
try {
callbacks.showRecents(triggeredFromAltTab, false /* draggingInRecents */,
- true /* animate */);
+ true /* animate */, false /* reloadTasks */);
} catch (RemoteException e) {
Log.e(TAG, "Callback failed", e);
}
boolean mBootCompleted;
boolean mCanReuseTaskStackViews = true;
boolean mDraggingInRecents;
+ boolean mReloadTasks;
// Task launching
Rect mSearchBarBounds = new Rect();
public void run() {
// When this fires, then the user has not released alt-tab for at least
// FAST_ALT_TAB_DELAY_MS milliseconds
- showRecents(mTriggeredFromAltTab, false /* draggingInRecents */, true /* animate */);
+ showRecents(mTriggeredFromAltTab, false /* draggingInRecents */, true /* animate */,
+ false /* reloadTasks */);
}
});
@Override
public void showRecents(boolean triggeredFromAltTab, boolean draggingInRecents,
- boolean animate) {
+ boolean animate, boolean reloadTasks) {
mTriggeredFromAltTab = triggeredFromAltTab;
mDraggingInRecents = draggingInRecents;
+ mReloadTasks = reloadTasks;
if (mFastAltTabTrigger.hasTriggered()) {
// We are calling this from the doze trigger, so just fall through to show Recents
mFastAltTabTrigger.resetTrigger();
if (topTask != null && !SystemServicesProxy.isHomeStack(topTask.stackId)) {
ssp.moveTaskToDockedStack(topTask.id,
ActivityManager.DOCKED_STACK_CREATE_MODE_TOP_OR_LEFT, initialBounds);
- showRecents(false /* triggeredFromAltTab */, draggingInRecents, false /* animate */);
+ showRecents(false /* triggeredFromAltTab */, draggingInRecents, false /* animate */,
+ true /* reloadTasks*/);
}
}
reloadHeaderBarLayout(false /* tryAndBindSearchWidget */);
// In the case where alt-tab is triggered, we never get a preloadRecents() call, so we
- // should always preload the tasks now
- if (mTriggeredFromAltTab ||sInstanceLoadPlan == null) {
+ // should always preload the tasks now. If we are dragging in recents, reload them as
+ // the stacks might have changed.
+ if (mReloadTasks || mTriggeredFromAltTab ||sInstanceLoadPlan == null) {
// Create a new load plan if preloadRecents() was never triggered
sInstanceLoadPlan = loader.createLoadPlan(mContext);
}
- if (mTriggeredFromAltTab || !sInstanceLoadPlan.hasTasks()) {
+ if (mReloadTasks || mTriggeredFromAltTab || !sInstanceLoadPlan.hasTasks()) {
loader.preloadTasks(sInstanceLoadPlan, isTopTaskHome);
}
TaskStack stack = sInstanceLoadPlan.getTaskStack();