summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdward Cross <edward.k.cross@gmail.com>2018-12-26 22:18:30 +0100
committerJoey <joey@lineageos.org>2018-12-27 12:42:40 +0100
commitfe9c56fe329cc7c8f01aef929cb66fe0904dea1a (patch)
tree1a626e34e9d63523e971a5f2ec3ec2d538bc136d
parent23817f7fc137db045cf369d3782b286a85df6c7c (diff)
downloadandroid_packages_apps_Trebuchet-fe9c56fe329cc7c8f01aef929cb66fe0904dea1a.tar.gz
android_packages_apps_Trebuchet-fe9c56fe329cc7c8f01aef929cb66fe0904dea1a.tar.bz2
android_packages_apps_Trebuchet-fe9c56fe329cc7c8f01aef929cb66fe0904dea1a.zip
QSB: request round search bar
Change-Id: Icf81d36e467fdbe5cc4e4a081c8e3ec2ebaa4263
-rw-r--r--proguard.flags5
-rw-r--r--src/com/android/launcher3/qsb/QsbContainerView.java29
-rw-r--r--src/com/android/launcher3/qsb/QsbWidgetHostView.java6
3 files changed, 40 insertions, 0 deletions
diff --git a/proguard.flags b/proguard.flags
index 93b0d34d8..8c9855944 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -139,3 +139,8 @@
-dontwarn android.app.**
-dontwarn android.view.**
-dontwarn android.os.**
+
+# QSB
+-keep class com.android.launcher3.qsb.QsbContainerView$QsbFragment {
+ public <init>(...);
+}
diff --git a/src/com/android/launcher3/qsb/QsbContainerView.java b/src/com/android/launcher3/qsb/QsbContainerView.java
index 8e29df16a..c9f6721ef 100644
--- a/src/com/android/launcher3/qsb/QsbContainerView.java
+++ b/src/com/android/launcher3/qsb/QsbContainerView.java
@@ -30,6 +30,8 @@ import android.appwidget.AppWidgetProviderInfo;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.content.pm.PackageManager;
import android.graphics.Rect;
import android.os.Bundle;
import android.util.AttributeSet;
@@ -53,6 +55,8 @@ import com.android.launcher3.config.FeatureFlags;
* AppWidgetManager directly, so that it keeps working in that case.
*/
public class QsbContainerView extends FrameLayout {
+ private static final String QSB_PROVIDER_CLASS
+ = "com.google.android.googlequicksearchbox.SearchWidgetProvider";
public QsbContainerView(Context context) {
super(context);
@@ -75,6 +79,26 @@ public class QsbContainerView extends FrameLayout {
super.setPadding(left, top, right, bottom);
}
+ public static void updateDefaultLayout(Context context, AppWidgetProviderInfo info) {
+ ComponentName provider = info.provider;
+ if (QSB_PROVIDER_CLASS.equals(provider.getClassName())) {
+ try {
+ ActivityInfo activityInfo =
+ context.getPackageManager().getReceiverInfo(provider,
+ PackageManager.GET_META_DATA);
+ Bundle metaData = activityInfo.metaData;
+ int resId = metaData.getInt(
+ "com.google.android.gsa.searchwidget.alt_initial_layout_cqsb", -1);
+ if (resId != -1) {
+ info.initialLayout = resId;
+ }
+ } catch (Exception e) {
+ // Ignore the exception since if any exceptions happen
+ // the original initialyLayout would be used.
+ }
+ }
+ }
+
/**
* A fragment to display the QSB.
*/
@@ -126,6 +150,11 @@ public class QsbContainerView extends FrameLayout {
return getDefaultView(container, false /* show setup icon */);
}
Bundle opts = createBindOptions();
+ // round quick search bar
+ opts.putString("attached-launcher-identifier",
+ getActivity().getPackageName());
+ opts.putString("requested-widget-style", "cqsb");
+
Activity activity = getActivity();
AppWidgetManager widgetManager = AppWidgetManager.getInstance(activity);
diff --git a/src/com/android/launcher3/qsb/QsbWidgetHostView.java b/src/com/android/launcher3/qsb/QsbWidgetHostView.java
index 407812dd1..906edf92a 100644
--- a/src/com/android/launcher3/qsb/QsbWidgetHostView.java
+++ b/src/com/android/launcher3/qsb/QsbWidgetHostView.java
@@ -17,6 +17,7 @@
package com.android.launcher3.qsb;
import android.appwidget.AppWidgetHostView;
+import android.appwidget.AppWidgetProviderInfo;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
@@ -46,6 +47,11 @@ public class QsbWidgetHostView extends AppWidgetHostView {
super.updateAppWidget(remoteViews);
}
+ @Override
+ public void setAppWidget(int appWidgetId, AppWidgetProviderInfo info) {
+ QsbContainerView.updateDefaultLayout(getContext(), info);
+ super.setAppWidget(appWidgetId, info);
+ }
public boolean isReinflateRequired(int orientation) {
// Re-inflate is required if the orientation has changed since last inflation.