summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/util
diff options
context:
space:
mode:
authorHyunyoung Song <hyunyoungs@google.com>2018-12-04 15:43:16 -0800
committerHyunyoung Song <hyunyoungs@google.com>2019-01-04 11:57:52 -0800
commitc55a350da84f14fff530b95c99f89890e450a79b (patch)
tree837ca7c4f0951efe6b116407dfb2e9158e0975e7 /src/com/android/launcher3/util
parente018711aac98522f2b24cb01cd95e17125aaf178 (diff)
downloadandroid_packages_apps_Trebuchet-c55a350da84f14fff530b95c99f89890e450a79b.tar.gz
android_packages_apps_Trebuchet-c55a350da84f14fff530b95c99f89890e450a79b.tar.bz2
android_packages_apps_Trebuchet-c55a350da84f14fff530b95c99f89890e450a79b.zip
Refresh icon cache when icon shape path has changed
Bug: 120505990 $ adb shell cmd overlay enable --user 0 com.android.theme.icon.roundedrect $ adb shell cmd overlay disable --user 0 com.android.theme.icon.roundedrect $ adb shell cmd overlay enable --user 0 com.android.theme.icon.teardrop $ adb shell cmd overlay disable --user 0 com.android.theme.icon.teardrop Change-Id: I06663b9727f7434aae737d39977f1e6cf09bffbf
Diffstat (limited to 'src/com/android/launcher3/util')
-rw-r--r--src/com/android/launcher3/util/ConfigMonitor.java19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/com/android/launcher3/util/ConfigMonitor.java b/src/com/android/launcher3/util/ConfigMonitor.java
index 717acdccb..607afabef 100644
--- a/src/com/android/launcher3/util/ConfigMonitor.java
+++ b/src/com/android/launcher3/util/ConfigMonitor.java
@@ -29,6 +29,7 @@ import android.util.Log;
import android.view.Display;
import android.view.WindowManager;
+import com.android.launcher3.InvariantDeviceProfile;
import com.android.launcher3.MainThreadExecutor;
import com.android.launcher3.Utilities.Consumer;
@@ -40,6 +41,8 @@ public class ConfigMonitor extends BroadcastReceiver implements DisplayListener
private static final String TAG = "ConfigMonitor";
+ private final String ACTION_OVERLAY_CHANGED = "android.intent.action.OVERLAY_CHANGED";
+
private final Point mTmpPoint1 = new Point();
private final Point mTmpPoint2 = new Point();
@@ -72,7 +75,15 @@ public class ConfigMonitor extends BroadcastReceiver implements DisplayListener
mCallback = callback;
+ // Listen for configuration change
mContext.registerReceiver(this, new IntentFilter(Intent.ACTION_CONFIGURATION_CHANGED));
+
+ // Listen for {@link OverlayManager} change
+ IntentFilter filter = new IntentFilter(ACTION_OVERLAY_CHANGED);
+ filter.addDataScheme("package");
+ mContext.registerReceiver(this, filter);
+
+ // Listen for display manager change
mContext.getSystemService(DisplayManager.class)
.registerDisplayListener(this, new Handler(UiThreadHelper.getBackgroundLooper()));
}
@@ -80,8 +91,14 @@ public class ConfigMonitor extends BroadcastReceiver implements DisplayListener
@Override
public void onReceive(Context context, Intent intent) {
Configuration config = context.getResources().getConfiguration();
+ // TODO: when overlay manager service encodes more information to the Uri such as category
+ // of the overlay, only listen to the ones that are of interest to launcher.
+ if (intent != null && ACTION_OVERLAY_CHANGED.equals(intent.getAction())) {
+ Log.d(TAG, "Overlay changed.");
+ notifyChange();
+ }
if (mFontScale != config.fontScale || mDensity != config.densityDpi) {
- Log.d(TAG, "Configuration changed");
+ Log.d(TAG, "Configuration changed.");
notifyChange();
}
}