Change search key behavior for Ryu
Change-Id: Idadf1b3a4fa8161e13db5247ccddb47f6efe3c8a
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 0d96ca6..7aa05df 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -118,6 +118,7 @@
import com.android.internal.statusbar.IStatusBarService;
import com.android.internal.util.ScreenShapeHelper;
import com.android.internal.widget.PointerLocationView;
+import com.android.server.am.ActivityStackSupervisor;
import com.android.server.GestureLauncherService;
import com.android.server.LocalServices;
import com.android.server.policy.keyguard.KeyguardServiceDelegate;
@@ -266,6 +267,7 @@
WindowManagerFuncs mWindowManagerFuncs;
WindowManagerInternal mWindowManagerInternal;
PowerManager mPowerManager;
+ ActivityManager mActivityManager;
ActivityManagerInternal mActivityManagerInternal;
DreamManagerInternal mDreamManagerInternal;
PowerManagerInternal mPowerManagerInternal;
@@ -1396,6 +1398,7 @@
mDeskDockIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
+ mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
mPowerManager = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
mBroadcastWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
"PhoneWindowManager.mBroadcastWakeLock");
@@ -2918,7 +2921,7 @@
if (down) {
mPendingMetaAction = true;
} else if (mPendingMetaAction) {
- launchAssistAction(Intent.EXTRA_ASSIST_INPUT_HINT_KEYBOARD, event.getDeviceId());
+ invokeSearchOverlay(event);
}
return -1;
}
@@ -3038,6 +3041,23 @@
return 0;
}
+ private void invokeSearchOverlay(KeyEvent event) {
+ String intentString = "com.google.android.googlequicksearchbox.TEXT_ASSIST";
+
+ // If we're in GEL, use the GEL search box. Otherwise, use the search overlay.
+ final List<ActivityManager.RecentTaskInfo> tasks =
+ mActivityManager.getRecentTasksForUser(
+ 1, ActivityManager.RECENT_WITH_EXCLUDED, UserHandle.USER_CURRENT_OR_SELF);
+ if (tasks != null && !tasks.isEmpty()) {
+ if (tasks.get(0).stackId == ActivityStackSupervisor.HOME_STACK_ID) {
+ intentString = "android.search.action.GLOBAL_SEARCH";
+ }
+ }
+
+ Intent searchIntent = new Intent(intentString);
+ startActivityAsUser(searchIntent, UserHandle.CURRENT_OR_SELF);
+ }
+
/** {@inheritDoc} */
@Override
public KeyEvent dispatchUnhandledKey(WindowState win, KeyEvent event, int policyFlags) {