Make ZenIconLoader injectable (in SystemUI)

In settings, reduce calls to getInstance(), and pass it to preferences and their controllers instead.

Bug: 360399800
Test: atest ZenModesListItemPreferenceTest ZenModesListPreferenceControllerTest
Flag: android.app.modes_ui
Change-Id: I318320575e3bd32b5d13a385fa644f8032484e1c
This commit is contained in:
Matías Hernández
2024-08-26 15:42:58 +02:00
parent 23513bf7fe
commit 227548d927
10 changed files with 59 additions and 30 deletions

View File

@@ -30,6 +30,7 @@ import androidx.annotation.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.notification.modes.ZenIconLoader;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
@@ -102,7 +103,8 @@ public abstract class ZenModeEditNameIconFragmentBase extends DashboardFragment
protected final List<AbstractPreferenceController> createPreferenceControllers(
Context context) {
return ImmutableList.of(
new ZenModeIconPickerIconPreferenceController(context, "chosen_icon", this),
new ZenModeIconPickerIconPreferenceController(context, ZenIconLoader.getInstance(),
"chosen_icon", this),
new ZenModeEditNamePreferenceController(context, "name", this::setModeName),
new ZenModeIconPickerListPreferenceController(context, "icon_list",
this::setModeIcon),