* Show the recents task list app.
* @hide
*/
- public void showRecentApps();
+ public void showRecentApps(boolean fromHome);
/**
* Show the global actions dialog.
void notificationLightOff();
void notificationLightPulse(int argb, int millisOn, int millisOff);
- void showRecentApps(boolean triggeredFromAltTab);
+ void showRecentApps(boolean triggeredFromAltTab, boolean fromHome);
void hideRecentApps(boolean triggeredFromAltTab, boolean triggeredFromHomeKey);
void toggleRecentApps();
void toggleSplitScreen();
void setSystemUiVisibility(int vis, int mask, String cause);
void setWindowState(int window, int state);
- void showRecentApps(boolean triggeredFromAltTab);
+ void showRecentApps(boolean triggeredFromAltTab, boolean fromHome);
void hideRecentApps(boolean triggeredFromAltTab, boolean triggeredFromHomeKey);
void toggleRecentApps();
void preloadRecentApps();
import android.view.View;
public interface RecentsComponent {
- void showRecents(boolean triggeredFromAltTab, View statusBarView);
+ void showRecents(boolean triggeredFromAltTab, boolean fromHome, View statusBarView);
void hideRecents(boolean triggeredFromAltTab, boolean triggeredFromHomeKey);
void toggleRecents(Display display, int layoutDirection, View statusBarView);
void preloadRecents();
void preloadRecents();
void cancelPreloadingRecents();
void showRecents(boolean triggeredFromAltTab, boolean draggingInRecents, boolean animate,
- boolean reloadTasks);
+ boolean reloadTasks, boolean fromHome);
void hideRecents(boolean triggeredFromAltTab, boolean triggeredFromHomeKey);
void toggleRecents();
void onConfigurationChanged();
* Shows the Recents.
*/
@Override
- public void showRecents(boolean triggeredFromAltTab, View statusBarView) {
+ public void showRecents(boolean triggeredFromAltTab, boolean fromHome, View statusBarView) {
// Ensure the device has been provisioned before allowing the user to interact with
// recents
if (!isUserSetup()) {
int currentUser = sSystemServicesProxy.getCurrentUser();
if (sSystemServicesProxy.isSystemUser(currentUser)) {
mImpl.showRecents(triggeredFromAltTab, false /* draggingInRecents */,
- true /* animate */, false /* reloadTasks */);
+ true /* animate */, false /* reloadTasks */, fromHome);
} else {
if (mSystemToUserCallbacks != null) {
IRecentsNonSystemUserCallbacks callbacks =
if (callbacks != null) {
try {
callbacks.showRecents(triggeredFromAltTab, false /* draggingInRecents */,
- true /* animate */, false /* reloadTasks */);
+ true /* animate */, false /* reloadTasks */, fromHome);
} catch (RemoteException e) {
Log.e(TAG, "Callback failed", e);
}
// 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 */,
- false /* reloadTasks */);
+ false /* reloadTasks */, false /* fromHome */);
}
});
}
public void showRecents(boolean triggeredFromAltTab, boolean draggingInRecents,
- boolean animate, boolean launchedWhileDockingTask) {
+ boolean animate, boolean launchedWhileDockingTask, boolean fromHome) {
mTriggeredFromAltTab = triggeredFromAltTab;
mDraggingInRecents = draggingInRecents;
mLaunchedWhileDocking = launchedWhileDockingTask;
ActivityManager.RunningTaskInfo topTask = ssp.getTopMostTask();
MutableBoolean isTopTaskHome = new MutableBoolean(true);
if (topTask == null || !ssp.isRecentsTopMost(topTask, isTopTaskHome)) {
- startRecentsActivity(topTask, isTopTaskHome.value, animate);
+ startRecentsActivity(topTask, isTopTaskHome.value || fromHome, animate);
}
} catch (ActivityNotFoundException e) {
Log.e(TAG, "Failed to launch RecentsActivity", e);
false /* triggeredFromAltTab */,
dragMode == NavigationBarGestureHelper.DRAG_MODE_RECENTS,
false /* animate */,
- true /* launchedWhileDockingTask*/);
+ true /* launchedWhileDockingTask*/,
+ false /* fromHome */);
}
}
@Override
public void showRecents(boolean triggeredFromAltTab, boolean draggingInRecents, boolean animate,
- boolean reloadTasks) throws RemoteException {
+ boolean reloadTasks, boolean fromHome) throws RemoteException {
SomeArgs args = SomeArgs.obtain();
args.argi1 = triggeredFromAltTab ? 1 : 0;
args.argi2 = draggingInRecents ? 1 : 0;
args.argi3 = animate ? 1 : 0;
args.argi4 = reloadTasks ? 1 : 0;
+ args.argi5 = fromHome ? 1 : 0;
mHandler.sendMessage(mHandler.obtainMessage(MSG_SHOW_RECENTS, args));
}
case MSG_SHOW_RECENTS:
SomeArgs args = (SomeArgs) msg.obj;
mImpl.showRecents(args.argi1 != 0, args.argi2 != 0, args.argi3 != 0,
- args.argi4 != 0);
+ args.argi4 != 0, args.argi5 != 0);
break;
case MSG_HIDE_RECENTS:
mImpl.hideRecents(msg.arg1 != 0, msg.arg2 != 0);
}
@Override
- public void showRecentApps(boolean triggeredFromAltTab) {
+ public void showRecentApps(boolean triggeredFromAltTab, boolean fromHome) {
int msg = MSG_SHOW_RECENT_APPS;
mHandler.removeMessages(msg);
- mHandler.obtainMessage(msg, triggeredFromAltTab ? 1 : 0, 0).sendToTarget();
+ mHandler.obtainMessage(msg, triggeredFromAltTab ? 1 : 0, fromHome ? 1 : 0).sendToTarget();
}
@Override
/** Proxy for RecentsComponent */
- protected void showRecents(boolean triggeredFromAltTab) {
+ protected void showRecents(boolean triggeredFromAltTab, boolean fromHome) {
if (mRecents != null) {
sendCloseSystemWindows(SYSTEM_DIALOG_REASON_RECENT_APPS);
- mRecents.showRecents(triggeredFromAltTab, getStatusBarView());
+ mRecents.showRecents(triggeredFromAltTab, fromHome, getStatusBarView());
}
}
public void handleMessage(Message m) {
switch (m.what) {
case MSG_SHOW_RECENT_APPS:
- showRecents(m.arg1 > 0);
+ showRecents(m.arg1 > 0, m.arg2 != 0);
break;
case MSG_HIDE_RECENT_APPS:
hideRecents(m.arg1 > 0, m.arg2 > 0);
void topAppWindowChanged(boolean visible);
void setImeWindowStatus(IBinder token, int vis, int backDisposition,
boolean showImeSwitcher);
- void showRecentApps(boolean triggeredFromAltTab);
+ void showRecentApps(boolean triggeredFromAltTab, boolean fromHome);
void hideRecentApps(boolean triggeredFromAltTab, boolean triggeredFromHomeKey);
void toggleRecentApps();
void toggleSplitScreen();
}
}
- public void showRecentApps(boolean triggeredFromAltTab) {
+ public void showRecentApps(boolean triggeredFromAltTab, boolean fromHome) {
synchronized (mLock) {
mHandler.removeMessages(MSG_SHOW_RECENT_APPS);
mHandler.obtainMessage(MSG_SHOW_RECENT_APPS,
- triggeredFromAltTab ? 1 : 0, 0, null).sendToTarget();
+ triggeredFromAltTab ? 1 : 0, fromHome ? 1 : 0, null).sendToTarget();
}
}
msg.getData().getBoolean(SHOW_IME_SWITCHER_KEY, false));
break;
case MSG_SHOW_RECENT_APPS:
- mCallbacks.showRecentApps(msg.arg1 != 0);
+ mCallbacks.showRecentApps(msg.arg1 != 0, msg.arg2 != 0);
break;
case MSG_HIDE_RECENT_APPS:
mCallbacks.hideRecentApps(msg.arg1 != 0, msg.arg2 != 0);
/** Returns true if the focus activity was adjusted to the home stack top activity. */
boolean moveHomeStackTaskToTop(int homeStackTaskType, String reason) {
if (homeStackTaskType == RECENTS_ACTIVITY_TYPE) {
- mWindowManager.showRecentApps();
+ mWindowManager.showRecentApps(false /* fromHome */);
return false;
}
}
if (homeStackTaskType == RECENTS_ACTIVITY_TYPE) {
- mWindowManager.showRecentApps();
+ mWindowManager.showRecentApps(false /* fromHome */);
return false;
}
// recents into docked stack. We don't want the launched activity to be alone in a
// docked stack, so we want to immediately launch recents too.
if (DEBUG_RECENTS) Slog.d(TAG, "Scheduling recents launch.");
- mWindowManager.showRecentApps();
+ mWindowManager.showRecentApps(true /* fromHome */);
return;
}
}
dispatchMediaKeyRepeatWithWakeLock((KeyEvent)msg.obj);
break;
case MSG_DISPATCH_SHOW_RECENTS:
- showRecentApps(false);
+ showRecentApps(false, msg.arg1 != 0);
break;
case MSG_DISPATCH_SHOW_GLOBAL_ACTIONS:
showGlobalActionsInternal();
}
@Override
- public void showRecentApps() {
+ public void showRecentApps(boolean fromHome) {
mHandler.removeMessages(MSG_DISPATCH_SHOW_RECENTS);
- mHandler.sendEmptyMessage(MSG_DISPATCH_SHOW_RECENTS);
+ mHandler.obtainMessage(MSG_DISPATCH_SHOW_RECENTS, fromHome ? 1 : 0, 0).sendToTarget();
}
- private void showRecentApps(boolean triggeredFromAltTab) {
+ private void showRecentApps(boolean triggeredFromAltTab, boolean fromHome) {
mPreloadedRecentApps = false; // preloading no longer needs to be canceled
try {
IStatusBarService statusbar = getStatusBarService();
if (statusbar != null) {
- statusbar.showRecentApps(triggeredFromAltTab);
+ statusbar.showRecentApps(triggeredFromAltTab, fromHome);
}
} catch (RemoteException e) {
Slog.e(TAG, "RemoteException when showing recent apps", e);
}
@Override
- public void showRecentApps(boolean triggeredFromAltTab) {
+ public void showRecentApps(boolean triggeredFromAltTab, boolean fromHome) {
if (mBar != null) {
try {
- mBar.showRecentApps(triggeredFromAltTab);
+ mBar.showRecentApps(triggeredFromAltTab, fromHome);
} catch (RemoteException ex) {}
}
}
mPolicy.lockNow(options);
}
- public void showRecentApps() {
- mPolicy.showRecentApps();
+ public void showRecentApps(boolean fromHome) {
+ mPolicy.showRecentApps(fromHome);
}
@Override