Duplicate dark mode settings to accessibility display settings
Bug: 123227114 Test: Manual make RunSettingsRoboTests ROBOTEST_FILTER=AccessibilitySettings Change-Id: Icb60bc18e31377a2e73780004bd1bdea7bc96eea
This commit is contained in:
@@ -58,6 +58,14 @@
|
|||||||
android:title="@string/screen_zoom_title"
|
android:title="@string/screen_zoom_title"
|
||||||
settings:searchable="false"/>
|
settings:searchable="false"/>
|
||||||
|
|
||||||
|
<ListPreference
|
||||||
|
android:key="dark_ui_mode_accessibility"
|
||||||
|
android:title="@string/dark_ui_mode"
|
||||||
|
android:dialogTitle="@string/dark_ui_mode_title"
|
||||||
|
android:entries="@array/dark_ui_mode_entries"
|
||||||
|
android:entryValues="@array/dark_ui_mode_values"
|
||||||
|
settings:searchable="false" />
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:fragment="com.android.settings.accessibility.MagnificationPreferenceFragment"
|
android:fragment="com.android.settings.accessibility.MagnificationPreferenceFragment"
|
||||||
android:key="magnification_preference_screen"
|
android:key="magnification_preference_screen"
|
||||||
|
@@ -57,6 +57,7 @@ import com.android.internal.view.RotationPolicy.RotationPolicyListener;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.SettingsPreferenceFragment;
|
import com.android.settings.SettingsPreferenceFragment;
|
||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
|
import com.android.settings.display.DarkUIPreferenceController;
|
||||||
import com.android.settings.display.ToggleFontSizePreferenceFragment;
|
import com.android.settings.display.ToggleFontSizePreferenceFragment;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||||
@@ -133,6 +134,8 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
"accessibility_content_timeout_preference_fragment";
|
"accessibility_content_timeout_preference_fragment";
|
||||||
private static final String ACCESSIBILITY_CONTROL_TIMEOUT_PREFERENCE =
|
private static final String ACCESSIBILITY_CONTROL_TIMEOUT_PREFERENCE =
|
||||||
"accessibility_control_timeout_preference_fragment";
|
"accessibility_control_timeout_preference_fragment";
|
||||||
|
private static final String DARK_UI_MODE_PREFERENCE =
|
||||||
|
"dark_ui_mode_accessibility";
|
||||||
|
|
||||||
|
|
||||||
// Extras passed to sub-fragments.
|
// Extras passed to sub-fragments.
|
||||||
@@ -236,6 +239,8 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
private SwitchPreference mToggleInversionPreference;
|
private SwitchPreference mToggleInversionPreference;
|
||||||
private ColorInversionPreferenceController mInversionPreferenceController;
|
private ColorInversionPreferenceController mInversionPreferenceController;
|
||||||
private AccessibilityHearingAidPreferenceController mHearingAidPreferenceController;
|
private AccessibilityHearingAidPreferenceController mHearingAidPreferenceController;
|
||||||
|
private ListPreference mDarkUIModePreference;
|
||||||
|
private DarkUIPreferenceController mDarkUIPreferenceController;
|
||||||
|
|
||||||
private int mLongPressTimeoutDefault;
|
private int mLongPressTimeoutDefault;
|
||||||
|
|
||||||
@@ -501,6 +506,13 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
|
|
||||||
// Vibrations.
|
// Vibrations.
|
||||||
mVibrationPreferenceScreen = findPreference(VIBRATION_PREFERENCE_SCREEN);
|
mVibrationPreferenceScreen = findPreference(VIBRATION_PREFERENCE_SCREEN);
|
||||||
|
|
||||||
|
// Dark Mode.
|
||||||
|
mDarkUIModePreference = findPreference(DARK_UI_MODE_PREFERENCE);
|
||||||
|
mDarkUIPreferenceController = new DarkUIPreferenceController(getContext(),
|
||||||
|
DARK_UI_MODE_PREFERENCE);
|
||||||
|
mDarkUIPreferenceController.displayPreference(getPreferenceScreen());
|
||||||
|
mDarkUIModePreference.setSummary(mDarkUIPreferenceController.getSummary());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateAllPreferences() {
|
private void updateAllPreferences() {
|
||||||
@@ -683,6 +695,9 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
// If the quick setting is enabled, the preference MUST be enabled.
|
// If the quick setting is enabled, the preference MUST be enabled.
|
||||||
mInversionPreferenceController.updateState(mToggleInversionPreference);
|
mInversionPreferenceController.updateState(mToggleInversionPreference);
|
||||||
|
|
||||||
|
// Dark Mode
|
||||||
|
mDarkUIPreferenceController.updateState(mDarkUIModePreference);
|
||||||
|
|
||||||
// Power button ends calls.
|
// Power button ends calls.
|
||||||
if (KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_POWER)
|
if (KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_POWER)
|
||||||
&& Utils.isVoiceCapable(getActivity())) {
|
&& Utils.isVoiceCapable(getActivity())) {
|
||||||
|
@@ -21,14 +21,17 @@ import static com.google.common.truth.Truth.assertThat;
|
|||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
|
|
||||||
|
import android.app.UiModeManager;
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Vibrator;
|
import android.os.Vibrator;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
|
||||||
|
import androidx.preference.ListPreference;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.display.DarkUIPreferenceController;
|
||||||
import com.android.settings.testutils.XmlTestUtils;
|
import com.android.settings.testutils.XmlTestUtils;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -47,10 +50,13 @@ public class AccessibilitySettingsTest {
|
|||||||
"accessibility_content_timeout_preference_fragment";
|
"accessibility_content_timeout_preference_fragment";
|
||||||
private static final String ACCESSIBILITY_CONTROL_TIMEOUT_PREFERENCE =
|
private static final String ACCESSIBILITY_CONTROL_TIMEOUT_PREFERENCE =
|
||||||
"accessibility_control_timeout_preference_fragment";
|
"accessibility_control_timeout_preference_fragment";
|
||||||
|
private static final String DARK_UI_MODE_PREFERENCE =
|
||||||
|
"dark_ui_mode_accessibility";
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private ContentResolver mContentResolver;
|
private ContentResolver mContentResolver;
|
||||||
private AccessibilitySettings mSettings;
|
private AccessibilitySettings mSettings;
|
||||||
|
private UiModeManager mUiModeManager;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
@@ -59,6 +65,7 @@ public class AccessibilitySettingsTest {
|
|||||||
mContentResolver = mContext.getContentResolver();
|
mContentResolver = mContext.getContentResolver();
|
||||||
mSettings = spy(new AccessibilitySettings());
|
mSettings = spy(new AccessibilitySettings());
|
||||||
doReturn(mContext).when(mSettings).getContext();
|
doReturn(mContext).when(mSettings).getContext();
|
||||||
|
mUiModeManager = mContext.getSystemService(UiModeManager.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -146,4 +153,29 @@ public class AccessibilitySettingsTest {
|
|||||||
|
|
||||||
assertThat(preference.getSummary()).isEqualTo(mContext.getResources().getString(resId));
|
assertThat(preference.getSummary()).isEqualTo(mContext.getResources().getString(resId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDarkUIModePreferenceSummary_shouldUpdateSummary() {
|
||||||
|
final ListPreference darkUIModePreference = new ListPreference(mContext);
|
||||||
|
final DarkUIPreferenceController mController;
|
||||||
|
doReturn(darkUIModePreference).when(mSettings).findPreference(
|
||||||
|
DARK_UI_MODE_PREFERENCE);
|
||||||
|
mController = new DarkUIPreferenceController(mContext, DARK_UI_MODE_PREFERENCE);
|
||||||
|
final String darkUIModeDescription = modeToDescription(mUiModeManager.getNightMode());
|
||||||
|
darkUIModePreference.setSummary(mController.getSummary());
|
||||||
|
|
||||||
|
assertThat(darkUIModePreference.getSummary()).isEqualTo(darkUIModeDescription);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String modeToDescription(int mode) {
|
||||||
|
String[] values = mContext.getResources().getStringArray(R.array.dark_ui_mode_entries);
|
||||||
|
switch (mode) {
|
||||||
|
case UiModeManager.MODE_NIGHT_YES:
|
||||||
|
return values[0];
|
||||||
|
case UiModeManager.MODE_NIGHT_NO:
|
||||||
|
case UiModeManager.MODE_NIGHT_AUTO:
|
||||||
|
default:
|
||||||
|
return values[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user