summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoman Birg <roman@cyngn.com>2015-09-23 11:59:24 -0700
committerAbhisek Devkota <ciwrl@cyanogenmod.com>2015-10-23 13:16:35 -0700
commit174137ed29308279e598932ebf5e84b77146133e (patch)
tree0219386118db3442d414e9954117d3d8e0b33a1c
parent585b522239eb0d329029bad53db6566b564da485 (diff)
downloadandroid_packages_apps_Trebuchet-174137ed29308279e598932ebf5e84b77146133e.tar.gz
android_packages_apps_Trebuchet-174137ed29308279e598932ebf5e84b77146133e.tar.bz2
android_packages_apps_Trebuchet-174137ed29308279e598932ebf5e84b77146133e.zip
Trebuchet: improve search widget binding logic
This logic comes from AOSP Launcher3 commit: https://android.googlesource.com/platform/packages/apps/Launcher3/+/594d76dc66cb5666830b62594909fed187987d42 This will help fix instances when there is more than one search manager, or the search manager having more than one widget, in resolving the correct search widget. CYNGNOS-1145 Change-Id: Idd29c9e8cf7573436ef4a755c2bc9a8d865c16c5 Signed-off-by: Roman Birg <roman@cyngn.com>
-rw-r--r--src/com/android/launcher3/Launcher.java24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index f055b5a37..86925ef51 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -4614,21 +4614,29 @@ public class Launcher extends Activity
if (mAppWidgetManager == null) return null;
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
- final Intent assistIntent = searchManager.getAssistIntent(this, false);
- if (assistIntent == null) {
- return null;
- }
- ComponentName searchComponent = assistIntent.getComponent();
+ ComponentName searchComponent = searchManager.getGlobalSearchActivity();
+
// Find the first widget from the same package as the global assist activity
List<AppWidgetProviderInfo> widgets = AppWidgetManager.getInstance(this)
- .getInstalledProviders(AppWidgetProviderInfo.WIDGET_CATEGORY_HOME_SCREEN);
+ .getInstalledProviders();
+
+ AppWidgetProviderInfo defaultWidgetForSearchPackage = null;
+
for (AppWidgetProviderInfo info : widgets) {
if (info.provider.getPackageName().equals(searchComponent.getPackageName())) {
- return info;
+ 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 null;
+ return defaultWidgetForSearchPackage;
}
public Pair<Integer, AppWidgetProviderInfo> bindSearchAppWidget(AppWidgetHost host) {