Update to use android:summary="%s" in ListPreference

* No need to call updateState() in onPreferenceChange()

Bug: 274326713
Test: make RunSettingsRoboTests ROBOTEST_FILTER="(AccessibilityButtonGesturePreferenceControllerTest|CaptioningLocalePreferenceControllerTest|CaptioningFontSizeControllerTest|CaptioningTypefaceControllerTest|AccessibilityButtonLocationPreferenceControllerTest|FloatingMenuSizePreferenceControllerTest|SelectLongPressTimeoutPreferenceControllerTest)"
Change-Id: I14a87597a44c5500ff7e676664b67feb9c352494
This commit is contained in:
jasonwshsu
2023-03-20 00:10:09 +08:00
parent 3a4c6feb0a
commit 6c3805288b
11 changed files with 75 additions and 147 deletions

View File

@@ -24,6 +24,7 @@
android:entries="@array/long_press_timeout_selector_list_titles" android:entries="@array/long_press_timeout_selector_list_titles"
android:entryValues="@array/long_press_timeout_selector_values" android:entryValues="@array/long_press_timeout_selector_values"
android:key="select_long_press_timeout_preference" android:key="select_long_press_timeout_preference"
android:summary="%s"
android:persistent="false" android:persistent="false"
android:title="@string/accessibility_long_press_timeout_preference_title" android:title="@string/accessibility_long_press_timeout_preference_title"
settings:controller="com.android.settings.accessibility.SelectLongPressTimeoutPreferenceController"/> settings:controller="com.android.settings.accessibility.SelectLongPressTimeoutPreferenceController"/>

View File

@@ -19,21 +19,30 @@ package com.android.settings.accessibility;
import android.content.Context; import android.content.Context;
import android.provider.Settings; import android.provider.Settings;
import androidx.annotation.IntDef;
import androidx.preference.ListPreference; import androidx.preference.ListPreference;
import androidx.preference.Preference; import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.google.common.primitives.Ints; import com.google.common.primitives.Ints;
import java.util.Optional; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/** Preference controller that controls the button or gesture in accessibility button page. */ /** Preference controller that controls the button or gesture in accessibility button page. */
public class AccessibilityButtonGesturePreferenceController extends BasePreferenceController public class AccessibilityButtonGesturePreferenceController extends BasePreferenceController
implements Preference.OnPreferenceChangeListener { implements Preference.OnPreferenceChangeListener {
private Optional<Integer> mDefaultGesture = Optional.empty(); @Retention(RetentionPolicy.SOURCE)
@IntDef({
Mode.BUTTON,
Mode.GESTURE,
})
private @interface Mode {
int BUTTON = 1;
int GESTURE = 2;
}
public AccessibilityButtonGesturePreferenceController(Context context, String preferenceKey) { public AccessibilityButtonGesturePreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey); super(context, preferenceKey);
@@ -47,12 +56,9 @@ public class AccessibilityButtonGesturePreferenceController extends BasePreferen
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
final ListPreference listPreference = (ListPreference) preference;
final Integer value = Ints.tryParse((String) newValue); final Integer value = Ints.tryParse((String) newValue);
if (value != null) { if (value != null) {
Settings.Secure.putInt(mContext.getContentResolver(), putCurrentAccessibilityButtonMode(value);
Settings.Secure.ACCESSIBILITY_BUTTON_MODE, value);
updateState(listPreference);
} }
return true; return true;
} }
@@ -62,21 +68,17 @@ public class AccessibilityButtonGesturePreferenceController extends BasePreferen
super.updateState(preference); super.updateState(preference);
final ListPreference listPreference = (ListPreference) preference; final ListPreference listPreference = (ListPreference) preference;
listPreference.setValue(getCurrentAccessibilityButtonMode()); listPreference.setValue(String.valueOf(getCurrentAccessibilityButtonMode()));
} }
private String getCurrentAccessibilityButtonMode() { @Mode
final int mode = Settings.Secure.getInt(mContext.getContentResolver(), private int getCurrentAccessibilityButtonMode() {
Settings.Secure.ACCESSIBILITY_BUTTON_MODE, getDefaultGestureValue()); return Settings.Secure.getInt(mContext.getContentResolver(),
return String.valueOf(mode); Settings.Secure.ACCESSIBILITY_BUTTON_MODE, Mode.BUTTON);
} }
private int getDefaultGestureValue() { private void putCurrentAccessibilityButtonMode(@Mode int mode) {
if (!mDefaultGesture.isPresent()) { Settings.Secure.putInt(mContext.getContentResolver(),
final String[] valuesList = mContext.getResources().getStringArray( Settings.Secure.ACCESSIBILITY_BUTTON_MODE, mode);
R.array.accessibility_button_gesture_selector_values);
mDefaultGesture = Optional.of(Integer.parseInt(valuesList[0]));
}
return mDefaultGesture.get();
} }
} }

View File

@@ -19,21 +19,30 @@ package com.android.settings.accessibility;
import android.content.Context; import android.content.Context;
import android.provider.Settings; import android.provider.Settings;
import androidx.annotation.IntDef;
import androidx.preference.ListPreference; import androidx.preference.ListPreference;
import androidx.preference.Preference; import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.google.common.primitives.Ints; import com.google.common.primitives.Ints;
import java.util.Optional; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/** Preference controller that controls the preferred location in accessibility button page. */ /** Preference controller that controls the preferred location in accessibility button page. */
public class AccessibilityButtonLocationPreferenceController extends BasePreferenceController public class AccessibilityButtonLocationPreferenceController extends BasePreferenceController
implements Preference.OnPreferenceChangeListener { implements Preference.OnPreferenceChangeListener {
private Optional<Integer> mDefaultLocation = Optional.empty(); @Retention(RetentionPolicy.SOURCE)
@IntDef({
Location.FLOATING_MENU,
Location.NAVIGATION_BAR,
})
private @interface Location {
int FLOATING_MENU = 1;
int NAVIGATION_BAR = 0;
}
public AccessibilityButtonLocationPreferenceController(Context context, String preferenceKey) { public AccessibilityButtonLocationPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey); super(context, preferenceKey);
@@ -47,12 +56,9 @@ public class AccessibilityButtonLocationPreferenceController extends BasePrefere
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
final ListPreference listPreference = (ListPreference) preference;
final Integer value = Ints.tryParse((String) newValue); final Integer value = Ints.tryParse((String) newValue);
if (value != null) { if (value != null) {
Settings.Secure.putInt(mContext.getContentResolver(), putCurrentAccessibilityButtonMode(value);
Settings.Secure.ACCESSIBILITY_BUTTON_MODE, value);
updateState(listPreference);
} }
return true; return true;
} }
@@ -62,21 +68,17 @@ public class AccessibilityButtonLocationPreferenceController extends BasePrefere
super.updateState(preference); super.updateState(preference);
final ListPreference listPreference = (ListPreference) preference; final ListPreference listPreference = (ListPreference) preference;
listPreference.setValue(getCurrentAccessibilityButtonMode()); listPreference.setValue(String.valueOf(getCurrentAccessibilityButtonMode()));
} }
private String getCurrentAccessibilityButtonMode() { @Location
final int mode = Settings.Secure.getInt(mContext.getContentResolver(), private int getCurrentAccessibilityButtonMode() {
Settings.Secure.ACCESSIBILITY_BUTTON_MODE, getDefaultLocationValue()); return Settings.Secure.getInt(mContext.getContentResolver(),
return String.valueOf(mode); Settings.Secure.ACCESSIBILITY_BUTTON_MODE, Location.FLOATING_MENU);
} }
private int getDefaultLocationValue() { private void putCurrentAccessibilityButtonMode(@Location int location) {
if (!mDefaultLocation.isPresent()) { Settings.Secure.putInt(mContext.getContentResolver(),
final String[] valuesList = mContext.getResources().getStringArray( Settings.Secure.ACCESSIBILITY_BUTTON_MODE, location);
R.array.accessibility_button_location_selector_values);
mDefaultLocation = Optional.of(Integer.parseInt(valuesList[0]));
}
return mDefaultLocation.get();
} }
} }

View File

@@ -16,14 +16,12 @@
package com.android.settings.accessibility; package com.android.settings.accessibility;
import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.provider.Settings; import android.provider.Settings;
import android.view.accessibility.CaptioningManager; import android.view.accessibility.CaptioningManager;
import androidx.preference.ListPreference; import androidx.preference.ListPreference;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
@@ -46,22 +44,20 @@ public class CaptioningFontSizeController extends BasePreferenceController
} }
@Override @Override
public void displayPreference(PreferenceScreen screen) { public void updateState(Preference preference) {
super.displayPreference(screen); super.updateState(preference);
final ListPreference listPreference = screen.findPreference(getPreferenceKey()); final ListPreference listPreference = (ListPreference) preference;
final float fontSize = mCaptioningManager.getFontScale(); final float fontSize = mCaptioningManager.getFontScale();
listPreference.setValue(Float.toString(fontSize)); listPreference.setValue(Float.toString(fontSize));
} }
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
final ListPreference listPreference = (ListPreference) preference;
final ContentResolver cr = mContext.getContentResolver();
Settings.Secure.putFloat( Settings.Secure.putFloat(
cr, Settings.Secure.ACCESSIBILITY_CAPTIONING_FONT_SCALE, mContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_CAPTIONING_FONT_SCALE,
Float.parseFloat((String) newValue)); Float.parseFloat((String) newValue));
listPreference.setValue((String) newValue);
mCaptionHelper.setEnabled(true); mCaptionHelper.setEnabled(true);
return false; return true;
} }
} }

View File

@@ -16,14 +16,12 @@
package com.android.settings.accessibility; package com.android.settings.accessibility;
import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.provider.Settings; import android.provider.Settings;
import android.view.accessibility.CaptioningManager.CaptionStyle; import android.view.accessibility.CaptioningManager.CaptionStyle;
import androidx.preference.ListPreference; import androidx.preference.ListPreference;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
@@ -44,23 +42,21 @@ public class CaptioningTypefaceController extends BasePreferenceController
} }
@Override @Override
public void displayPreference(PreferenceScreen screen) { public void updateState(Preference preference) {
super.displayPreference(screen); super.updateState(preference);
final ListPreference listPreference = screen.findPreference(getPreferenceKey()); final ListPreference listPreference = (ListPreference) preference;
final ContentResolver cr = mContext.getContentResolver(); final CaptionStyle attrs = CaptionStyle.getCustomStyle(mContext.getContentResolver());
final CaptionStyle attrs = CaptionStyle.getCustomStyle(cr);
final String rawTypeface = attrs.mRawTypeface; final String rawTypeface = attrs.mRawTypeface;
listPreference.setValue(rawTypeface == null ? "" : rawTypeface); listPreference.setValue(rawTypeface == null ? "" : rawTypeface);
} }
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
final ListPreference listPreference = (ListPreference) preference;
final ContentResolver cr = mContext.getContentResolver();
Settings.Secure.putString( Settings.Secure.putString(
cr, Settings.Secure.ACCESSIBILITY_CAPTIONING_TYPEFACE, (String) newValue); mContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_CAPTIONING_TYPEFACE,
listPreference.setValue((String) newValue); (String) newValue);
mCaptionHelper.setEnabled(true); mCaptionHelper.setEnabled(true);
return false; return true;
} }
} }

View File

@@ -22,7 +22,6 @@ import android.database.ContentObserver;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.provider.Settings; import android.provider.Settings;
import android.util.ArrayMap;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
@@ -30,7 +29,6 @@ import androidx.preference.ListPreference;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnPause;
@@ -52,9 +50,6 @@ public class FloatingMenuSizePreferenceController extends BasePreferenceControll
@VisibleForTesting @VisibleForTesting
ListPreference mPreference; ListPreference mPreference;
private final ArrayMap<String, String> mValueTitleMap = new ArrayMap<>();
private int mDefaultSize;
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@IntDef({ @IntDef({
Size.SMALL, Size.SMALL,
@@ -75,8 +70,6 @@ public class FloatingMenuSizePreferenceController extends BasePreferenceControll
updateAvailabilityStatus(); updateAvailabilityStatus();
} }
}; };
initValueTitleMap();
} }
@Override @Override
@@ -94,11 +87,9 @@ public class FloatingMenuSizePreferenceController extends BasePreferenceControll
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
final ListPreference listPreference = (ListPreference) preference;
final Integer value = Ints.tryParse((String) newValue); final Integer value = Ints.tryParse((String) newValue);
if (value != null) { if (value != null) {
putAccessibilityFloatingMenuSize(value); putAccessibilityFloatingMenuSize(value);
updateState(listPreference);
} }
return true; return true;
} }
@@ -108,7 +99,7 @@ public class FloatingMenuSizePreferenceController extends BasePreferenceControll
super.updateState(preference); super.updateState(preference);
final ListPreference listPreference = (ListPreference) preference; final ListPreference listPreference = (ListPreference) preference;
listPreference.setValue(String.valueOf(getAccessibilityFloatingMenuSize(mDefaultSize))); listPreference.setValue(String.valueOf(getAccessibilityFloatingMenuSize()));
} }
@Override @Override
@@ -129,25 +120,10 @@ public class FloatingMenuSizePreferenceController extends BasePreferenceControll
mPreference.setEnabled(AccessibilityUtil.isFloatingMenuEnabled(mContext)); mPreference.setEnabled(AccessibilityUtil.isFloatingMenuEnabled(mContext));
} }
private void initValueTitleMap() {
if (mValueTitleMap.size() == 0) {
final String[] values = mContext.getResources().getStringArray(
R.array.accessibility_button_size_selector_values);
final String[] titles = mContext.getResources().getStringArray(
R.array.accessibility_button_size_selector_titles);
final int mapSize = values.length;
mDefaultSize = Integer.parseInt(values[0]);
for (int i = 0; i < mapSize; i++) {
mValueTitleMap.put(values[i], titles[i]);
}
}
}
@Size @Size
private int getAccessibilityFloatingMenuSize(@Size int defaultValue) { private int getAccessibilityFloatingMenuSize() {
return Settings.Secure.getInt(mContentResolver, return Settings.Secure.getInt(mContentResolver,
Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE, defaultValue); Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE, Size.SMALL);
} }
private void putAccessibilityFloatingMenuSize(@Size int value) { private void putAccessibilityFloatingMenuSize(@Size int value) {

View File

@@ -50,11 +50,9 @@ public class SelectLongPressTimeoutPreferenceController extends BasePreferenceCo
if (!(preference instanceof ListPreference)) { if (!(preference instanceof ListPreference)) {
return false; return false;
} }
final ListPreference listPreference = (ListPreference) preference;
final int newValue = Integer.parseInt((String) object); final int newValue = Integer.parseInt((String) object);
Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.putInt(mContext.getContentResolver(),
Settings.Secure.LONG_PRESS_TIMEOUT, newValue); Settings.Secure.LONG_PRESS_TIMEOUT, newValue);
updateState(listPreference);
return true; return true;
} }
@@ -62,16 +60,9 @@ public class SelectLongPressTimeoutPreferenceController extends BasePreferenceCo
@Override @Override
public void updateState(Preference preference) { public void updateState(Preference preference) {
super.updateState(preference); super.updateState(preference);
if (!(preference instanceof ListPreference)) {
return;
}
final ListPreference listPreference = (ListPreference) preference; final ListPreference listPreference = (ListPreference) preference;
listPreference.setValue(getLongPressTimeoutValue());
}
@Override listPreference.setValue(getLongPressTimeoutValue());
public CharSequence getSummary() {
return mLongPressTimeoutValueToTitleMap.get(getLongPressTimeoutValue());
} }
private String getLongPressTimeoutValue() { private String getLongPressTimeoutValue() {

View File

@@ -16,7 +16,6 @@
package com.android.settings.accessibility; package com.android.settings.accessibility;
import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU;
import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE_GESTURE; import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE_GESTURE;
import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON;
import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL;
@@ -93,13 +92,4 @@ public class AccessibilityButtonGesturePreferenceControllerTest {
final String gestureValue = String.valueOf(ACCESSIBILITY_BUTTON_MODE_GESTURE); final String gestureValue = String.valueOf(ACCESSIBILITY_BUTTON_MODE_GESTURE);
assertThat(mListPreference.getValue()).isEqualTo(gestureValue); assertThat(mListPreference.getValue()).isEqualTo(gestureValue);
} }
@Test
public void onPreferenceChange_a11yBtnModeFloatingMenu_floatingMenuValue() {
final String floatingMenuValue = String.valueOf(ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU);
mController.onPreferenceChange(mListPreference, floatingMenuValue);
assertThat(mListPreference.getValue()).isEqualTo(floatingMenuValue);
}
} }

View File

@@ -16,7 +16,6 @@
package com.android.settings.accessibility; package com.android.settings.accessibility;
import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU;
import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE_NAVIGATION_BAR; import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE_NAVIGATION_BAR;
import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON;
import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL;
@@ -94,13 +93,4 @@ public class AccessibilityButtonLocationPreferenceControllerTest {
final String navigationBarValue = String.valueOf(ACCESSIBILITY_BUTTON_MODE_NAVIGATION_BAR); final String navigationBarValue = String.valueOf(ACCESSIBILITY_BUTTON_MODE_NAVIGATION_BAR);
assertThat(mListPreference.getValue()).isEqualTo(navigationBarValue); assertThat(mListPreference.getValue()).isEqualTo(navigationBarValue);
} }
@Test
public void onPreferenceChange_a11yBtnModeFloatingMenu_floatingMenuValue() {
final String floatingMenuValue = String.valueOf(ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU);
mController.onPreferenceChange(mListPreference, floatingMenuValue);
assertThat(mListPreference.getValue()).isEqualTo(floatingMenuValue);
}
} }

View File

@@ -64,6 +64,7 @@ public class CaptioningFontSizeControllerTest {
mPreference = new ListPreference(mContext); mPreference = new ListPreference(mContext);
mPreference.setEntries(R.array.captioning_font_size_selector_titles); mPreference.setEntries(R.array.captioning_font_size_selector_titles);
mPreference.setEntryValues(R.array.captioning_font_size_selector_values); mPreference.setEntryValues(R.array.captioning_font_size_selector_values);
mPreference.setSummary("%s");
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
CaptioningManager captioningManager = mContext.getSystemService(CaptioningManager.class); CaptioningManager captioningManager = mContext.getSystemService(CaptioningManager.class);
mShadowCaptioningManager = Shadow.extract(captioningManager); mShadowCaptioningManager = Shadow.extract(captioningManager);
@@ -76,28 +77,19 @@ public class CaptioningFontSizeControllerTest {
} }
@Test @Test
public void displayPreference_byDefault_shouldReturnDefault() { public void updateState_byDefault_shouldReturnDefault() {
mController.displayPreference(mScreen); mController.updateState(mPreference);
assertThat(mPreference.getEntry().toString()).isEqualTo("Medium"); assertThat(mPreference.getSummary().toString()).isEqualTo("Medium");
} }
@Test @Test
public void displayPreference_bySmallValue_shouldReturnSmall() { public void updateState_bySmallValue_shouldReturnSmall() {
mShadowCaptioningManager.setFontScale(0.5f); mShadowCaptioningManager.setFontScale(0.5f);
mController.displayPreference(mScreen); mController.updateState(mPreference);
assertThat(mPreference.getEntry().toString()).isEqualTo("Small"); assertThat(mPreference.getSummary().toString()).isEqualTo("Small");
}
@Test
public void onPreferenceChange_shouldReturnSmall() {
mController.displayPreference(mScreen);
mController.onPreferenceChange(mPreference, "0.5");
assertThat(mPreference.getEntry().toString()).isEqualTo("Small");
} }
@Test @Test

View File

@@ -64,6 +64,7 @@ public class CaptioningTypefaceControllerTest {
mPreference = new ListPreference(mContext); mPreference = new ListPreference(mContext);
mPreference.setEntries(R.array.captioning_typeface_selector_titles); mPreference.setEntries(R.array.captioning_typeface_selector_titles);
mPreference.setEntryValues(R.array.captioning_typeface_selector_values); mPreference.setEntryValues(R.array.captioning_typeface_selector_values);
mPreference.setSummary("%s");
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
CaptioningManager captioningManager = mContext.getSystemService(CaptioningManager.class); CaptioningManager captioningManager = mContext.getSystemService(CaptioningManager.class);
mShadowCaptioningManager = Shadow.extract(captioningManager); mShadowCaptioningManager = Shadow.extract(captioningManager);
@@ -76,29 +77,20 @@ public class CaptioningTypefaceControllerTest {
} }
@Test @Test
public void displayPreference_byDefault_shouldReturnDefault() { public void updateState_byDefault_shouldReturnDefault() {
mController.displayPreference(mScreen); mController.updateState(mPreference);
assertThat(mPreference.getEntry().toString()).isEqualTo("Default"); assertThat(mPreference.getSummary().toString()).isEqualTo("Default");
} }
@Test @Test
public void displayPreference_bySerif_shouldReturnSerif() { public void updateState_bySerif_shouldReturnSerif() {
Settings.Secure.putString(mContext.getContentResolver(), Settings.Secure.putString(mContext.getContentResolver(),
Settings.Secure.ACCESSIBILITY_CAPTIONING_TYPEFACE, "serif"); Settings.Secure.ACCESSIBILITY_CAPTIONING_TYPEFACE, "serif");
mController.displayPreference(mScreen); mController.updateState(mPreference);
assertThat(mPreference.getEntry().toString()).isEqualTo("Serif"); assertThat(mPreference.getSummary().toString()).isEqualTo("Serif");
}
@Test
public void onPreferenceChange_bySerif_shouldReturnSerif() {
mController.displayPreference(mScreen);
mController.onPreferenceChange(mPreference, "serif");
assertThat(mPreference.getEntry().toString()).isEqualTo("Serif");
} }
@Test @Test