Preventing unnecessary options update to QSB provider
by checking if the options have changed before calling update

Bug: 28586377
Change-Id: Idf263b7a32ca85f23f728fa29b9c8ac84289052e
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index a5ebb52..123f657 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -3550,7 +3550,12 @@
             if (widgetId != -1) {
                 mQsb = mAppWidgetHost.createView(this, widgetId, searchProvider);
                 mQsb.setId(R.id.qsb_widget);
-                mQsb.updateAppWidgetOptions(opts);
+                if (!Utilities.containsAll(
+                        AppWidgetManager.getInstance(this).getAppWidgetOptions(widgetId), opts)) {
+                    // Launcher should not be updating the options often.
+                    FileLog.d(TAG, "Options for QSB were not same");
+                    mQsb.updateAppWidgetOptions(opts);
+                }
                 mQsb.setPadding(0, 0, 0, 0);
                 mSearchDropTargetBar.addView(mQsb);
                 mSearchDropTargetBar.setQsbSearchBar(mQsb);