Fix the summary of Color inversion or correction didn’t be updated after the content change.
Action: Observe the settings content change and then update the corresponding preference state. Bug: 245441772 Test: manual test Change-Id: I6205c2ebe0d1eda141e9b3bd00e4a21dfdba1760
This commit is contained in:
@@ -19,6 +19,7 @@ package com.android.settings.accessibility;
|
|||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.hardware.display.ColorDisplayManager;
|
import android.hardware.display.ColorDisplayManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.Handler;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
@@ -28,8 +29,12 @@ import androidx.preference.SwitchPreference;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.search.SearchIndexable;
|
import com.android.settingslib.search.SearchIndexable;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/** Accessibility settings for color and motion. */
|
/** Accessibility settings for color and motion. */
|
||||||
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
|
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
|
||||||
public class ColorAndMotionFragment extends DashboardFragment {
|
public class ColorAndMotionFragment extends DashboardFragment {
|
||||||
@@ -46,18 +51,48 @@ public class ColorAndMotionFragment extends DashboardFragment {
|
|||||||
private Preference mDisplayDaltonizerPreferenceScreen;
|
private Preference mDisplayDaltonizerPreferenceScreen;
|
||||||
private SwitchPreference mToggleDisableAnimationsPreference;
|
private SwitchPreference mToggleDisableAnimationsPreference;
|
||||||
private SwitchPreference mToggleLargePointerIconPreference;
|
private SwitchPreference mToggleLargePointerIconPreference;
|
||||||
|
private AccessibilitySettingsContentObserver mSettingsContentObserver;
|
||||||
|
|
||||||
|
private final List<String> mShortcutFeatureKeys = new ArrayList<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetricsCategory() {
|
public int getMetricsCategory() {
|
||||||
return SettingsEnums.ACCESSIBILITY_COLOR_AND_MOTION;
|
return SettingsEnums.ACCESSIBILITY_COLOR_AND_MOTION;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle) {
|
public void onCreate(Bundle icicle) {
|
||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
initializeAllPreferences();
|
initializeAllPreferences();
|
||||||
updateSystemPreferences();
|
updateSystemPreferences();
|
||||||
|
|
||||||
|
mShortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED);
|
||||||
|
mShortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED);
|
||||||
|
|
||||||
|
mSettingsContentObserver = new AccessibilitySettingsContentObserver(new Handler());
|
||||||
|
mSettingsContentObserver.registerKeysToObserverCallback(mShortcutFeatureKeys,
|
||||||
|
key -> updatePreferencesState());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updatePreferencesState() {
|
||||||
|
final List<AbstractPreferenceController> controllers = new ArrayList<>();
|
||||||
|
getPreferenceControllers().forEach(controllers::addAll);
|
||||||
|
controllers.forEach(controller -> controller.updateState(
|
||||||
|
findPreference(controller.getPreferenceKey())));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStart() {
|
||||||
|
super.onStart();
|
||||||
|
|
||||||
|
mSettingsContentObserver.register(getContentResolver());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStop() {
|
||||||
|
super.onStop();
|
||||||
|
|
||||||
|
mSettingsContentObserver.unregister(getContentResolver());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Reference in New Issue
Block a user