mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-20 11:18:21 +00:00
Merge "Preventing unnecessary options update to QSB provider by checking if the options have changed before calling update" into ub-launcher3-calgary
This commit is contained in:
@@ -3552,7 +3552,12 @@ public class Launcher extends Activity
|
||||
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);
|
||||
|
||||
@@ -868,6 +868,26 @@ public final class Utilities {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if {@param original} contains all entries defined in {@param updates} and
|
||||
* have the same value.
|
||||
* The comparison uses {@link Object#equals(Object)} to compare the values.
|
||||
*/
|
||||
public static boolean containsAll(Bundle original, Bundle updates) {
|
||||
for (String key : updates.keySet()) {
|
||||
Object value1 = updates.get(key);
|
||||
Object value2 = original.get(key);
|
||||
if (value1 == null) {
|
||||
if (value2 != null) {
|
||||
return false;
|
||||
}
|
||||
} else if (!value1.equals(value2)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* An extension of {@link BitmapDrawable} which returns the bitmap pixel size as intrinsic size.
|
||||
* This allows the badging to be done based on the action bitmap size rather than
|
||||
|
||||
Reference in New Issue
Block a user