Merge "Fix that the toggle of High contrast text doesn't change to turn off after tapping the Reset button." into tm-dev

This commit is contained in:
PETER LIANG
2022-03-16 02:35:33 +00:00
committed by Android (Google) Code Review
2 changed files with 27 additions and 1 deletions

View File

@@ -19,6 +19,9 @@ package com.android.settings.accessibility;
import android.content.Context;
import android.provider.Settings;
import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
@@ -27,6 +30,7 @@ import com.android.settings.core.TogglePreferenceController;
*/
public class HighTextContrastPreferenceController extends TogglePreferenceController implements
TextReadingResetController.ResetStateListener {
private SwitchPreference mSwitchPreference;
public HighTextContrastPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
@@ -54,8 +58,15 @@ public class HighTextContrastPreferenceController extends TogglePreferenceContro
return R.string.menu_key_accessibility;
}
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
mSwitchPreference = screen.findPreference(getPreferenceKey());
}
@Override
public void resetState() {
setChecked(false);
updateState(mSwitchPreference);
}
}

View File

@@ -19,8 +19,11 @@ package com.android.settings.accessibility;
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
import android.os.Looper;
import android.provider.Settings;
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -37,6 +40,7 @@ import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class)
public class HighTextContrastPreferenceControllerTest {
private static final String PREF_KEY = "text_contrast";
private static final int ON = 1;
private static final int OFF = 0;
private static final int UNKNOWN = -1;
@@ -44,12 +48,20 @@ public class HighTextContrastPreferenceControllerTest {
private Context mContext;
private SwitchPreference mPreference;
private HighTextContrastPreferenceController mController;
private PreferenceScreen mScreen;
@Before
public void setUp() {
mContext = ApplicationProvider.getApplicationContext();
if (Looper.myLooper() == null) {
Looper.prepare();
}
final PreferenceManager preferenceManager = new PreferenceManager(mContext);
mScreen = preferenceManager.createPreferenceScreen(mContext);
mPreference = new SwitchPreference(mContext);
mController = new HighTextContrastPreferenceController(mContext, "text_contrast");
mPreference.setKey(PREF_KEY);
mScreen.addPreference(mPreference);
mController = new HighTextContrastPreferenceController(mContext, PREF_KEY);
}
@Test
@@ -99,10 +111,13 @@ public class HighTextContrastPreferenceControllerTest {
@Test
public void resetState_shouldDisableTextContrast() {
mController.displayPreference(mScreen);
mController.setChecked(true);
mPreference.setChecked(true);
mController.resetState();
assertThat(mPreference.isChecked()).isFalse();
assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
Settings.Secure.ACCESSIBILITY_HIGH_TEXT_CONTRAST_ENABLED, UNKNOWN)).isEqualTo(OFF);
}