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);