summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/Utilities.java
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2014-11-12 18:00:23 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-11-12 18:00:23 +0000
commitb155bbb375c6bfed14f79def122d69c7659434f7 (patch)
tree60156d041869a8897538aa02c4d9ce744272f389 /src/com/android/launcher3/Utilities.java
parentbdc2b5f963a93bddade98daaf2a329c976b199e0 (diff)
parent594d76dc66cb5666830b62594909fed187987d42 (diff)
downloadandroid_packages_apps_Trebuchet-b155bbb375c6bfed14f79def122d69c7659434f7.tar.gz
android_packages_apps_Trebuchet-b155bbb375c6bfed14f79def122d69c7659434f7.tar.bz2
android_packages_apps_Trebuchet-b155bbb375c6bfed14f79def122d69c7659434f7.zip
Merge "Using the default search widget in Launcher3" into ub-now-queens
Diffstat (limited to 'src/com/android/launcher3/Utilities.java')
-rw-r--r--src/com/android/launcher3/Utilities.java38
1 files changed, 36 insertions, 2 deletions
diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java
index 0a9e0cb72..c0f75918d 100644
--- a/src/com/android/launcher3/Utilities.java
+++ b/src/com/android/launcher3/Utilities.java
@@ -18,6 +18,9 @@ package com.android.launcher3;
import android.annotation.TargetApi;
import android.app.Activity;
+import android.app.SearchManager;
+import android.appwidget.AppWidgetManager;
+import android.appwidget.AppWidgetProviderInfo;
import android.content.ActivityNotFoundException;
import android.content.ComponentName;
import android.content.Context;
@@ -39,8 +42,6 @@ import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.PaintDrawable;
import android.os.Build;
-import android.os.Build.VERSION;
-import android.os.Build.VERSION_CODES;
import android.util.Log;
import android.util.Pair;
import android.util.SparseArray;
@@ -508,4 +509,37 @@ public final class Utilities {
return v.getKeyDispatcherState() != null;
}
}
+
+ /**
+ * Returns a widget with category {@link AppWidgetProviderInfo#WIDGET_CATEGORY_SEARCHBOX}
+ * provided by the same package which is set to be global search activity.
+ * If widgetCategory is not supported, or no such widget is found, returns the first widget
+ * provided by the package.
+ */
+ @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
+ public static AppWidgetProviderInfo getSearchWidgetProvider(Context context) {
+ SearchManager searchManager =
+ (SearchManager) context.getSystemService(Context.SEARCH_SERVICE);
+ ComponentName searchComponent = searchManager.getGlobalSearchActivity();
+ if (searchComponent == null) return null;
+ String providerPkg = searchComponent.getPackageName();
+
+ AppWidgetProviderInfo defaultWidgetForSearchPackage = null;
+
+ AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
+ for (AppWidgetProviderInfo info : appWidgetManager.getInstalledProviders()) {
+ if (info.provider.getPackageName().equals(providerPkg)) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
+ if ((info.widgetCategory & AppWidgetProviderInfo.WIDGET_CATEGORY_SEARCHBOX) != 0) {
+ return info;
+ } else if (defaultWidgetForSearchPackage == null) {
+ defaultWidgetForSearchPackage = info;
+ }
+ } else {
+ return info;
+ }
+ }
+ }
+ return defaultWidgetForSearchPackage;
+ }
}