Move PreferenceControllers to member variables to prevent memory leak

- Move PreferenceControllers to xml
- Clean up the PreferenceController so that it's less tied to a fragment
- Update and clean up the related robolectric test, so there are less
  mocks needed

Bug: 352606511
Test: manually check the Color Correction screen is shown correctly, and
choosing color correction options are reflected correctly
Test: atest DaltonizerRadioButtonPreferenceControllerTest
Test: atest ToggleDaltonizerPreferenceFragmentTest
Flag: EXEMPT (moving controller to xml can't be flagged)

Change-Id: I89b9366cfd7a398bb0572d34226d31d49373fd94
This commit is contained in:
Chun-Ku Lin
2024-07-13 04:21:38 +00:00
parent dc5469cf24
commit ec61f8bea3
5 changed files with 173 additions and 292 deletions

View File

@@ -32,24 +32,28 @@
android:key="daltonizer_mode_deuteranomaly"
android:persistent="false"
android:summary="@string/daltonizer_mode_deuteranomaly_summary"
android:title="@string/daltonizer_mode_deuteranomaly_title" />
android:title="@string/daltonizer_mode_deuteranomaly_title"
settings:controller="com.android.settings.accessibility.DaltonizerRadioButtonPreferenceController" />
<com.android.settingslib.widget.SelectorWithWidgetPreference
android:key="daltonizer_mode_protanomaly"
android:persistent="false"
android:summary="@string/daltonizer_mode_protanomaly_summary"
android:title="@string/daltonizer_mode_protanomaly_title" />
android:title="@string/daltonizer_mode_protanomaly_title"
settings:controller="com.android.settings.accessibility.DaltonizerRadioButtonPreferenceController" />
<com.android.settingslib.widget.SelectorWithWidgetPreference
android:key="daltonizer_mode_tritanomaly"
android:persistent="false"
android:summary="@string/daltonizer_mode_tritanomaly_summary"
android:title="@string/daltonizer_mode_tritanomaly_title" />
android:title="@string/daltonizer_mode_tritanomaly_title"
settings:controller="com.android.settings.accessibility.DaltonizerRadioButtonPreferenceController" />
<com.android.settingslib.widget.SelectorWithWidgetPreference
android:key="daltonizer_mode_grayscale"
android:persistent="false"
android:title="@string/daltonizer_mode_grayscale_title" />
android:title="@string/daltonizer_mode_grayscale_title"
settings:controller="com.android.settings.accessibility.DaltonizerRadioButtonPreferenceController" />
<com.android.settings.widget.SeekBarPreference
android:key="daltonizer_saturation"