From 56bf7ad33bc9d5ed3c18e7abefeec5c177ec75d7 Mon Sep 17 00:00:00 2001 From: Fengjiang Li Date: Mon, 17 Jun 2024 16:50:49 -0700 Subject: [PATCH] [Launcher Jank] Avoid making binder call IContentService$Stub$Proxy.registerContentObserver from SettingsCache Fix: 347789110 Test: manual Flag: NONE - jank fix Change-Id: Ib1409d6c856439455aa08eeb0cfbc8075a222d45 --- src/com/android/launcher3/util/SettingsCache.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/com/android/launcher3/util/SettingsCache.java b/src/com/android/launcher3/util/SettingsCache.java index ccd154a570..cd6701df93 100644 --- a/src/com/android/launcher3/util/SettingsCache.java +++ b/src/com/android/launcher3/util/SettingsCache.java @@ -18,6 +18,8 @@ package com.android.launcher3.util; import static android.provider.Settings.System.ACCELEROMETER_ROTATION; +import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; + import android.content.ContentResolver; import android.content.Context; import android.database.ContentObserver; @@ -87,7 +89,7 @@ public class SettingsCache extends ContentObserver implements SafeCloseable { @Override public void close() { - mResolver.unregisterContentObserver(this); + UI_HELPER_EXECUTOR.execute(() -> mResolver.unregisterContentObserver(this)); } @Override @@ -135,7 +137,8 @@ public class SettingsCache extends ContentObserver implements SafeCloseable { CopyOnWriteArrayList l = new CopyOnWriteArrayList<>(); l.add(changeListener); mListenerMap.put(uri, l); - mResolver.registerContentObserver(uri, false, this); + UI_HELPER_EXECUTOR.execute( + () -> mResolver.registerContentObserver(uri, false, this)); } }