summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/GelIntegrationHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher3/GelIntegrationHelper.java')
-rw-r--r--src/com/android/launcher3/GelIntegrationHelper.java25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/com/android/launcher3/GelIntegrationHelper.java b/src/com/android/launcher3/GelIntegrationHelper.java
index f43e7e6a0..4d2c4917b 100644
--- a/src/com/android/launcher3/GelIntegrationHelper.java
+++ b/src/com/android/launcher3/GelIntegrationHelper.java
@@ -2,8 +2,11 @@ package com.android.launcher3;
import android.app.Activity;
import android.app.ActivityManager;
+import android.app.SearchManager;
import android.content.ComponentName;
+import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.service.gesture.EdgeGestureManager;
import com.android.internal.util.gesture.EdgeGesturePosition;
@@ -15,9 +18,6 @@ import java.util.List;
* in CyanogenMod.
*/
public class GelIntegrationHelper {
- // The Intent for the search activity (resolves to Google Now when installed)
- public final static String INTENT_ACTION_ASSIST = "android.intent.action.ASSIST";
-
private static final String GEL_ACTIVITY = "com.google.android.velvet.ui.VelvetActivity";
private static final String GEL_PACKAGE_NAME = "com.google.android.googlequicksearchbox";
@@ -78,13 +78,26 @@ public class GelIntegrationHelper {
int edge = isLayoutRtl ? EDGE_GESTURE_SERVICE_LEFT_EDGE : EDGE_GESTURE_SERVICE_RIGHT_EDGE;
edgeGestureManager.updateEdgeGestureActivationListener(mEdgeGestureActivationListener,
edge);
+ // Attempt to use Intent.ACTION_ASSIST, if supported
+ Intent intent = new Intent(Intent.ACTION_ASSIST);
+ if (!isIntentSupported(launcherActivity, intent)) {
+ // Start the Global Search Activity
+ final SearchManager searchManager =
+ (SearchManager) launcherActivity.getSystemService(Context.SEARCH_SERVICE);
+ ComponentName globalSearchActivity = searchManager.getGlobalSearchActivity();
+ intent = new Intent();
+ intent.setComponent(globalSearchActivity);
+ }
- // Start the Google Now Activity
- Intent i = new Intent(INTENT_ACTION_ASSIST);
- launcherActivity.startActivity(i);
+ launcherActivity.startActivity(intent);
launcherActivity.overridePendingTransition(0, R.anim.exit_out_right);
}
+ private boolean isIntentSupported(Context context, Intent intent) {
+ PackageManager pm = context.getPackageManager();
+ return pm.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY) != null;
+ }
+
/**
* Handle necessary cleanup and reset tasks for GEL integration, to be called from onResume.
*/