From ee79e0f5d2e9a968b724da985c0cf07484b71447 Mon Sep 17 00:00:00 2001 From: Adnan Begovic Date: Thu, 10 Apr 2025 16:28:43 -0700 Subject: [PATCH] launcher3: Use @UiExecutor within ThemeManager. Use the provided @UiExecutor within the ThemeManager instead of referencing the MAIN_EXECUTOR directly. Bug: 407593767 Test: ThemeManagerTest Flag: NONE - new module Change-Id: I6359adc1308bdb209dcf6c6e1c2d3fc7f4438585 --- src/com/android/launcher3/graphics/ThemeManager.kt | 8 ++++++-- .../src/com/android/launcher3/util/DaggerGraphs.kt | 4 ++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/com/android/launcher3/graphics/ThemeManager.kt b/src/com/android/launcher3/graphics/ThemeManager.kt index 3ea587db75..fbf3a3d5de 100644 --- a/src/com/android/launcher3/graphics/ThemeManager.kt +++ b/src/com/android/launcher3/graphics/ThemeManager.kt @@ -23,6 +23,7 @@ import com.android.launcher3.Item import com.android.launcher3.LauncherPrefChangeListener import com.android.launcher3.LauncherPrefs import com.android.launcher3.LauncherPrefs.Companion.backedUpItem +import com.android.launcher3.concurrent.annotations.Ui import com.android.launcher3.dagger.ApplicationContext import com.android.launcher3.dagger.LauncherAppComponent import com.android.launcher3.dagger.LauncherAppSingleton @@ -33,9 +34,10 @@ import com.android.launcher3.shapes.IconShapeModel.Companion.DEFAULT_ICON_RADIUS import com.android.launcher3.shapes.ShapesProvider import com.android.launcher3.util.DaggerSingletonObject import com.android.launcher3.util.DaggerSingletonTracker -import com.android.launcher3.util.Executors.MAIN_EXECUTOR +import com.android.launcher3.util.LooperExecutor import com.android.launcher3.util.SimpleBroadcastReceiver import java.util.concurrent.CopyOnWriteArrayList +import java.util.concurrent.Executor import javax.inject.Inject /** Centralized class for managing Launcher icon theming */ @@ -44,6 +46,7 @@ class ThemeManager @Inject constructor( @ApplicationContext private val context: Context, + @Ui private val uiExecutor: LooperExecutor, private val prefs: LauncherPrefs, private val iconControllerFactory: IconControllerFactory, lifecycle: DaggerSingletonTracker, @@ -72,7 +75,8 @@ constructor( private val listeners = CopyOnWriteArrayList() init { - val receiver = SimpleBroadcastReceiver(context, MAIN_EXECUTOR) { verifyIconState() } + val receiver = SimpleBroadcastReceiver( + context, uiExecutor) { verifyIconState() } receiver.registerPkgActions("android", ACTION_OVERLAY_CHANGED) val keys = (iconControllerFactory.prefKeys + PREF_ICON_SHAPE) diff --git a/tests/multivalentTests/src/com/android/launcher3/util/DaggerGraphs.kt b/tests/multivalentTests/src/com/android/launcher3/util/DaggerGraphs.kt index 22f04f49b6..f268b08887 100644 --- a/tests/multivalentTests/src/com/android/launcher3/util/DaggerGraphs.kt +++ b/tests/multivalentTests/src/com/android/launcher3/util/DaggerGraphs.kt @@ -18,6 +18,8 @@ package com.android.launcher3.util import com.android.launcher3.FakeLauncherPrefs import com.android.launcher3.LauncherPrefs +import com.android.launcher3.concurrent.ExecutorsModule +import com.android.launcher3.util.dagger.LauncherExecutorsModule import com.android.launcher3.dagger.ApiWrapperModule import com.android.launcher3.dagger.AppModule import com.android.launcher3.dagger.LauncherConcurrencyModule @@ -43,6 +45,8 @@ abstract class FakePrefsModule { AppModule::class, PerDisplayModule::class, LauncherConcurrencyModule::class, + ExecutorsModule::class, + LauncherExecutorsModule::class, ] ) class CommonModulesForTest