Move recents CommandQueue callbacks to recents

This will make it a more common and less broken place for both
handset and TV.

Fixes: 34813216
Test: make and click on recents button.
Change-Id: I2fd9c3103e2be28a19497719ac5763c064beeed1
This commit is contained in:
Jason Monk
2017-02-02 14:11:20 -05:00
parent b3f0849c3e
commit 764da991de
4 changed files with 22 additions and 112 deletions

View File

@@ -21,11 +21,10 @@ import android.view.Display;
import android.view.View;
public interface RecentsComponent {
void showRecents(boolean triggeredFromAltTab, boolean fromHome);
void hideRecents(boolean triggeredFromAltTab, boolean triggeredFromHomeKey);
void showRecentApps(boolean triggeredFromAltTab, boolean fromHome);
void hideRecentApps(boolean triggeredFromAltTab, boolean triggeredFromHomeKey);
void toggleRecents(Display display);
void preloadRecents();
void cancelPreloadingRecents();
void showNextAffiliatedTask();
void showPrevAffiliatedTask();

View File

@@ -16,6 +16,8 @@
package com.android.systemui.recents;
import static com.android.systemui.statusbar.phone.StatusBar.SYSTEM_DIALOG_REASON_RECENT_APPS;
import android.app.ActivityManager;
import android.app.UiModeManager;
import android.content.ComponentName;
@@ -38,6 +40,7 @@ import android.provider.Settings;
import android.util.EventLog;
import android.util.Log;
import android.view.Display;
import android.view.WindowManager;
import android.widget.Toast;
import com.android.internal.logging.MetricsLogger;
@@ -59,6 +62,7 @@ import com.android.systemui.recents.misc.SystemServicesProxy;
import com.android.systemui.recents.model.RecentsTaskLoader;
import com.android.systemui.recents.tv.RecentsTvImpl;
import com.android.systemui.stackdivider.Divider;
import com.android.systemui.statusbar.CommandQueue;
import java.util.ArrayList;
import java.util.HashSet;
@@ -70,7 +74,7 @@ import java.util.Set;
* users.
*/
public class Recents extends SystemUI
implements RecentsComponent {
implements RecentsComponent, CommandQueue.Callbacks {
private final static String TAG = "Recents";
private final static boolean DEBUG = false;
@@ -201,6 +205,7 @@ public class Recents extends SystemUI
sTaskLoader = new RecentsTaskLoader(mContext);
sConfiguration = new RecentsConfiguration(mContext);
mHandler = new Handler();
getComponent(CommandQueue.class).addCallbacks(this);
UiModeManager uiModeManager = (UiModeManager) mContext.
getSystemService(Context.UI_MODE_SERVICE);
if (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION) {
@@ -247,7 +252,7 @@ public class Recents extends SystemUI
* Shows the Recents.
*/
@Override
public void showRecents(boolean triggeredFromAltTab, boolean fromHome) {
public void showRecentApps(boolean triggeredFromAltTab, boolean fromHome) {
// Ensure the device has been provisioned before allowing the user to interact with
// recents
if (!isUserSetup()) {
@@ -257,6 +262,10 @@ public class Recents extends SystemUI
if (proxyToOverridePackage(ACTION_SHOW_RECENTS)) {
return;
}
try {
ActivityManager.getService().closeSystemDialogs(SYSTEM_DIALOG_REASON_RECENT_APPS);
} catch (RemoteException e) {
}
int recentsGrowTarget = getComponent(Divider.class).getView().growsRecents();
@@ -287,7 +296,7 @@ public class Recents extends SystemUI
* Hides the Recents.
*/
@Override
public void hideRecents(boolean triggeredFromAltTab, boolean triggeredFromHomeKey) {
public void hideRecentApps(boolean triggeredFromAltTab, boolean triggeredFromHomeKey) {
// Ensure the device has been provisioned before allowing the user to interact with
// recents
if (!isUserSetup()) {
@@ -318,6 +327,11 @@ public class Recents extends SystemUI
}
}
@Override
public void toggleRecentApps() {
toggleRecents(mContext.getSystemService(WindowManager.class).getDefaultDisplay());
}
/**
* Toggles the Recents activity.
*/
@@ -387,7 +401,7 @@ public class Recents extends SystemUI
}
@Override
public void cancelPreloadingRecents() {
public void cancelPreloadRecentApps() {
// Ensure the device has been provisioned before allowing the user to interact with
// recents
if (!isUserSetup()) {

View File

@@ -107,7 +107,7 @@ public class ShortcutKeyDispatcher extends SystemUI
List<ActivityManager.RecentTaskInfo> taskList =
SystemServicesProxy.getInstance(mContext).getRecentTasks(1,
UserHandle.USER_CURRENT, false, new ArraySet<>());
recents.showRecents(
recents.showRecentApps(
false /* triggeredFromAltTab */,
false /* fromHome */);
if (!taskList.isEmpty()) {

View File

@@ -270,8 +270,6 @@ public class StatusBar extends SystemUI implements DemoMode,
protected static final int MSG_TOGGLE_RECENTS_APPS = 1021;
protected static final int MSG_PRELOAD_RECENT_APPS = 1022;
protected static final int MSG_CANCEL_PRELOAD_RECENT_APPS = 1023;
protected static final int MSG_SHOW_NEXT_AFFILIATED_TASK = 1024;
protected static final int MSG_SHOW_PREV_AFFILIATED_TASK = 1025;
protected static final int MSG_TOGGLE_KEYBOARD_SHORTCUTS_MENU = 1026;
protected static final int MSG_DISMISS_KEYBOARD_SHORTCUTS_MENU = 1027;
@@ -281,8 +279,8 @@ public class StatusBar extends SystemUI implements DemoMode,
private static final String PERMISSION_SELF = "com.android.systemui.permission.SELF";
// Should match the values in PhoneWindowManager
public static final String SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps";
public static final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey";
public static final String SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps";
private static final String BANNER_ACTION_CANCEL =
"com.android.systemui.statusbar.banner_action_cancel";
@@ -2760,28 +2758,6 @@ public class StatusBar extends SystemUI implements DemoMode,
@Override
public void handleMessage(Message m) {
switch (m.what) {
// start old BaseStatusBar.H handling.
case MSG_SHOW_RECENT_APPS:
showRecents(m.arg1 > 0, m.arg2 != 0);
break;
case MSG_HIDE_RECENT_APPS:
hideRecents(m.arg1 > 0, m.arg2 > 0);
break;
case MSG_TOGGLE_RECENTS_APPS:
toggleRecents();
break;
case MSG_PRELOAD_RECENT_APPS:
preloadRecents();
break;
case MSG_CANCEL_PRELOAD_RECENT_APPS:
cancelPreloadingRecents();
break;
case MSG_SHOW_NEXT_AFFILIATED_TASK:
showRecentsNextAffiliatedTask();
break;
case MSG_SHOW_PREV_AFFILIATED_TASK:
showRecentsPreviousAffiliatedTask();
break;
case MSG_TOGGLE_KEYBOARD_SHORTCUTS_MENU:
toggleKeyboardShortcuts(m.arg1);
break;
@@ -6086,26 +6062,6 @@ public class StatusBar extends SystemUI implements DemoMode,
}
}
@Override
public void showRecentApps(boolean triggeredFromAltTab, boolean fromHome) {
int msg = MSG_SHOW_RECENT_APPS;
mHandler.removeMessages(msg);
mHandler.obtainMessage(msg, triggeredFromAltTab ? 1 : 0, fromHome ? 1 : 0).sendToTarget();
}
@Override
public void hideRecentApps(boolean triggeredFromAltTab, boolean triggeredFromHomeKey) {
int msg = MSG_HIDE_RECENT_APPS;
mHandler.removeMessages(msg);
mHandler.obtainMessage(msg, triggeredFromAltTab ? 1 : 0,
triggeredFromHomeKey ? 1 : 0).sendToTarget();
}
@Override
public void toggleRecentApps() {
toggleRecents();
}
@Override
public void toggleSplitScreen() {
toggleSplitScreenMode(-1 /* metricsDockAction */, -1 /* metricsUndockAction */);
@@ -6139,20 +6095,6 @@ public class StatusBar extends SystemUI implements DemoMode,
mHandler.obtainMessage(msg, deviceId, 0).sendToTarget();
}
/** Jumps to the next affiliated task in the group. */
public void showNextAffiliatedTask() {
int msg = MSG_SHOW_NEXT_AFFILIATED_TASK;
mHandler.removeMessages(msg);
mHandler.sendEmptyMessage(msg);
}
/** Jumps to the previous affiliated task in the group. */
public void showPreviousAffiliatedTask() {
int msg = MSG_SHOW_PREV_AFFILIATED_TASK;
mHandler.removeMessages(msg);
mHandler.sendEmptyMessage(msg);
}
protected void sendCloseSystemWindows(String reason) {
try {
ActivityManager.getService().closeSystemDialogs(reason);
@@ -6160,33 +6102,6 @@ public class StatusBar extends SystemUI implements DemoMode,
}
}
/** Proxy for RecentsComponent */
protected void showRecents(boolean triggeredFromAltTab, boolean fromHome) {
if (mRecents != null) {
sendCloseSystemWindows(SYSTEM_DIALOG_REASON_RECENT_APPS);
mRecents.showRecents(triggeredFromAltTab, fromHome);
}
}
protected void hideRecents(boolean triggeredFromAltTab, boolean triggeredFromHomeKey) {
if (mRecents != null) {
mRecents.hideRecents(triggeredFromAltTab, triggeredFromHomeKey);
}
}
protected void toggleRecents() {
if (mRecents != null) {
mRecents.toggleRecents(mDisplay);
}
}
protected void preloadRecents() {
if (mRecents != null) {
mRecents.preloadRecents();
}
}
protected void toggleKeyboardShortcuts(int deviceId) {
KeyboardShortcuts.toggle(mContext, deviceId);
}
@@ -6195,24 +6110,6 @@ public class StatusBar extends SystemUI implements DemoMode,
KeyboardShortcuts.dismiss();
}
protected void cancelPreloadingRecents() {
if (mRecents != null) {
mRecents.cancelPreloadingRecents();
}
}
protected void showRecentsNextAffiliatedTask() {
if (mRecents != null) {
mRecents.showNextAffiliatedTask();
}
}
protected void showRecentsPreviousAffiliatedTask() {
if (mRecents != null) {
mRecents.showPrevAffiliatedTask();
}
}
/**
* Save the current "public" (locked and secure) state of the lockscreen.
*/