Merge "Minor change for CaptionAppearanceFragment"
diff --git a/res/xml/captioning_more_options.xml b/res/xml/captioning_more_options.xml
index c4fc529..e1fd002 100644
--- a/res/xml/captioning_more_options.xml
+++ b/res/xml/captioning_more_options.xml
@@ -22,6 +22,7 @@
<com.android.settings.accessibility.LocalePreference
android:key="captioning_locale"
+ android:summary="%s"
android:title="@string/captioning_locale"
settings:controller="com.android.settings.accessibility.CaptionLocalePreferenceController"/>
diff --git a/src/com/android/settings/accessibility/CaptionCustomController.java b/src/com/android/settings/accessibility/CaptionCustomController.java
index e1674a2..23ef738 100644
--- a/src/com/android/settings/accessibility/CaptionCustomController.java
+++ b/src/com/android/settings/accessibility/CaptionCustomController.java
@@ -42,7 +42,6 @@
private Preference mCustom;
private final CaptionHelper mCaptionHelper;
private final ContentResolver mContentResolver;
- private final Handler mHandler = new Handler(Looper.getMainLooper());
@VisibleForTesting
AccessibilitySettingsContentObserver mSettingsContentObserver;
@VisibleForTesting
@@ -54,7 +53,8 @@
super(context, preferenceKey);
mCaptionHelper = new CaptionHelper(context);
mContentResolver = context.getContentResolver();
- mSettingsContentObserver = new AccessibilitySettingsContentObserver(mHandler);
+ mSettingsContentObserver = new AccessibilitySettingsContentObserver(
+ new Handler(Looper.getMainLooper()));
mSettingsContentObserver.registerKeysToObserverCallback(CAPTIONING_FEATURE_KEYS,
key -> refreshShowingCustom());
}
diff --git a/src/com/android/settings/accessibility/CaptionFontSizeController.java b/src/com/android/settings/accessibility/CaptionFontSizeController.java
index a8cdce5..a8fee38 100644
--- a/src/com/android/settings/accessibility/CaptionFontSizeController.java
+++ b/src/com/android/settings/accessibility/CaptionFontSizeController.java
@@ -33,7 +33,6 @@
private final CaptioningManager mCaptioningManager;
private final CaptionHelper mCaptionHelper;
- private ListPreference mPreference;
public CaptionFontSizeController(Context context, String preferenceKey) {
super(context, preferenceKey);
@@ -49,19 +48,19 @@
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
- mPreference = screen.findPreference(getPreferenceKey());
-
+ final ListPreference listPreference = screen.findPreference(getPreferenceKey());
final float fontSize = mCaptioningManager.getFontScale();
- mPreference.setValue(Float.toString(fontSize));
+ listPreference.setValue(Float.toString(fontSize));
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
+ final ListPreference listPreference = (ListPreference) preference;
final ContentResolver cr = mContext.getContentResolver();
Settings.Secure.putFloat(
cr, Settings.Secure.ACCESSIBILITY_CAPTIONING_FONT_SCALE,
Float.parseFloat((String) newValue));
- mPreference.setValue((String) newValue);
+ listPreference.setValue((String) newValue);
mCaptionHelper.setEnabled(true);
return false;
}
diff --git a/src/com/android/settings/accessibility/CaptionHelper.java b/src/com/android/settings/accessibility/CaptionHelper.java
index eb76b6d..4530493 100644
--- a/src/com/android/settings/accessibility/CaptionHelper.java
+++ b/src/com/android/settings/accessibility/CaptionHelper.java
@@ -188,17 +188,27 @@
}
/**
- * Sets the caption raw user style.
+ * Sets the captioning raw user style.
*
- * @param type The caption raw user style
+ * @param type The captioning raw user style
*/
public void setRawUserStyle(int type) {
Settings.Secure.putInt(mContentResolver,
Settings.Secure.ACCESSIBILITY_CAPTIONING_PRESET, type);
}
- /** Returns the caption raw user style.*/
+ /** Returns the captioning raw preset number.*/
public int getRawUserStyle() {
return mCaptioningManager.getRawUserStyle();
}
+
+ /** Returns the captioning visual properties.*/
+ public CaptionStyle getUserStyle() {
+ return mCaptioningManager.getUserStyle();
+ }
+
+ /** Returns the captioning locale language.*/
+ public Locale getLocale() {
+ return mCaptioningManager.getLocale();
+ }
}
diff --git a/src/com/android/settings/accessibility/CaptionLocalePreferenceController.java b/src/com/android/settings/accessibility/CaptionLocalePreferenceController.java
index 1b1179d..7566282 100644
--- a/src/com/android/settings/accessibility/CaptionLocalePreferenceController.java
+++ b/src/com/android/settings/accessibility/CaptionLocalePreferenceController.java
@@ -30,7 +30,6 @@
implements Preference.OnPreferenceChangeListener {
private final CaptioningManager mCaptioningManager;
- private LocalePreference mPreference;
public CaptionLocalePreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
@@ -45,22 +44,17 @@
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
- mPreference = screen.findPreference(getPreferenceKey());
+ final LocalePreference localePreference = screen.findPreference(getPreferenceKey());
final String rawLocale = mCaptioningManager.getRawLocale();
- mPreference.setValue(rawLocale == null ? "" : rawLocale);
- }
-
- @Override
- public CharSequence getSummary() {
- return mPreference.getEntry();
+ localePreference.setValue(rawLocale == null ? "" : rawLocale);
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
+ final LocalePreference localePreference = (LocalePreference) preference;
Settings.Secure.putString(mContext.getContentResolver(),
Settings.Secure.ACCESSIBILITY_CAPTIONING_LOCALE, (String) newValue);
- mPreference.setValue((String) newValue);
- mPreference.setSummary(mPreference.getEntry());
+ localePreference.setValue((String) newValue);
return true;
}
}
diff --git a/src/com/android/settings/accessibility/CaptionPreviewPreferenceController.java b/src/com/android/settings/accessibility/CaptionPreviewPreferenceController.java
index a8187f1..793eaa3 100644
--- a/src/com/android/settings/accessibility/CaptionPreviewPreferenceController.java
+++ b/src/com/android/settings/accessibility/CaptionPreviewPreferenceController.java
@@ -21,7 +21,7 @@
import android.os.Looper;
import android.provider.Settings;
import android.view.View;
-import android.view.accessibility.CaptioningManager;
+import android.view.accessibility.CaptioningManager.CaptionStyle;
import androidx.annotation.VisibleForTesting;
import androidx.preference.PreferenceScreen;
@@ -57,16 +57,11 @@
private final Handler mHandler = new Handler(Looper.getMainLooper());
@VisibleForTesting
AccessibilitySettingsContentObserver mSettingsContentObserver;
- private CaptioningManager mCaptioningManager;
private CaptionHelper mCaptionHelper;
private LayoutPreference mPreference;
- private SubtitleView mPreviewText;
- private View mPreviewWindow;
- private View mPreviewViewport;
public CaptionPreviewPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
- mCaptioningManager = context.getSystemService(CaptioningManager.class);
mCaptionHelper = new CaptionHelper(context);
mSettingsContentObserver = new AccessibilitySettingsContentObserver(mHandler);
mSettingsContentObserver.registerKeysToObserverCallback(CAPTIONING_FEATURE_KEYS,
@@ -92,16 +87,14 @@
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
mPreference = screen.findPreference(getPreferenceKey());
- mPreviewText = mPreference.findViewById(R.id.preview_text);
- mPreviewWindow = mPreference.findViewById(R.id.preview_window);
- mPreviewViewport = mPreference.findViewById(R.id.preview_viewport);
- mPreviewViewport.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
+ final View previewViewport = mPreference.findViewById(R.id.preview_viewport);
+ previewViewport.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right,
int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
if ((oldRight - oldLeft) != (right - left)) {
// Remove the listener once the callback is triggered.
- mPreviewViewport.removeOnLayoutChangeListener(this);
+ previewViewport.removeOnLayoutChangeListener(this);
mHandler.post(() -> refreshPreviewText());
}
}
@@ -109,26 +102,28 @@
}
private void refreshPreviewText() {
- if (mPreviewText != null) {
- final int styleId = mCaptioningManager.getRawUserStyle();
- mCaptionHelper.applyCaptionProperties(mPreviewText, mPreviewViewport, styleId);
+ final SubtitleView previewText = mPreference.findViewById(R.id.preview_text);
+ if (previewText != null) {
+ final View previewViewport = mPreference.findViewById(R.id.preview_viewport);
+ final int styleId = mCaptionHelper.getRawUserStyle();
+ mCaptionHelper.applyCaptionProperties(previewText, previewViewport, styleId);
- final Locale locale = mCaptioningManager.getLocale();
+ final Locale locale = mCaptionHelper.getLocale();
if (locale != null) {
final CharSequence localizedText = AccessibilityUtils.getTextForLocale(
mContext, locale, R.string.captioning_preview_text);
- mPreviewText.setText(localizedText);
+ previewText.setText(localizedText);
} else {
- mPreviewText.setText(R.string.captioning_preview_text);
+ previewText.setText(R.string.captioning_preview_text);
}
- final CaptioningManager.CaptionStyle style = mCaptioningManager.getUserStyle();
+ final View previewWindow = mPreference.findViewById(R.id.preview_window);
+ final CaptionStyle style = mCaptionHelper.getUserStyle();
if (style.hasWindowColor()) {
- mPreviewWindow.setBackgroundColor(style.windowColor);
+ previewWindow.setBackgroundColor(style.windowColor);
} else {
- final CaptioningManager.CaptionStyle defStyle =
- CaptioningManager.CaptionStyle.DEFAULT;
- mPreviewWindow.setBackgroundColor(defStyle.windowColor);
+ final CaptionStyle defStyle = CaptionStyle.DEFAULT;
+ previewWindow.setBackgroundColor(defStyle.windowColor);
}
}
}
diff --git a/src/com/android/settings/accessibility/CaptionTogglePreferenceController.java b/src/com/android/settings/accessibility/CaptionTogglePreferenceController.java
index bc305c1..b852002 100644
--- a/src/com/android/settings/accessibility/CaptionTogglePreferenceController.java
+++ b/src/com/android/settings/accessibility/CaptionTogglePreferenceController.java
@@ -57,9 +57,9 @@
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
- SettingsMainSwitchPreference pref = screen.findPreference(getPreferenceKey());
- pref.addOnSwitchChangeListener(this);
- pref.setChecked(isChecked());
+ SettingsMainSwitchPreference preference = screen.findPreference(getPreferenceKey());
+ preference.addOnSwitchChangeListener(this);
+ preference.setChecked(isChecked());
}
@Override
diff --git a/src/com/android/settings/accessibility/CaptionTypefaceController.java b/src/com/android/settings/accessibility/CaptionTypefaceController.java
index 44049b0..5e452d9 100644
--- a/src/com/android/settings/accessibility/CaptionTypefaceController.java
+++ b/src/com/android/settings/accessibility/CaptionTypefaceController.java
@@ -32,7 +32,6 @@
implements Preference.OnPreferenceChangeListener {
private final CaptionHelper mCaptionHelper;
- private ListPreference mPreference;
public CaptionTypefaceController(Context context, String preferenceKey) {
super(context, preferenceKey);
@@ -47,20 +46,20 @@
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
- mPreference = screen.findPreference(getPreferenceKey());
-
+ final ListPreference listPreference = screen.findPreference(getPreferenceKey());
final ContentResolver cr = mContext.getContentResolver();
final CaptionStyle attrs = CaptionStyle.getCustomStyle(cr);
final String rawTypeface = attrs.mRawTypeface;
- mPreference.setValue(rawTypeface == null ? "" : rawTypeface);
+ listPreference.setValue(rawTypeface == null ? "" : rawTypeface);
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
+ final ListPreference listPreference = (ListPreference) preference;
final ContentResolver cr = mContext.getContentResolver();
Settings.Secure.putString(
cr, Settings.Secure.ACCESSIBILITY_CAPTIONING_TYPEFACE, (String) newValue);
- mPreference.setValue((String) newValue);
+ listPreference.setValue((String) newValue);
mCaptionHelper.setEnabled(true);
return false;
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionLocalePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptionLocalePreferenceControllerTest.java
index 5602588..cb0d67c 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionLocalePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptionLocalePreferenceControllerTest.java
@@ -64,21 +64,21 @@
}
@Test
- public void getSummary_byDefault_shouldReturnDefault() {
+ public void displayPreference_byDefault_shouldReturnDefault() {
mController.displayPreference(mScreen);
- assertThat(mController.getSummary().toString()).isEqualTo(
+ assertThat(mPreference.getEntry().toString()).isEqualTo(
mContext.getResources().getString(R.string.locale_default));
}
@Test
- public void getSummary_byArabicLocale_shouldReturnArabic() {
+ public void displayPreference_byArabicLocale_shouldReturnArabic() {
Settings.Secure.putString(mContext.getContentResolver(),
Settings.Secure.ACCESSIBILITY_CAPTIONING_LOCALE, "af_ZA");
mController.displayPreference(mScreen);
- assertThat(mController.getSummary().toString()).isEqualTo("Afrikaans");
+ assertThat(mPreference.getEntry().toString()).isEqualTo("Afrikaans");
}
@Test
@@ -87,6 +87,6 @@
mController.onPreferenceChange(mPreference, "af_ZA");
- assertThat(mPreference.getSummary().toString()).isEqualTo("Afrikaans");
+ assertThat(mPreference.getEntry().toString()).isEqualTo("Afrikaans");
}
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionPreviewPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptionPreviewPreferenceControllerTest.java
index 2ca755c..dda4886 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionPreviewPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptionPreviewPreferenceControllerTest.java
@@ -84,7 +84,7 @@
}
@Test
- public void onPause_unregisterContentObserver() {
+ public void onStop_unregisterContentObserver() {
mController.onStop();
verify(mContentResolver).unregisterContentObserver(mController.mSettingsContentObserver);