summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/view/WindowManagerPolicy.java2
-rw-r--r--core/java/com/android/internal/statusbar/IStatusBar.aidl2
-rw-r--r--core/java/com/android/internal/statusbar/IStatusBarService.aidl2
-rw-r--r--packages/SystemUI/src/com/android/systemui/RecentsComponent.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/IRecentsNonSystemUserCallbacks.aidl2
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/Recents.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java9
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/RecentsImplProxy.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java10
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java8
-rw-r--r--services/core/java/com/android/server/am/ActivityStackSupervisor.java4
-rw-r--r--services/core/java/com/android/server/am/ActivityStarter.java2
-rw-r--r--services/core/java/com/android/server/policy/PhoneWindowManager.java10
-rw-r--r--services/core/java/com/android/server/statusbar/StatusBarManagerService.java4
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerService.java4
15 files changed, 37 insertions, 35 deletions
diff --git a/core/java/android/view/WindowManagerPolicy.java b/core/java/android/view/WindowManagerPolicy.java
index 96f179b8db63..187c8afc2282 100644
--- a/core/java/android/view/WindowManagerPolicy.java
+++ b/core/java/android/view/WindowManagerPolicy.java
@@ -1304,7 +1304,7 @@ public interface WindowManagerPolicy {
* Show the recents task list app.
* @hide
*/
- public void showRecentApps();
+ public void showRecentApps(boolean fromHome);
/**
* Show the global actions dialog.
diff --git a/core/java/com/android/internal/statusbar/IStatusBar.aidl b/core/java/com/android/internal/statusbar/IStatusBar.aidl
index 36e21b977f6d..fcf65f26bffa 100644
--- a/core/java/com/android/internal/statusbar/IStatusBar.aidl
+++ b/core/java/com/android/internal/statusbar/IStatusBar.aidl
@@ -57,7 +57,7 @@ oneway interface IStatusBar
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();
diff --git a/core/java/com/android/internal/statusbar/IStatusBarService.aidl b/core/java/com/android/internal/statusbar/IStatusBarService.aidl
index ee3f9379b03e..994bdebd880e 100644
--- a/core/java/com/android/internal/statusbar/IStatusBarService.aidl
+++ b/core/java/com/android/internal/statusbar/IStatusBarService.aidl
@@ -65,7 +65,7 @@ interface IStatusBarService
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();
diff --git a/packages/SystemUI/src/com/android/systemui/RecentsComponent.java b/packages/SystemUI/src/com/android/systemui/RecentsComponent.java
index 73b9d02e403a..eaafafac3f87 100644
--- a/packages/SystemUI/src/com/android/systemui/RecentsComponent.java
+++ b/packages/SystemUI/src/com/android/systemui/RecentsComponent.java
@@ -21,7 +21,7 @@ import android.view.Display;
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();
diff --git a/packages/SystemUI/src/com/android/systemui/recents/IRecentsNonSystemUserCallbacks.aidl b/packages/SystemUI/src/com/android/systemui/recents/IRecentsNonSystemUserCallbacks.aidl
index 37085c77055b..7ce9384258fe 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/IRecentsNonSystemUserCallbacks.aidl
+++ b/packages/SystemUI/src/com/android/systemui/recents/IRecentsNonSystemUserCallbacks.aidl
@@ -27,7 +27,7 @@ oneway interface IRecentsNonSystemUserCallbacks {
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();
diff --git a/packages/SystemUI/src/com/android/systemui/recents/Recents.java b/packages/SystemUI/src/com/android/systemui/recents/Recents.java
index a227e1d00011..bb709c5ca9c0 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/Recents.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/Recents.java
@@ -238,7 +238,7 @@ public class Recents extends SystemUI
* 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()) {
@@ -252,7 +252,7 @@ public class Recents extends SystemUI
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 =
@@ -260,7 +260,7 @@ public class Recents extends SystemUI
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);
}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java
index 618a2e2c485b..0413bc9fcc4e 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java
@@ -156,7 +156,7 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener
// 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 */);
}
});
@@ -230,7 +230,7 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener
}
public void showRecents(boolean triggeredFromAltTab, boolean draggingInRecents,
- boolean animate, boolean launchedWhileDockingTask) {
+ boolean animate, boolean launchedWhileDockingTask, boolean fromHome) {
mTriggeredFromAltTab = triggeredFromAltTab;
mDraggingInRecents = draggingInRecents;
mLaunchedWhileDocking = launchedWhileDockingTask;
@@ -260,7 +260,7 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener
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);
@@ -534,7 +534,8 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener
false /* triggeredFromAltTab */,
dragMode == NavigationBarGestureHelper.DRAG_MODE_RECENTS,
false /* animate */,
- true /* launchedWhileDockingTask*/);
+ true /* launchedWhileDockingTask*/,
+ false /* fromHome */);
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsImplProxy.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsImplProxy.java
index 86ec98ae3d4f..257bda2e147a 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsImplProxy.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsImplProxy.java
@@ -57,12 +57,13 @@ public class RecentsImplProxy extends IRecentsNonSystemUserCallbacks.Stub {
@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));
}
@@ -118,7 +119,7 @@ public class RecentsImplProxy extends IRecentsNonSystemUserCallbacks.Stub {
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);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
index 237ca5ec16f4..7c6c641cb7c9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
@@ -1209,10 +1209,10 @@ public abstract class BaseStatusBar extends SystemUI implements
}
@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
@@ -1315,10 +1315,10 @@ public abstract class BaseStatusBar extends SystemUI implements
/** 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());
}
}
@@ -1495,7 +1495,7 @@ public abstract class BaseStatusBar extends SystemUI implements
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);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
index cc8e3bda99b4..f7d13eee25ed 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
@@ -103,7 +103,7 @@ public class CommandQueue extends IStatusBar.Stub {
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();
@@ -210,11 +210,11 @@ public class CommandQueue extends IStatusBar.Stub {
}
}
- 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();
}
}
@@ -421,7 +421,7 @@ public class CommandQueue extends IStatusBar.Stub {
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);
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index ab3a0b3c1e40..49f799e9ed4d 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -615,7 +615,7 @@ public final class ActivityStackSupervisor implements DisplayListener {
/** 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;
}
@@ -636,7 +636,7 @@ public final class ActivityStackSupervisor implements DisplayListener {
}
if (homeStackTaskType == RECENTS_ACTIVITY_TYPE) {
- mWindowManager.showRecentApps();
+ mWindowManager.showRecentApps(false /* fromHome */);
return false;
}
diff --git a/services/core/java/com/android/server/am/ActivityStarter.java b/services/core/java/com/android/server/am/ActivityStarter.java
index a96f23a4cc1b..4075230a9e10 100644
--- a/services/core/java/com/android/server/am/ActivityStarter.java
+++ b/services/core/java/com/android/server/am/ActivityStarter.java
@@ -557,7 +557,7 @@ class ActivityStarter {
// 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;
}
}
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 8f259db4c924..a70486f2c694 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -733,7 +733,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
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();
@@ -3623,17 +3623,17 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}
@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);
diff --git a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
index e71bdb83841b..8356a4ed98e8 100644
--- a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
+++ b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
@@ -555,10 +555,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub {
}
@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) {}
}
}
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index a4238c1a4017..2e0c187ac226 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -9819,8 +9819,8 @@ public class WindowManagerService extends IWindowManager.Stub
mPolicy.lockNow(options);
}
- public void showRecentApps() {
- mPolicy.showRecentApps();
+ public void showRecentApps(boolean fromHome) {
+ mPolicy.showRecentApps(fromHome);
}
@Override