Merge "Support showing app usage list for two battery charts"
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index f94b6ba..784a94b 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -2110,7 +2110,7 @@
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
-                android:value="com.android.settings.accessibility.CaptionPropertiesFragment" />
+                android:value="com.android.settings.accessibility.CaptioningPropertiesFragment" />
             <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
                        android:value="@string/menu_key_accessibility"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
@@ -4397,14 +4397,6 @@
         </receiver>
 
         <receiver
-            android:name=".sim.receivers.SuwFinishReceiver"
-            android:exported="true">
-            <intent-filter>
-                <action android:name="com.google.android.setupwizard.SETUP_WIZARD_FINISHED" />
-            </intent-filter>
-        </receiver>
-
-        <receiver
             android:name=".sim.receivers.SimCompleteBootReceiver"
             android:exported="true">
             <intent-filter>
diff --git a/res/drawable/accessibility_captions_banner.xml b/res/drawable/accessibility_captioning_banner.xml
similarity index 100%
rename from res/drawable/accessibility_captions_banner.xml
rename to res/drawable/accessibility_captioning_banner.xml
diff --git a/res/layout-land/udfps_enroll_enrolling_land.xml b/res/layout-land/udfps_enroll_enrolling.xml
similarity index 93%
rename from res/layout-land/udfps_enroll_enrolling_land.xml
rename to res/layout-land/udfps_enroll_enrolling.xml
index 776f8a9..f323788 100644
--- a/res/layout-land/udfps_enroll_enrolling_land.xml
+++ b/res/layout-land/udfps_enroll_enrolling.xml
@@ -33,11 +33,15 @@
         <!-- Both texts are kept as separate text views so it doesn't jump around in portrait.
             See layouts/fingerprint_enroll_enrolling_base.xml. -->
         <LinearLayout
+            android:id="@+id/layout_container"
             android:layout_width="0dp"
             android:layout_weight="1"
             android:layout_height="match_parent"
             android:layout_marginStart="?attr/sudMarginStart"
+            android:layout_marginEnd="@dimen/enroll_margin_end"
             android:layout_marginBottom="@dimen/sud_content_frame_padding_bottom"
+            android:paddingStart="@dimen/enroll_padding_start"
+            android:paddingEnd="@dimen/enroll_padding_end"
             android:clipChildren="false"
             android:clipToPadding="false"
             android:orientation="vertical">
diff --git a/res/layout/face_enroll_education.xml b/res/layout/face_enroll_education.xml
index 2a78f99..fec6d53 100644
--- a/res/layout/face_enroll_education.xml
+++ b/res/layout/face_enroll_education.xml
@@ -54,7 +54,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="440dp"
                 android:layout_marginTop="-52dp"
-                android:scaleType="centerCrop"
+                android:scaleType="centerInside"
                 android:visibility="gone"
                 app:lottie_autoPlay="true"
                 app:lottie_loop="true"
@@ -66,7 +66,7 @@
                 android:layout_height="wrap_content"
                 android:layout_gravity="center"
                 android:visibility="invisible"
-                android:background="@drawable/face_enroll_icon_large"/>
+                android:src="@drawable/face_enroll_icon_large"/>
 
         </FrameLayout>
 
@@ -83,7 +83,8 @@
 
             <FrameLayout
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content">
+                android:layout_height="wrap_content"
+                android:layout_marginTop="-24dp">
 
                 <Button
                     android:id="@+id/accessibility_button"
diff --git a/res/values-ldltr/dimens.xml b/res/values-ldltr/dimens.xml
new file mode 100755
index 0000000..11d5b33
--- /dev/null
+++ b/res/values-ldltr/dimens.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2022 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<resources>
+    <!-- Biometrics UDFPS enroll landscape dimensions-->
+    <dimen name="enroll_padding_start">0dp</dimen>
+    <dimen name="enroll_padding_end">0dp</dimen>
+    <dimen name="enroll_margin_end">0dp</dimen>
+
+    <dimen name="rotation_90_enroll_padding_start">-290dp</dimen>
+    <dimen name="rotation_90_enroll_padding_end">108dp</dimen>
+    <dimen name="rotation_90_enroll_margin_end">150dp</dimen>
+</resources>
diff --git a/res/values-ldrtl/dimens.xml b/res/values-ldrtl/dimens.xml
new file mode 100755
index 0000000..cbe7eb5
--- /dev/null
+++ b/res/values-ldrtl/dimens.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2022 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<resources>
+    <!-- Biometrics UDFPS enroll landscape RTL dimensions-->
+    <dimen name="enroll_padding_start">-440dp</dimen>
+    <dimen name="enroll_padding_end">320dp</dimen>
+    <dimen name="enroll_margin_end">150dp</dimen>
+
+    <dimen name="rotation_90_enroll_padding_start">20dp</dimen>
+    <dimen name="rotation_90_enroll_padding_end">0dp</dimen>
+    <dimen name="rotation_90_enroll_margin_end">20dp</dimen>
+</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index a4f5e04..33786cc 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -97,8 +97,8 @@
 
     <dimen name="rect_button_radius">8dp</dimen>
 
-    <!-- Default text size for caption preview samples. Uses dp rather than sp because captions are not scaled. -->
-    <dimen name="caption_preview_text_size">48dp</dimen>
+    <!-- Default text size for captioning preview samples. Uses dp rather than sp because captions are not scaled. -->
+    <dimen name="captioning_preview_text_size">48dp</dimen>
 
     <!-- ActionBar height -->
     <dimen name="actionbar_size">56dip</dimen>
@@ -494,6 +494,14 @@
     <dimen name="sims_select_margin_bottom">24dp</dimen>
     <dimen name="sims_select_margin_top">8dp</dimen>
 
+    <!-- Biometrics UDFPS enroll default dimensions-->
+    <dimen name="enroll_padding_start">0dp</dimen>
+    <dimen name="enroll_padding_end">0dp</dimen>
+    <dimen name="enroll_margin_end">0dp</dimen>
+    <dimen name="rotation_90_enroll_padding_start">0dp</dimen>
+    <dimen name="rotation_90_enroll_padding_end">0dp</dimen>
+    <dimen name="rotation_90_enroll_margin_end">0dp</dimen>
+
     <!-- QR code picture size -->
     <dimen name="qrcode_preview_margin">40dp</dimen>
     <dimen name="qrcode_preview_radius">30dp</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 067e43d..fd186af 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -5599,20 +5599,20 @@
     <string name="accessibility_color_inversion_about_title">About color inversion</string>
     <!-- Color correction footer link content description [CHAR LIMIT=NONE] -->
     <string name="accessibility_color_inversion_footer_learn_more_content_description">Learn more about color inversion</string>
-    <!-- Title for Captions settings screen to control turning on/off the feature entirely [CHAR LIMIT=60] -->
-    <string name="accessibility_caption_primary_switch_title">Show captions</string>
-    <!-- Summary for Captions settings screen to control turning on/off the feature entirely [CHAR LIMIT=NONE] -->
-    <string name="accessibility_caption_primary_switch_summary">For supported app only</string>
-    <!-- Title for Caption preference settings screen for configuring font style. [CHAR LIMIT=NONE] -->
-    <string name="captioning_caption_appearance_title">Caption size and style</string>
-    <!-- Summary for Captions settings, explaining important settings under it. [CHAR LIMIT=NONE] -->
-    <string name="captioning_caption_appearance_summary"><xliff:g id="accessibility_font_size" example="Large">%1$s</xliff:g> text size</string>
-    <!-- Title for Caption preference settings screen for configuring language. [CHAR LIMIT=NONE] -->
+    <!-- Title for captioning settings screen to control turning on/off the feature entirely [CHAR LIMIT=60] -->
+    <string name="accessibility_captioning_primary_switch_title">Show captions</string>
+    <!-- Summary for captioning settings screen to control turning on/off the feature entirely [CHAR LIMIT=NONE] -->
+    <string name="accessibility_captioning_primary_switch_summary">For supported app only</string>
+    <!-- Title for captioning preference settings screen for configuring font style. [CHAR LIMIT=NONE] -->
+    <string name="captioning_appearance_title">Caption size and style</string>
+    <!-- Summary for captioning settings, explaining important settings under it. [CHAR LIMIT=NONE] -->
+    <string name="captioning_appearance_summary"><xliff:g id="accessibility_font_size" example="Large">%1$s</xliff:g> text size</string>
+    <!-- Title for captioning preference settings screen for configuring language. [CHAR LIMIT=NONE] -->
     <string name="captioning_more_options_title">More options</string>
-    <!-- Introduction for the captions preference page. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_caption_preference_intro">Customize caption size and style to make them easier to read</string>
-    <!-- Summary for the captions preference page. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_caption_preference_summary">These caption preferences aren\u2019t supported by all media apps</string>
+    <!-- Introduction for the captioning preference page. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_captioning_preference_intro">Customize caption size and style to make them easier to read</string>
+    <!-- Summary for the captioning preference page. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_captioning_preference_summary">These caption preferences aren\u2019t supported by all media apps</string>
     <!-- Summary for accessibility shortcut preference for software shortcut type. [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_type_software">Accessibility button</string>
     <!-- Summary for accessibility shortcut preference for software shortcut type when gesture mode is on. [CHAR LIMIT=NONE] -->
@@ -5793,7 +5793,7 @@
     <string name="captioning_edge_type">Edge type</string>
     <!-- Title for the preference to change video caption font family (ex. monospace, sans-serif). [CHAR LIMIT=35] -->
     <string name="captioning_typeface">Font family</string>
-    <!-- Sample text for previewing video caption preferences. [CHAR LIMIT=NONE] -->
+    <!-- Sample text for previewing video captioning preferences. [CHAR LIMIT=NONE] -->
     <string name="captioning_preview_text">Captions will look like this</string>
     <!-- Sample characters for previewing video caption preferences. [CHAR LIMIT=2] -->
     <string name="captioning_preview_characters">Aa</string>
diff --git a/res/xml/accessibility_settings.xml b/res/xml/accessibility_settings.xml
index 0287fc6..caba415 100644
--- a/res/xml/accessibility_settings.xml
+++ b/res/xml/accessibility_settings.xml
@@ -119,10 +119,9 @@
             settings:controller="com.android.settings.accessibility.LiveCaptionPreferenceController"/>
 
         <Preference
-            android:fragment="com.android.settings.accessibility.CaptionPropertiesFragment"
+            android:fragment="com.android.settings.accessibility.CaptioningPropertiesFragment"
             android:key="captioning_preference_screen"
             android:icon="@drawable/ic_captioning"
-            android:persistent="false"
             android:title="@string/accessibility_captioning_title"
             settings:controller="com.android.settings.accessibility.CaptioningPreferenceController"/>
 
diff --git a/res/xml/captioning_appearance.xml b/res/xml/captioning_appearance.xml
index fa574d1..d8220ef 100644
--- a/res/xml/captioning_appearance.xml
+++ b/res/xml/captioning_appearance.xml
@@ -18,15 +18,15 @@
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/captioning_caption_appearance_title">
+    android:title="@string/captioning_appearance_title">
 
     <com.android.settingslib.widget.LayoutPreference
-        android:key="caption_preview"
+        android:key="captioning_preview"
         android:title="@string/summary_placeholder"
         android:layout="@layout/captioning_preview"
         android:selectable="false"
         settings:searchable="false"
-        settings:controller="com.android.settings.accessibility.CaptionPreviewPreferenceController"/>
+        settings:controller="com.android.settings.accessibility.CaptioningPreviewPreferenceController"/>
 
     <ListPreference
         android:entries="@array/captioning_font_size_selector_titles"
@@ -34,17 +34,17 @@
         android:key="captioning_font_size"
         android:summary="%s"
         android:title="@string/captioning_text_size"
-        settings:controller="com.android.settings.accessibility.CaptionFontSizeController"/>
+        settings:controller="com.android.settings.accessibility.CaptioningFontSizeController"/>
 
     <com.android.settings.accessibility.PresetPreference
         android:key="captioning_preset"
         android:title="@string/captioning_preset"
-        settings:controller="com.android.settings.accessibility.CaptionPresetController"/>
+        settings:controller="com.android.settings.accessibility.CaptioningPresetController"/>
 
     <PreferenceCategory
         android:key="custom"
         android:title="@string/captioning_custom_options_title"
-        settings:controller="com.android.settings.accessibility.CaptionCustomController">
+        settings:controller="com.android.settings.accessibility.CaptioningCustomController">
 
         <ListPreference
             android:entries="@array/captioning_typeface_selector_titles"
@@ -52,58 +52,57 @@
             android:key="captioning_typeface"
             android:summary="%s"
             android:title="@string/captioning_typeface"
-            settings:controller="com.android.settings.accessibility.CaptionTypefaceController"/>
+            settings:controller="com.android.settings.accessibility.CaptioningTypefaceController"/>
 
         <com.android.settings.accessibility.ColorPreference
             android:key="captioning_foreground_color"
             android:title="@string/captioning_foreground_color"
-            settings:controller="com.android.settings.accessibility.CaptionForegroundColorController"/>
+            settings:controller="com.android.settings.accessibility.CaptioningForegroundColorController"/>
 
         <com.android.settings.accessibility.ColorPreference
             android:dependency="captioning_foreground_color"
             android:key="captioning_foreground_opacity"
             android:title="@string/captioning_foreground_opacity"
-            settings:controller="com.android.settings.accessibility.CaptionForegroundOpacityController"/>
+            settings:controller="com.android.settings.accessibility.CaptioningForegroundOpacityController"/>
 
         <com.android.settings.accessibility.EdgeTypePreference
             android:key="captioning_edge_type"
             android:title="@string/captioning_edge_type"
-            settings:controller="com.android.settings.accessibility.CaptionEdgeTypeController"/>
+            settings:controller="com.android.settings.accessibility.CaptioningEdgeTypeController"/>
 
         <com.android.settings.accessibility.ColorPreference
             android:dependency="captioning_edge_type"
             android:key="captioning_edge_color"
             android:title="@string/captioning_edge_color"
-            settings:controller="com.android.settings.accessibility.CaptionEdgeColorController"/>
+            settings:controller="com.android.settings.accessibility.CaptioningEdgeColorController"/>
 
         <com.android.settings.accessibility.ColorPreference
             android:key="captioning_background_color"
             android:title="@string/captioning_background_color"
-            settings:controller="com.android.settings.accessibility.CaptionBackgroundColorController"/>
+            settings:controller="com.android.settings.accessibility.CaptioningBackgroundColorController"/>
 
         <com.android.settings.accessibility.ColorPreference
             android:dependency="captioning_background_color"
             android:key="captioning_background_opacity"
             android:title="@string/captioning_background_opacity"
-            settings:controller="com.android.settings.accessibility.CaptionBackgroundOpacityController"/>
+            settings:controller="com.android.settings.accessibility.CaptioningBackgroundOpacityController"/>
 
         <com.android.settings.accessibility.ColorPreference
             android:key="captioning_window_color"
             android:title="@string/captioning_window_color"
-            settings:controller="com.android.settings.accessibility.CaptionWindowColorController"/>
+            settings:controller="com.android.settings.accessibility.CaptioningWindowColorController"/>
 
         <com.android.settings.accessibility.ColorPreference
             android:dependency="captioning_window_color"
             android:key="captioning_window_opacity"
             android:title="@string/captioning_window_opacity"
-            settings:controller="com.android.settings.accessibility.CaptionWindowOpacityController"/>
+            settings:controller="com.android.settings.accessibility.CaptioningWindowOpacityController"/>
     </PreferenceCategory>
 
     <com.android.settings.accessibility.AccessibilityFooterPreference
         android:key="captioning_appearance_footer"
-        android:title="@string/accessibility_caption_preference_summary"
-        android:persistent="false"
+        android:title="@string/accessibility_captioning_preference_summary"
         android:selectable="false"
         settings:searchable="false"
-        settings:controller="com.android.settings.accessibility.CaptionFooterPreferenceController"/>
+        settings:controller="com.android.settings.accessibility.CaptioningFooterPreferenceController"/>
 </PreferenceScreen>
diff --git a/res/xml/captioning_more_options.xml b/res/xml/captioning_more_options.xml
index e1fd002..42c106b 100644
--- a/res/xml/captioning_more_options.xml
+++ b/res/xml/captioning_more_options.xml
@@ -24,14 +24,13 @@
         android:key="captioning_locale"
         android:summary="%s"
         android:title="@string/captioning_locale"
-        settings:controller="com.android.settings.accessibility.CaptionLocalePreferenceController"/>
+        settings:controller="com.android.settings.accessibility.CaptioningLocalePreferenceController"/>
 
     <com.android.settings.accessibility.AccessibilityFooterPreference
         android:key="captioning_more_options_footer"
-        android:title="@string/accessibility_caption_preference_summary"
-        android:persistent="false"
+        android:title="@string/accessibility_captioning_preference_summary"
         android:selectable="false"
         settings:searchable="false"
-        settings:controller="com.android.settings.accessibility.CaptionFooterPreferenceController"/>
+        settings:controller="com.android.settings.accessibility.CaptioningFooterPreferenceController"/>
 
 </PreferenceScreen>
diff --git a/res/xml/captioning_settings.xml b/res/xml/captioning_settings.xml
index 806a256..7fcc03d 100644
--- a/res/xml/captioning_settings.xml
+++ b/res/xml/captioning_settings.xml
@@ -18,46 +18,39 @@
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:persistent="false"
     android:title="@string/accessibility_captioning_title">
 
     <com.android.settingslib.widget.TopIntroPreference
-        android:key="captions_intro"
-        android:persistent="false"
-        android:title="@string/accessibility_caption_preference_intro"/>
+        android:key="captioning_intro"
+        android:title="@string/accessibility_captioning_preference_intro"/>
 
     <com.android.settingslib.widget.IllustrationPreference
-        android:key="captions_preview"
-        android:persistent="false"
+        android:key="captioning_preview"
         android:selectable="false"
-        settings:lottie_rawRes="@drawable/accessibility_captions_banner"
+        settings:lottie_rawRes="@drawable/accessibility_captioning_banner"
         settings:searchable="false" />
 
     <com.android.settings.widget.SettingsMainSwitchPreference
         android:key="captioning_preference_switch"
-        android:persistent="false"
-        android:title="@string/accessibility_caption_primary_switch_title"
-        settings:controller="com.android.settings.accessibility.CaptionTogglePreferenceController"/>
+        android:title="@string/accessibility_captioning_primary_switch_title"
+        settings:controller="com.android.settings.accessibility.CaptioningTogglePreferenceController"/>
 
     <Preference
-        android:fragment="com.android.settings.accessibility.CaptionAppearanceFragment"
-        android:key="captioning_caption_appearance"
-        android:persistent="false"
-        android:title="@string/captioning_caption_appearance_title"
-        settings:controller="com.android.settings.accessibility.CaptionAppearancePreferenceController" />
+        android:fragment="com.android.settings.accessibility.CaptioningAppearanceFragment"
+        android:key="captioning_appearance"
+        android:title="@string/captioning_appearance_title"
+        settings:controller="com.android.settings.accessibility.CaptioningAppearancePreferenceController" />
 
     <Preference
-        android:fragment="com.android.settings.accessibility.CaptionMoreOptionsFragment"
+        android:fragment="com.android.settings.accessibility.CaptioningMoreOptionsFragment"
         android:key="captioning_more_options"
-        android:persistent="false"
         android:title="@string/captioning_more_options_title" />
 
     <com.android.settings.accessibility.AccessibilityFooterPreference
         android:key="captioning_settings_footer"
-        android:title="@string/accessibility_caption_preference_summary"
-        android:persistent="false"
+        android:title="@string/accessibility_captioning_preference_summary"
         android:selectable="false"
         settings:searchable="false"
-        settings:controller="com.android.settings.accessibility.CaptionFooterPreferenceController"/>
+        settings:controller="com.android.settings.accessibility.CaptioningFooterPreferenceController"/>
 
 </PreferenceScreen>
diff --git a/res/xml/dream_fragment_overview.xml b/res/xml/dream_fragment_overview.xml
index a7b5492..db8f4fd 100644
--- a/res/xml/dream_fragment_overview.xml
+++ b/res/xml/dream_fragment_overview.xml
@@ -27,6 +27,11 @@
         settings:controller="com.android.settings.dream.DreamMainSwitchPreferenceController"
         settings:searchable="false"/>
 
+    <Preference
+        android:key="when_to_start"
+        android:title="@string/screensaver_settings_when_to_dream"
+        android:fragment="com.android.settings.dream.WhenToDreamPicker"/>
+
     <PreferenceCategory
         android:title="@string/dream_picker_category">
         <com.android.settingslib.widget.LayoutPreference
@@ -36,17 +41,13 @@
             settings:controller="com.android.settings.dream.DreamPickerController"/>
     </PreferenceCategory>
 
-    <PreferenceCategory
-        android:title="@string/dream_more_settings_category">
-        <SwitchPreference
-            android:key="dream_complications_toggle"
-            android:title="@string/dream_complications_toggle_title"
-            android:summary="@string/dream_complications_toggle_summary"
-            settings:controller="com.android.settings.dream.DreamComplicationPreferenceController"/>
-        <Preference
-            android:key="when_to_start"
-            android:title="@string/screensaver_settings_when_to_dream"
-            android:fragment="com.android.settings.dream.WhenToDreamPicker"/>
-    </PreferenceCategory>
+    <SwitchPreference
+        android:key="dream_complications_toggle"
+        android:title="@string/dream_complications_toggle_title"
+        android:summary="@string/dream_complications_toggle_summary"
+        settings:controller="com.android.settings.dream.DreamComplicationPreferenceController"/>
+
+    <com.android.settings.applications.SpacePreference
+        android:layout_height="16dp" />
 
 </PreferenceScreen>
diff --git a/src/com/android/settings/UserCredentialsSettings.java b/src/com/android/settings/UserCredentialsSettings.java
index 80b97e4..c45b5ef 100644
--- a/src/com/android/settings/UserCredentialsSettings.java
+++ b/src/com/android/settings/UserCredentialsSettings.java
@@ -48,7 +48,6 @@
 import androidx.fragment.app.Fragment;
 import androidx.recyclerview.widget.RecyclerView;
 
-import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
@@ -297,7 +296,6 @@
         private SortedMap<String, Credential> getCredentialsForUid(KeyStore keyStore, int uid) {
             try {
                 final SortedMap<String, Credential> aliasMap = new TreeMap<>();
-                boolean isSystem = UserHandle.getAppId(uid) == Process.SYSTEM_UID;
                 Enumeration<String> aliases = keyStore.aliases();
                 while (aliases.hasMoreElements()) {
                     String alias = aliases.nextElement();
@@ -315,19 +313,6 @@
                             // We don't display any symmetric key entries.
                             continue;
                         }
-                        if (isSystem) {
-                            // Do not show work profile keys in user credentials
-                            if (alias.startsWith(LockPatternUtils.PROFILE_KEY_NAME_ENCRYPT) ||
-                                    alias.startsWith(LockPatternUtils.PROFILE_KEY_NAME_DECRYPT)) {
-                                continue;
-                            }
-                            // Do not show synthetic password keys in user credential
-                            // We should never reach this point because the synthetic password key
-                            // is symmetric.
-                            if (alias.startsWith(LockPatternUtils.SYNTHETIC_PASSWORD_KEY_PREFIX)) {
-                                continue;
-                            }
-                        }
                         // At this point we have determined that we have an asymmetric key.
                         // so we have at least a USER_KEY and USER_CERTIFICATE.
                         c.storedTypes.add(Credential.Type.USER_KEY);
diff --git a/src/com/android/settings/accessibility/CaptionHelper.java b/src/com/android/settings/accessibility/CaptionHelper.java
index 4530493..36d833c 100644
--- a/src/com/android/settings/accessibility/CaptionHelper.java
+++ b/src/com/android/settings/accessibility/CaptionHelper.java
@@ -93,7 +93,7 @@
             previewText.setTextSize(virtualHeight * LINE_HEIGHT_RATIO * fontScale);
         } else {
             final float textSize = mContext.getResources().getDimension(
-                    R.dimen.caption_preview_text_size);
+                    R.dimen.captioning_preview_text_size);
             previewText.setTextSize(textSize * fontScale);
         }
 
diff --git a/src/com/android/settings/accessibility/CaptionAppearanceFragment.java b/src/com/android/settings/accessibility/CaptioningAppearanceFragment.java
similarity index 91%
rename from src/com/android/settings/accessibility/CaptionAppearanceFragment.java
rename to src/com/android/settings/accessibility/CaptioningAppearanceFragment.java
index 7230cbcc..8b80de3 100644
--- a/src/com/android/settings/accessibility/CaptionAppearanceFragment.java
+++ b/src/com/android/settings/accessibility/CaptioningAppearanceFragment.java
@@ -25,9 +25,9 @@
 
 /** Settings fragment containing font style of captioning properties. */
 @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
-public class CaptionAppearanceFragment extends DashboardFragment {
+public class CaptioningAppearanceFragment extends DashboardFragment {
 
-    private static final String TAG = "CaptionAppearanceFragment";
+    private static final String TAG = "CaptioningAppearanceFragment";
 
     @Override
     public int getMetricsCategory() {
diff --git a/src/com/android/settings/accessibility/CaptionAppearancePreferenceController.java b/src/com/android/settings/accessibility/CaptioningAppearancePreferenceController.java
similarity index 91%
rename from src/com/android/settings/accessibility/CaptionAppearancePreferenceController.java
rename to src/com/android/settings/accessibility/CaptioningAppearancePreferenceController.java
index 4bcdceb..74cb534 100644
--- a/src/com/android/settings/accessibility/CaptionAppearancePreferenceController.java
+++ b/src/com/android/settings/accessibility/CaptioningAppearancePreferenceController.java
@@ -25,12 +25,12 @@
 import com.google.common.primitives.Floats;
 import com.google.common.primitives.Ints;
 
-/** Controller that shows the caption scale and style summary. */
-public class CaptionAppearancePreferenceController extends BasePreferenceController {
+/** Controller that shows the captioning scale and style summary. */
+public class CaptioningAppearancePreferenceController extends BasePreferenceController {
 
     private final CaptioningManager mCaptioningManager;
 
-    public CaptionAppearancePreferenceController(Context context, String preferenceKey) {
+    public CaptioningAppearancePreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mCaptioningManager = context.getSystemService(CaptioningManager.class);
     }
diff --git a/src/com/android/settings/accessibility/CaptionBackgroundColorController.java b/src/com/android/settings/accessibility/CaptioningBackgroundColorController.java
similarity index 92%
rename from src/com/android/settings/accessibility/CaptionBackgroundColorController.java
rename to src/com/android/settings/accessibility/CaptioningBackgroundColorController.java
index f477c9c..ff093d5 100644
--- a/src/com/android/settings/accessibility/CaptionBackgroundColorController.java
+++ b/src/com/android/settings/accessibility/CaptioningBackgroundColorController.java
@@ -26,13 +26,13 @@
 import com.android.settings.accessibility.ListDialogPreference.OnValueChangedListener;
 import com.android.settings.core.BasePreferenceController;
 
-/** Preference controller for caption background color. */
-public class CaptionBackgroundColorController extends BasePreferenceController
+/** Preference controller for captioning background color. */
+public class CaptioningBackgroundColorController extends BasePreferenceController
         implements OnValueChangedListener {
 
     private final CaptionHelper mCaptionHelper;
 
-    public CaptionBackgroundColorController(Context context, String preferenceKey) {
+    public CaptioningBackgroundColorController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mCaptionHelper = new CaptionHelper(context);
     }
diff --git a/src/com/android/settings/accessibility/CaptionBackgroundOpacityController.java b/src/com/android/settings/accessibility/CaptioningBackgroundOpacityController.java
similarity index 91%
rename from src/com/android/settings/accessibility/CaptionBackgroundOpacityController.java
rename to src/com/android/settings/accessibility/CaptioningBackgroundOpacityController.java
index 5aeb1dd..405f6d9 100644
--- a/src/com/android/settings/accessibility/CaptionBackgroundOpacityController.java
+++ b/src/com/android/settings/accessibility/CaptioningBackgroundOpacityController.java
@@ -25,13 +25,13 @@
 import com.android.settings.accessibility.ListDialogPreference.OnValueChangedListener;
 import com.android.settings.core.BasePreferenceController;
 
-/** Preference controller for caption background opacity. */
-public class CaptionBackgroundOpacityController extends BasePreferenceController
+/** Preference controller for captioning background opacity. */
+public class CaptioningBackgroundOpacityController extends BasePreferenceController
         implements OnValueChangedListener {
 
     private final CaptionHelper mCaptionHelper;
 
-    public CaptionBackgroundOpacityController(Context context, String preferenceKey) {
+    public CaptioningBackgroundOpacityController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mCaptionHelper = new CaptionHelper(context);
     }
diff --git a/src/com/android/settings/accessibility/CaptionCustomController.java b/src/com/android/settings/accessibility/CaptioningCustomController.java
similarity index 91%
rename from src/com/android/settings/accessibility/CaptionCustomController.java
rename to src/com/android/settings/accessibility/CaptioningCustomController.java
index 23ef738..28a99a7 100644
--- a/src/com/android/settings/accessibility/CaptionCustomController.java
+++ b/src/com/android/settings/accessibility/CaptioningCustomController.java
@@ -35,8 +35,8 @@
 import java.util.Arrays;
 import java.util.List;
 
-/** Preference controller for caption custom visibility. */
-public class CaptionCustomController extends BasePreferenceController
+/** Preference controller for captioning custom visibility. */
+public class CaptioningCustomController extends BasePreferenceController
         implements LifecycleObserver, OnStart, OnStop {
 
     private Preference mCustom;
@@ -49,7 +49,7 @@
             Settings.Secure.ACCESSIBILITY_CAPTIONING_PRESET
     );
 
-    public CaptionCustomController(Context context, String preferenceKey) {
+    public CaptioningCustomController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mCaptionHelper = new CaptionHelper(context);
         mContentResolver = context.getContentResolver();
@@ -60,7 +60,7 @@
     }
 
     @VisibleForTesting
-    CaptionCustomController(Context context, String preferenceKey,
+    CaptioningCustomController(Context context, String preferenceKey,
             AccessibilitySettingsContentObserver contentObserver) {
         this(context, preferenceKey);
         mSettingsContentObserver = contentObserver;
diff --git a/src/com/android/settings/accessibility/CaptionEdgeColorController.java b/src/com/android/settings/accessibility/CaptioningEdgeColorController.java
similarity index 90%
rename from src/com/android/settings/accessibility/CaptionEdgeColorController.java
rename to src/com/android/settings/accessibility/CaptioningEdgeColorController.java
index 2235994..4903ff4 100644
--- a/src/com/android/settings/accessibility/CaptionEdgeColorController.java
+++ b/src/com/android/settings/accessibility/CaptioningEdgeColorController.java
@@ -25,13 +25,13 @@
 import com.android.settings.accessibility.ListDialogPreference.OnValueChangedListener;
 import com.android.settings.core.BasePreferenceController;
 
-/** Preference controller for caption edge color. */
-public class CaptionEdgeColorController extends BasePreferenceController
+/** Preference controller for captioning edge color. */
+public class CaptioningEdgeColorController extends BasePreferenceController
         implements OnValueChangedListener {
 
     private final CaptionHelper mCaptionHelper;
 
-    public CaptionEdgeColorController(Context context, String preferenceKey) {
+    public CaptioningEdgeColorController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mCaptionHelper = new CaptionHelper(context);
     }
diff --git a/src/com/android/settings/accessibility/CaptionEdgeTypeController.java b/src/com/android/settings/accessibility/CaptioningEdgeTypeController.java
similarity index 88%
rename from src/com/android/settings/accessibility/CaptionEdgeTypeController.java
rename to src/com/android/settings/accessibility/CaptioningEdgeTypeController.java
index 031dfaa..adb66d3 100644
--- a/src/com/android/settings/accessibility/CaptionEdgeTypeController.java
+++ b/src/com/android/settings/accessibility/CaptioningEdgeTypeController.java
@@ -23,13 +23,13 @@
 import com.android.settings.accessibility.ListDialogPreference.OnValueChangedListener;
 import com.android.settings.core.BasePreferenceController;
 
-/** Preference controller for caption edge type. */
-public class CaptionEdgeTypeController extends BasePreferenceController
+/** Preference controller for captioning edge type. */
+public class CaptioningEdgeTypeController extends BasePreferenceController
         implements OnValueChangedListener {
 
     private final CaptionHelper mCaptionHelper;
 
-    public CaptionEdgeTypeController(Context context, String preferenceKey) {
+    public CaptioningEdgeTypeController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mCaptionHelper = new CaptionHelper(context);
     }
diff --git a/src/com/android/settings/accessibility/CaptionFontSizeController.java b/src/com/android/settings/accessibility/CaptioningFontSizeController.java
similarity index 91%
rename from src/com/android/settings/accessibility/CaptionFontSizeController.java
rename to src/com/android/settings/accessibility/CaptioningFontSizeController.java
index a8fee38..196117b 100644
--- a/src/com/android/settings/accessibility/CaptionFontSizeController.java
+++ b/src/com/android/settings/accessibility/CaptioningFontSizeController.java
@@ -27,14 +27,14 @@
 
 import com.android.settings.core.BasePreferenceController;
 
-/** Preference controller for caption font size. */
-public class CaptionFontSizeController extends BasePreferenceController
+/** Preference controller for captioning font size. */
+public class CaptioningFontSizeController extends BasePreferenceController
         implements Preference.OnPreferenceChangeListener {
 
     private final CaptioningManager mCaptioningManager;
     private final CaptionHelper mCaptionHelper;
 
-    public CaptionFontSizeController(Context context, String preferenceKey) {
+    public CaptioningFontSizeController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mCaptioningManager = context.getSystemService(CaptioningManager.class);
         mCaptionHelper = new CaptionHelper(context);
diff --git a/src/com/android/settings/accessibility/CaptionFooterPreferenceController.java b/src/com/android/settings/accessibility/CaptioningFooterPreferenceController.java
similarity index 83%
rename from src/com/android/settings/accessibility/CaptionFooterPreferenceController.java
rename to src/com/android/settings/accessibility/CaptioningFooterPreferenceController.java
index b81b99d..def5620 100644
--- a/src/com/android/settings/accessibility/CaptionFooterPreferenceController.java
+++ b/src/com/android/settings/accessibility/CaptioningFooterPreferenceController.java
@@ -20,12 +20,10 @@
 
 import com.android.settings.R;
 
-/**
- * Preference controller for caption footer.
- */
-public class CaptionFooterPreferenceController extends AccessibilityFooterPreferenceController {
+/** Preference controller for captioning footer. */
+public class CaptioningFooterPreferenceController extends AccessibilityFooterPreferenceController {
 
-    public CaptionFooterPreferenceController(Context context, String key) {
+    public CaptioningFooterPreferenceController(Context context, String key) {
         super(context, key);
     }
 
diff --git a/src/com/android/settings/accessibility/CaptionForegroundColorController.java b/src/com/android/settings/accessibility/CaptioningForegroundColorController.java
similarity index 91%
rename from src/com/android/settings/accessibility/CaptionForegroundColorController.java
rename to src/com/android/settings/accessibility/CaptioningForegroundColorController.java
index b8618f3..c867732 100644
--- a/src/com/android/settings/accessibility/CaptionForegroundColorController.java
+++ b/src/com/android/settings/accessibility/CaptioningForegroundColorController.java
@@ -25,13 +25,13 @@
 import com.android.settings.accessibility.ListDialogPreference.OnValueChangedListener;
 import com.android.settings.core.BasePreferenceController;
 
-/** Preference controller for caption foreground color. */
-public class CaptionForegroundColorController extends BasePreferenceController
+/** Preference controller for captioning foreground color. */
+public class CaptioningForegroundColorController extends BasePreferenceController
         implements OnValueChangedListener {
 
     private final CaptionHelper mCaptionHelper;
 
-    public CaptionForegroundColorController(Context context, String preferenceKey) {
+    public CaptioningForegroundColorController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mCaptionHelper = new CaptionHelper(context);
     }
diff --git a/src/com/android/settings/accessibility/CaptionForegroundOpacityController.java b/src/com/android/settings/accessibility/CaptioningForegroundOpacityController.java
similarity index 91%
rename from src/com/android/settings/accessibility/CaptionForegroundOpacityController.java
rename to src/com/android/settings/accessibility/CaptioningForegroundOpacityController.java
index 7f31704..ab8a84b 100644
--- a/src/com/android/settings/accessibility/CaptionForegroundOpacityController.java
+++ b/src/com/android/settings/accessibility/CaptioningForegroundOpacityController.java
@@ -25,13 +25,13 @@
 import com.android.settings.accessibility.ListDialogPreference.OnValueChangedListener;
 import com.android.settings.core.BasePreferenceController;
 
-/** Preference controller for caption foreground opacity. */
-public class CaptionForegroundOpacityController extends BasePreferenceController
+/** Preference controller for captioning foreground opacity. */
+public class CaptioningForegroundOpacityController extends BasePreferenceController
         implements OnValueChangedListener {
 
     private final CaptionHelper mCaptionHelper;
 
-    public CaptionForegroundOpacityController(Context context, String preferenceKey) {
+    public CaptioningForegroundOpacityController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mCaptionHelper = new CaptionHelper(context);
     }
diff --git a/src/com/android/settings/accessibility/CaptionLocalePreferenceController.java b/src/com/android/settings/accessibility/CaptioningLocalePreferenceController.java
similarity index 89%
rename from src/com/android/settings/accessibility/CaptionLocalePreferenceController.java
rename to src/com/android/settings/accessibility/CaptioningLocalePreferenceController.java
index 7566282..8662bcc 100644
--- a/src/com/android/settings/accessibility/CaptionLocalePreferenceController.java
+++ b/src/com/android/settings/accessibility/CaptioningLocalePreferenceController.java
@@ -25,13 +25,13 @@
 
 import com.android.settings.core.BasePreferenceController;
 
-/** Controller that shows the caption locale summary. */
-public class CaptionLocalePreferenceController extends BasePreferenceController
+/** Controller that shows the captioning locale summary. */
+public class CaptioningLocalePreferenceController extends BasePreferenceController
         implements Preference.OnPreferenceChangeListener {
 
     private final CaptioningManager mCaptioningManager;
 
-    public CaptionLocalePreferenceController(Context context, String preferenceKey) {
+    public CaptioningLocalePreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mCaptioningManager = context.getSystemService(CaptioningManager.class);
     }
diff --git a/src/com/android/settings/accessibility/CaptionMoreOptionsFragment.java b/src/com/android/settings/accessibility/CaptioningMoreOptionsFragment.java
similarity index 91%
rename from src/com/android/settings/accessibility/CaptionMoreOptionsFragment.java
rename to src/com/android/settings/accessibility/CaptioningMoreOptionsFragment.java
index 3e6b8aa..2895e75 100644
--- a/src/com/android/settings/accessibility/CaptionMoreOptionsFragment.java
+++ b/src/com/android/settings/accessibility/CaptioningMoreOptionsFragment.java
@@ -25,9 +25,9 @@
 
 /** Settings fragment containing more options of captioning properties. */
 @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
-public class CaptionMoreOptionsFragment extends DashboardFragment {
+public class CaptioningMoreOptionsFragment extends DashboardFragment {
 
-    private static final String TAG = "CaptionMoreOptionsFragment";
+    private static final String TAG = "CaptioningMoreOptionsFragment";
 
     @Override
     public int getMetricsCategory() {
diff --git a/src/com/android/settings/accessibility/CaptionPresetController.java b/src/com/android/settings/accessibility/CaptioningPresetController.java
similarity index 90%
rename from src/com/android/settings/accessibility/CaptionPresetController.java
rename to src/com/android/settings/accessibility/CaptioningPresetController.java
index db21f0b..f08a5f4 100644
--- a/src/com/android/settings/accessibility/CaptionPresetController.java
+++ b/src/com/android/settings/accessibility/CaptioningPresetController.java
@@ -24,13 +24,13 @@
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 
-/** Preference controller for caption preset. */
-public class CaptionPresetController extends BasePreferenceController
+/** Preference controller for captioning preset. */
+public class CaptioningPresetController extends BasePreferenceController
         implements ListDialogPreference.OnValueChangedListener {
 
     private final CaptionHelper mCaptionHelper;
 
-    public CaptionPresetController(Context context, String preferenceKey) {
+    public CaptioningPresetController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mCaptionHelper = new CaptionHelper(context);
     }
diff --git a/src/com/android/settings/accessibility/CaptionPreviewPreferenceController.java b/src/com/android/settings/accessibility/CaptioningPreviewPreferenceController.java
similarity index 95%
rename from src/com/android/settings/accessibility/CaptionPreviewPreferenceController.java
rename to src/com/android/settings/accessibility/CaptioningPreviewPreferenceController.java
index 793eaa3..73ee846 100644
--- a/src/com/android/settings/accessibility/CaptionPreviewPreferenceController.java
+++ b/src/com/android/settings/accessibility/CaptioningPreviewPreferenceController.java
@@ -39,8 +39,8 @@
 import java.util.List;
 import java.util.Locale;
 
-/** Controller that shows the caption locale summary. */
-public class CaptionPreviewPreferenceController extends BasePreferenceController
+/** Controller that shows the captioning locale summary. */
+public class CaptioningPreviewPreferenceController extends BasePreferenceController
         implements LifecycleObserver, OnStart, OnStop {
 
     @VisibleForTesting
@@ -60,7 +60,7 @@
     private CaptionHelper mCaptionHelper;
     private LayoutPreference mPreference;
 
-    public CaptionPreviewPreferenceController(Context context, String preferenceKey) {
+    public CaptioningPreviewPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mCaptionHelper = new CaptionHelper(context);
         mSettingsContentObserver = new AccessibilitySettingsContentObserver(mHandler);
diff --git a/src/com/android/settings/accessibility/CaptionPropertiesFragment.java b/src/com/android/settings/accessibility/CaptioningPropertiesFragment.java
similarity index 91%
rename from src/com/android/settings/accessibility/CaptionPropertiesFragment.java
rename to src/com/android/settings/accessibility/CaptioningPropertiesFragment.java
index 697c8fb..95a3307 100644
--- a/src/com/android/settings/accessibility/CaptionPropertiesFragment.java
+++ b/src/com/android/settings/accessibility/CaptioningPropertiesFragment.java
@@ -25,9 +25,9 @@
 
 /** Settings fragment containing captioning properties. */
 @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
-public class CaptionPropertiesFragment extends DashboardFragment {
+public class CaptioningPropertiesFragment extends DashboardFragment {
 
-    private static final String TAG = "CaptionPropertiesFragment";
+    private static final String TAG = "CaptioningPropertiesFragment";
 
     @Override
     public int getMetricsCategory() {
diff --git a/src/com/android/settings/accessibility/CaptionTogglePreferenceController.java b/src/com/android/settings/accessibility/CaptioningTogglePreferenceController.java
similarity index 90%
rename from src/com/android/settings/accessibility/CaptionTogglePreferenceController.java
rename to src/com/android/settings/accessibility/CaptioningTogglePreferenceController.java
index b852002..a9d2cdf 100644
--- a/src/com/android/settings/accessibility/CaptionTogglePreferenceController.java
+++ b/src/com/android/settings/accessibility/CaptioningTogglePreferenceController.java
@@ -26,13 +26,13 @@
 import com.android.settings.widget.SettingsMainSwitchPreference;
 import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
-/** Preference controller for caption more options. */
-public class CaptionTogglePreferenceController extends TogglePreferenceController
+/** Preference controller for captioning more options. */
+public class CaptioningTogglePreferenceController extends TogglePreferenceController
         implements OnMainSwitchChangeListener {
 
     private final CaptionHelper mCaptionHelper;
 
-    public CaptionTogglePreferenceController(Context context, String preferenceKey) {
+    public CaptioningTogglePreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mCaptionHelper = new CaptionHelper(context);
     }
diff --git a/src/com/android/settings/accessibility/CaptionTypefaceController.java b/src/com/android/settings/accessibility/CaptioningTypefaceController.java
similarity index 91%
rename from src/com/android/settings/accessibility/CaptionTypefaceController.java
rename to src/com/android/settings/accessibility/CaptioningTypefaceController.java
index 5e452d9..3876d39 100644
--- a/src/com/android/settings/accessibility/CaptionTypefaceController.java
+++ b/src/com/android/settings/accessibility/CaptioningTypefaceController.java
@@ -27,13 +27,13 @@
 
 import com.android.settings.core.BasePreferenceController;
 
-/** Preference controller for caption type face. */
-public class CaptionTypefaceController extends BasePreferenceController
+/** Preference controller for captioning type face. */
+public class CaptioningTypefaceController extends BasePreferenceController
         implements Preference.OnPreferenceChangeListener {
 
     private final CaptionHelper mCaptionHelper;
 
-    public CaptionTypefaceController(Context context, String preferenceKey) {
+    public CaptioningTypefaceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mCaptionHelper = new CaptionHelper(context);
     }
diff --git a/src/com/android/settings/accessibility/CaptionWindowColorController.java b/src/com/android/settings/accessibility/CaptioningWindowColorController.java
similarity index 93%
rename from src/com/android/settings/accessibility/CaptionWindowColorController.java
rename to src/com/android/settings/accessibility/CaptioningWindowColorController.java
index f13a347..ce68227 100644
--- a/src/com/android/settings/accessibility/CaptionWindowColorController.java
+++ b/src/com/android/settings/accessibility/CaptioningWindowColorController.java
@@ -26,13 +26,13 @@
 import com.android.settings.accessibility.ListDialogPreference.OnValueChangedListener;
 import com.android.settings.core.BasePreferenceController;
 
-/** Preference controller for caption window color. */
-public class CaptionWindowColorController extends BasePreferenceController
+/** Preference controller for captioning window color. */
+public class CaptioningWindowColorController extends BasePreferenceController
         implements OnValueChangedListener {
 
     private final CaptionHelper mCaptionHelper;
 
-    public CaptionWindowColorController(Context context, String preferenceKey) {
+    public CaptioningWindowColorController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mCaptionHelper = new CaptionHelper(context);
     }
diff --git a/src/com/android/settings/accessibility/CaptionWindowOpacityController.java b/src/com/android/settings/accessibility/CaptioningWindowOpacityController.java
similarity index 91%
rename from src/com/android/settings/accessibility/CaptionWindowOpacityController.java
rename to src/com/android/settings/accessibility/CaptioningWindowOpacityController.java
index 8076a48..ef28803 100644
--- a/src/com/android/settings/accessibility/CaptionWindowOpacityController.java
+++ b/src/com/android/settings/accessibility/CaptioningWindowOpacityController.java
@@ -25,13 +25,13 @@
 import com.android.settings.accessibility.ListDialogPreference.OnValueChangedListener;
 import com.android.settings.core.BasePreferenceController;
 
-/** Preference controller for caption window opacity. */
-public class  CaptionWindowOpacityController extends BasePreferenceController
+/** Preference controller for captioning window opacity. */
+public class CaptioningWindowOpacityController extends BasePreferenceController
         implements OnValueChangedListener {
 
     private final CaptionHelper mCaptionHelper;
 
-    public CaptionWindowOpacityController(Context context, String preferenceKey) {
+    public CaptioningWindowOpacityController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mCaptionHelper = new CaptionHelper(context);
     }
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
index ca79a24..5f9a74f 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
@@ -47,6 +47,7 @@
 import android.view.accessibility.AccessibilityManager;
 import android.view.animation.AnimationUtils;
 import android.view.animation.Interpolator;
+import android.widget.LinearLayout;
 import android.widget.ProgressBar;
 import android.widget.TextView;
 
@@ -64,10 +65,12 @@
 import com.google.android.setupcompat.template.FooterBarMixin;
 import com.google.android.setupcompat.template.FooterButton;
 import com.google.android.setupcompat.util.WizardManagerHelper;
+import com.google.android.setupdesign.GlifLayout;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.List;
+import java.util.Locale;
 
 /**
  * Activity which handles the actual enrolling for fingerprint.
@@ -168,13 +171,37 @@
         mAccessibilityManager = getSystemService(AccessibilityManager.class);
         mIsAccessibilityEnabled = mAccessibilityManager.isEnabled();
 
+        final boolean isLayoutRtl = (TextUtils.getLayoutDirectionFromLocale(
+                Locale.getDefault()) == View.LAYOUT_DIRECTION_RTL);
         listenOrientationEvent();
 
         if (mCanAssumeUdfps) {
-            if (BiometricUtils.isReverseLandscape(getApplicationContext())) {
-                setContentView(R.layout.udfps_enroll_enrolling_land);
-            } else {
-                setContentView(R.layout.udfps_enroll_enrolling);
+            switch(getApplicationContext().getDisplay().getRotation()) {
+                case Surface.ROTATION_90:
+                    final GlifLayout layout = (GlifLayout) getLayoutInflater().inflate(
+                            R.layout.udfps_enroll_enrolling, null, false);
+                    final LinearLayout layoutContainer = layout.findViewById(
+                            R.id.layout_container);
+                    final LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
+                            LinearLayout.LayoutParams.MATCH_PARENT,
+                            LinearLayout.LayoutParams.MATCH_PARENT);
+
+                    lp.setMarginEnd((int) getResources().getDimension(
+                            R.dimen.rotation_90_enroll_margin_end));
+                    layoutContainer.setPaddingRelative((int) getResources().getDimension(
+                            R.dimen.rotation_90_enroll_padding_start), 0, isLayoutRtl
+                            ? 0 : (int) getResources().getDimension(
+                                    R.dimen.rotation_90_enroll_padding_end), 0);
+                    layoutContainer.setLayoutParams(lp);
+                    setContentView(layout, lp);
+                    break;
+
+                case Surface.ROTATION_0:
+                case Surface.ROTATION_180:
+                case Surface.ROTATION_270:
+                default:
+                    setContentView(R.layout.udfps_enroll_enrolling);
+                    break;
             }
             setDescriptionText(R.string.security_settings_udfps_enroll_start_message);
         } else {
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
index dc746ce..5e17e0b 100644
--- a/src/com/android/settings/core/gateway/SettingsGateway.java
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -28,7 +28,7 @@
 import com.android.settings.accessibility.AccessibilityDetailsSettingsFragment;
 import com.android.settings.accessibility.AccessibilitySettings;
 import com.android.settings.accessibility.AccessibilitySettingsForSetupWizard;
-import com.android.settings.accessibility.CaptionPropertiesFragment;
+import com.android.settings.accessibility.CaptioningPropertiesFragment;
 import com.android.settings.accessibility.TextReadingPreferenceFragmentForSetupWizard;
 import com.android.settings.accessibility.ToggleColorInversionPreferenceFragment;
 import com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment;
@@ -230,7 +230,7 @@
             AccessibilitySettings.class.getName(),
             AccessibilitySettingsForSetupWizard.class.getName(),
             TextReadingPreferenceFragmentForSetupWizard.class.getName(),
-            CaptionPropertiesFragment.class.getName(),
+            CaptioningPropertiesFragment.class.getName(),
             ToggleDaltonizerPreferenceFragment.class.getName(),
             ToggleColorInversionPreferenceFragment.class.getName(),
             ToggleReduceBrightColorsPreferenceFragment.class.getName(),
diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java
index a004a51..a51fbec 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java
@@ -218,7 +218,7 @@
      *
      * The valid result should be composed of 3 parts:
      * 1) start timestamp
-     * 2) every 0am timestamp (default timezone) between the start and end
+     * 2) every 00:00 timestamp (default timezone) between the start and end
      * 3) end timestamp
      * Otherwise, returns an empty list.
      */
@@ -277,18 +277,27 @@
     }
 
     /**
-     * @return Returns the timestamp for 0am 1 day after the given timestamp based on local
+     * @return Returns the timestamp for 00:00 1 day after the given timestamp based on local
      * timezone.
      */
     @VisibleForTesting
     static long getTimestampOfNextDay(long timestamp) {
-        final Calendar nextDayCalendar = Calendar.getInstance();
-        nextDayCalendar.setTimeInMillis(timestamp);
-        nextDayCalendar.add(Calendar.DAY_OF_YEAR, 1);
-        nextDayCalendar.set(Calendar.HOUR_OF_DAY, 0);
-        nextDayCalendar.set(Calendar.MINUTE, 0);
-        nextDayCalendar.set(Calendar.SECOND, 0);
-        return nextDayCalendar.getTimeInMillis();
+        return getTimestampWithDayDiff(timestamp, /*dayDiff=*/ 1);
+    }
+
+    /**
+     *  Returns whether currentSlot will be used in daily chart.
+     */
+    @VisibleForTesting
+    static boolean isForDailyChart(final boolean isStartOrEnd, final long currentSlot) {
+        // The start and end timestamps will always be used in daily chart.
+        if (isStartOrEnd) {
+            return true;
+        }
+
+        // The timestamps for 00:00 will be used in daily chart.
+        final long startOfTheDay = getTimestampWithDayDiff(currentSlot, /*dayDiff=*/ 0);
+        return currentSlot == startOfTheDay;
     }
 
     /**
@@ -350,10 +359,13 @@
             startIndex = 1;
             resultMap.put(expectedStartTimestamp, batteryHistoryMap.get(rawStartTimestamp));
         }
-        for (int index = startIndex; index < expectedTimestampSlots.size(); index++) {
+        final int expectedTimestampSlotsSize = expectedTimestampSlots.size();
+        for (int index = startIndex; index < expectedTimestampSlotsSize; index++) {
             final long currentSlot = expectedTimestampSlots.get(index);
+            final boolean isStartOrEnd = index == 0 || index == expectedTimestampSlotsSize - 1;
             interpolateHistoryForSlot(
-                    context, currentSlot, rawTimestampList, batteryHistoryMap, resultMap);
+                    context, currentSlot, rawTimestampList, batteryHistoryMap, resultMap,
+                    isStartOrEnd);
         }
     }
 
@@ -362,7 +374,8 @@
             final long currentSlot,
             final List<Long> rawTimestampList,
             final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap,
-            final Map<Long, Map<String, BatteryHistEntry>> resultMap) {
+            final Map<Long, Map<String, BatteryHistEntry>> resultMap,
+            final boolean isStartOrEnd) {
         final long[] nearestTimestamps = findNearestTimestamp(rawTimestampList, currentSlot);
         final long lowerTimestamp = nearestTimestamps[0];
         final long upperTimestamp = nearestTimestamps[1];
@@ -385,7 +398,8 @@
             return;
         }
         interpolateHistoryForSlot(context,
-                currentSlot, lowerTimestamp, upperTimestamp, batteryHistoryMap, resultMap);
+                currentSlot, lowerTimestamp, upperTimestamp, batteryHistoryMap, resultMap,
+                isStartOrEnd);
     }
 
     private static void interpolateHistoryForSlot(
@@ -394,7 +408,8 @@
             final long lowerTimestamp,
             final long upperTimestamp,
             final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap,
-            final Map<Long, Map<String, BatteryHistEntry>> resultMap) {
+            final Map<Long, Map<String, BatteryHistEntry>> resultMap,
+            final boolean isStartOrEnd) {
         final Map<String, BatteryHistEntry> lowerEntryDataMap =
                 batteryHistoryMap.get(lowerTimestamp);
         final Map<String, BatteryHistEntry> upperEntryDataMap =
@@ -405,7 +420,10 @@
         final long upperEntryDataBootTimestamp =
                 upperEntryDataFirstEntry.mTimestamp - upperEntryDataFirstEntry.mBootTimestamp;
         // Lower data is captured before upper data corresponding device is booting.
-        if (lowerTimestamp < upperEntryDataBootTimestamp) {
+        // Skips the booting-specific logics and always does interpolation for daily chart level
+        // data.
+        if (lowerTimestamp < upperEntryDataBootTimestamp
+                && !isForDailyChart(isStartOrEnd, currentSlot)) {
             // Provides an opportunity to force align the slot directly.
             if ((upperTimestamp - currentSlot) < 10 * DateUtils.MINUTE_IN_MILLIS) {
                 log(context, "force align into the nearest slot", currentSlot, null);
@@ -877,6 +895,16 @@
         return true;
     }
 
+    private static long getTimestampWithDayDiff(final long timestamp, final int dayDiff) {
+        final Calendar calendar = Calendar.getInstance();
+        calendar.setTimeInMillis(timestamp);
+        calendar.add(Calendar.DAY_OF_YEAR, dayDiff);
+        calendar.set(Calendar.HOUR_OF_DAY, 0);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        return calendar.getTimeInMillis();
+    }
+
     private static boolean contains(String target, Set<CharSequence> packageNames) {
         if (target != null && packageNames != null) {
             for (CharSequence packageName : packageNames) {
diff --git a/src/com/android/settings/vpn2/AdvancedVpnFeatureProvider.java b/src/com/android/settings/vpn2/AdvancedVpnFeatureProvider.java
index cb56c35..962b6c2 100644
--- a/src/com/android/settings/vpn2/AdvancedVpnFeatureProvider.java
+++ b/src/com/android/settings/vpn2/AdvancedVpnFeatureProvider.java
@@ -47,4 +47,9 @@
      * Returns {@code true} advanced vpn is removable.
      */
     boolean isAdvancedVpnRemovable();
+
+    /**
+     * Returns {@code true} if the disconnect dialog is enabled when advanced vpn is connected.
+     */
+    boolean isDisconnectDialogEnabled();
 }
diff --git a/src/com/android/settings/vpn2/AdvancedVpnFeatureProviderImpl.java b/src/com/android/settings/vpn2/AdvancedVpnFeatureProviderImpl.java
index c5bc69c..b8f58a9 100644
--- a/src/com/android/settings/vpn2/AdvancedVpnFeatureProviderImpl.java
+++ b/src/com/android/settings/vpn2/AdvancedVpnFeatureProviderImpl.java
@@ -46,4 +46,9 @@
     public boolean isAdvancedVpnRemovable() {
         return true;
     }
+
+    @Override
+    public boolean isDisconnectDialogEnabled() {
+        return true;
+    }
 }
diff --git a/src/com/android/settings/vpn2/VpnSettings.java b/src/com/android/settings/vpn2/VpnSettings.java
index 3b875eb..a91bb6c 100644
--- a/src/com/android/settings/vpn2/VpnSettings.java
+++ b/src/com/android/settings/vpn2/VpnSettings.java
@@ -366,7 +366,7 @@
     public void setShownPreferences(final Collection<Preference> updates) {
         retainAllPreference(updates);
 
-        final PreferenceGroup vpnGroup = getPreferenceScreen();
+        final PreferenceGroup vpnGroup = mPreferenceScreen;
         updatePreferenceGroup(vpnGroup, updates);
 
         // Show all new preferences on the screen
@@ -448,14 +448,16 @@
         } else if (preference instanceof AppPreference) {
             AppPreference pref = (AppPreference) preference;
             boolean connected = (pref.getState() == AppPreference.STATE_CONNECTED);
+            String vpnPackageName = pref.getPackageName();
 
-            if (!connected) {
+            if ((!connected) || (isAdvancedVpn(mFeatureProvider, vpnPackageName, getContext())
+                    && !mFeatureProvider.isDisconnectDialogEnabled())) {
                 try {
                     UserHandle user = UserHandle.of(pref.getUserId());
-                    Context userContext = getActivity().createPackageContextAsUser(
-                            getActivity().getPackageName(), 0 /* flags */, user);
+                    Context userContext = getContext().createPackageContextAsUser(
+                            getContext().getPackageName(), 0 /* flags */, user);
                     PackageManager pm = userContext.getPackageManager();
-                    Intent appIntent = pm.getLaunchIntentForPackage(pref.getPackageName());
+                    Intent appIntent = pm.getLaunchIntentForPackage(vpnPackageName);
                     if (appIntent != null) {
                         userContext.startActivityAsUser(appIntent, user);
                         return true;
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionHelperTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptionHelperTest.java
index 4700ecd..c1a1799 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionHelperTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptionHelperTest.java
@@ -92,7 +92,7 @@
         final float fontScale = 1.0f;
         when(mCaptioningManager.getFontScale()).thenReturn(fontScale);
         final float textSize = mContext.getResources().getDimension(
-                R.dimen.caption_preview_text_size) * fontScale;
+                R.dimen.captioning_preview_text_size) * fontScale;
 
         mCaptionHelper.applyCaptionProperties(mSubtitleView, /* PreviewWindow= */ null,
                 /* styleId= */ 0);
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionAppearanceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningAppearanceFragmentTest.java
similarity index 84%
rename from tests/robotests/src/com/android/settings/accessibility/CaptionAppearanceFragmentTest.java
rename to tests/robotests/src/com/android/settings/accessibility/CaptioningAppearanceFragmentTest.java
index b180f22..c839a01 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionAppearanceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningAppearanceFragmentTest.java
@@ -33,16 +33,16 @@
 
 import java.util.List;
 
-/** Tests for {@link CaptionAppearanceFragment}. */
+/** Tests for {@link CaptioningAppearanceFragment}. */
 @RunWith(RobolectricTestRunner.class)
-public class CaptionAppearanceFragmentTest {
+public class CaptioningAppearanceFragmentTest {
 
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private CaptionAppearanceFragment mFragment;
+    private CaptioningAppearanceFragment mFragment;
 
     @Before
     public void setUp() {
-        mFragment = new CaptionAppearanceFragment();
+        mFragment = new CaptioningAppearanceFragment();
     }
 
     @Test
@@ -58,7 +58,7 @@
 
     @Test
     public void getLogTag_returnsCorrectTag() {
-        assertThat(mFragment.getLogTag()).isEqualTo("CaptionAppearanceFragment");
+        assertThat(mFragment.getLogTag()).isEqualTo("CaptioningAppearanceFragment");
     }
 
     @Test
@@ -68,7 +68,7 @@
 
     @Test
     public void getNonIndexableKeys_existInXmlLayout() {
-        final List<String> niks = CaptionAppearanceFragment.SEARCH_INDEX_DATA_PROVIDER
+        final List<String> niks = CaptioningAppearanceFragment.SEARCH_INDEX_DATA_PROVIDER
                 .getNonIndexableKeys(mContext);
         final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(mContext,
                 R.xml.captioning_appearance);
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionAppearancePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningAppearancePreferenceControllerTest.java
similarity index 96%
rename from tests/robotests/src/com/android/settings/accessibility/CaptionAppearancePreferenceControllerTest.java
rename to tests/robotests/src/com/android/settings/accessibility/CaptioningAppearancePreferenceControllerTest.java
index cfa683ba..74fb440 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionAppearancePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningAppearancePreferenceControllerTest.java
@@ -34,23 +34,23 @@
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowCaptioningManager;
 
-/** Tests for {@link CaptionAppearancePreferenceController}. */
+/** Tests for {@link CaptioningAppearancePreferenceController}. */
 @RunWith(RobolectricTestRunner.class)
-public class CaptionAppearancePreferenceControllerTest {
+public class CaptioningAppearancePreferenceControllerTest {
 
     private static final String TEST_KEY = "test_key";
     private static final int DEFAULT_PRESET_INDEX = 1;
     private static final int DEFAULT_FONT_SCALE_INDEX = 2;
 
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private CaptionAppearancePreferenceController mController;
+    private CaptioningAppearancePreferenceController mController;
     private ShadowCaptioningManager mShadowCaptioningManager;
 
     @Before
     public void setUp() {
         CaptioningManager captioningManager = mContext.getSystemService(CaptioningManager.class);
         mShadowCaptioningManager = Shadow.extract(captioningManager);
-        mController = new CaptionAppearancePreferenceController(mContext, TEST_KEY);
+        mController = new CaptioningAppearancePreferenceController(mContext, TEST_KEY);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionBackgroundColorControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningBackgroundColorControllerTest.java
similarity index 92%
rename from tests/robotests/src/com/android/settings/accessibility/CaptionBackgroundColorControllerTest.java
rename to tests/robotests/src/com/android/settings/accessibility/CaptioningBackgroundColorControllerTest.java
index 964e240..2ecaa0f 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionBackgroundColorControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningBackgroundColorControllerTest.java
@@ -45,22 +45,23 @@
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowCaptioningManager;
 
-/** Tests for {@link CaptionBackgroundColorController}. */
+/** Tests for {@link CaptioningBackgroundColorController}. */
 @RunWith(RobolectricTestRunner.class)
-public class CaptionBackgroundColorControllerTest {
+public class CaptioningBackgroundColorControllerTest {
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Mock
     private PreferenceScreen mScreen;
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private CaptionBackgroundColorController mController;
+    private CaptioningBackgroundColorController mController;
     private ColorPreference mPreference;
     private ShadowCaptioningManager mShadowCaptioningManager;
 
     @Before
     public void setUp() {
-        mController = new CaptionBackgroundColorController(mContext, "captioning_background_color");
+        mController = new CaptioningBackgroundColorController(mContext,
+                "captioning_background_color");
         final AttributeSet attributeSet = Robolectric.buildAttributeSet().build();
         mPreference = new ColorPreference(mContext, attributeSet);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionBackgroundOpacityControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningBackgroundOpacityControllerTest.java
similarity index 94%
rename from tests/robotests/src/com/android/settings/accessibility/CaptionBackgroundOpacityControllerTest.java
rename to tests/robotests/src/com/android/settings/accessibility/CaptioningBackgroundOpacityControllerTest.java
index 3c5e247..56a61ec 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionBackgroundOpacityControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningBackgroundOpacityControllerTest.java
@@ -47,21 +47,21 @@
 
 /** Tests for {@link CaptionBackgroundOpacityController}. */
 @RunWith(RobolectricTestRunner.class)
-public class CaptionBackgroundOpacityControllerTest {
+public class CaptioningBackgroundOpacityControllerTest {
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Mock
     private PreferenceScreen mScreen;
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private CaptionBackgroundOpacityController mController;
+    private CaptioningBackgroundOpacityController mController;
     private ColorPreference mPreference;
     private ShadowCaptioningManager mShadowCaptioningManager;
 
     @Before
     public void setUp() {
-        mController =
-                new CaptionBackgroundOpacityController(mContext, "captioning_background_opacity");
+        mController = new CaptioningBackgroundOpacityController(mContext,
+                "captioning_background_opacity");
         final AttributeSet attributeSet = Robolectric.buildAttributeSet().build();
         mPreference = new ColorPreference(mContext, attributeSet);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionCustomControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningCustomControllerTest.java
similarity index 93%
rename from tests/robotests/src/com/android/settings/accessibility/CaptionCustomControllerTest.java
rename to tests/robotests/src/com/android/settings/accessibility/CaptioningCustomControllerTest.java
index 783a9fc..838d9e0 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionCustomControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningCustomControllerTest.java
@@ -41,9 +41,9 @@
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 
-/** Tests for {@link CaptionCustomController}. */
+/** Tests for {@link CaptioningCustomController}. */
 @RunWith(RobolectricTestRunner.class)
-public class CaptionCustomControllerTest {
+public class CaptioningCustomControllerTest {
 
     private static final String PREF_KEY = "custom";
 
@@ -55,13 +55,13 @@
     private AccessibilitySettingsContentObserver mAccessibilitySettingsContentObserver;
     private final Context mContext = ApplicationProvider.getApplicationContext();
     private ContentResolver mContentResolver;
-    private CaptionCustomController mController;
+    private CaptioningCustomController mController;
     private Preference mPreference;
 
     @Before
     public void setUp() {
         mContentResolver = mContext.getContentResolver();
-        mController = new CaptionCustomController(mContext, PREF_KEY,
+        mController = new CaptioningCustomController(mContext, PREF_KEY,
                 mAccessibilitySettingsContentObserver);
         mPreference = new Preference(mContext);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionEdgeColorControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningEdgeColorControllerTest.java
similarity index 93%
rename from tests/robotests/src/com/android/settings/accessibility/CaptionEdgeColorControllerTest.java
rename to tests/robotests/src/com/android/settings/accessibility/CaptioningEdgeColorControllerTest.java
index fd4e55a..f1a8566 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionEdgeColorControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningEdgeColorControllerTest.java
@@ -45,21 +45,21 @@
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowCaptioningManager;
 
-/** Tests for {@link CaptionEdgeColorController}. */
+/** Tests for {@link CaptioningEdgeColorController}. */
 @RunWith(RobolectricTestRunner.class)
-public class CaptionEdgeColorControllerTest {
+public class CaptioningEdgeColorControllerTest {
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Mock
     private PreferenceScreen mScreen;
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private CaptionEdgeColorController mController;
+    private CaptioningEdgeColorController mController;
     private ColorPreference mPreference;
     private ShadowCaptioningManager mShadowCaptioningManager;
 
     @Before
     public void setUp() {
-        mController = new CaptionEdgeColorController(mContext, "captioning_edge_color");
+        mController = new CaptioningEdgeColorController(mContext, "captioning_edge_color");
         final AttributeSet attributeSet = Robolectric.buildAttributeSet().build();
         mPreference = new ColorPreference(mContext, attributeSet);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionEdgeTypeControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningEdgeTypeControllerTest.java
similarity index 94%
rename from tests/robotests/src/com/android/settings/accessibility/CaptionEdgeTypeControllerTest.java
rename to tests/robotests/src/com/android/settings/accessibility/CaptioningEdgeTypeControllerTest.java
index fba7afa..11871f8 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionEdgeTypeControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningEdgeTypeControllerTest.java
@@ -46,22 +46,22 @@
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowCaptioningManager;
 
-/** Tests for {@link CaptionEdgeTypeController}. */
+/** Tests for {@link CaptioningEdgeTypeController}. */
 @RunWith(RobolectricTestRunner.class)
-public class CaptionEdgeTypeControllerTest {
+public class CaptioningEdgeTypeControllerTest {
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Mock
     private PreferenceScreen mScreen;
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private CaptionEdgeTypeController mController;
+    private CaptioningEdgeTypeController mController;
     private EdgeTypePreference mPreference;
     private ShadowCaptioningManager mShadowCaptioningManager;
 
     @Before
     public void setUp() {
-        mController = new CaptionEdgeTypeController(mContext, "captioning_edge_type");
+        mController = new CaptioningEdgeTypeController(mContext, "captioning_edge_type");
         final AttributeSet attributeSet = Robolectric.buildAttributeSet().build();
         mPreference = new EdgeTypePreference(mContext, attributeSet);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionFontSizeControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningFontSizeControllerTest.java
similarity index 93%
rename from tests/robotests/src/com/android/settings/accessibility/CaptionFontSizeControllerTest.java
rename to tests/robotests/src/com/android/settings/accessibility/CaptioningFontSizeControllerTest.java
index c4033ef..c20cf5d 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionFontSizeControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningFontSizeControllerTest.java
@@ -45,22 +45,22 @@
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowCaptioningManager;
 
-/** Tests for {@link CaptionFontSizeController}. */
+/** Tests for {@link CaptioningFontSizeController}. */
 @RunWith(RobolectricTestRunner.class)
-public class CaptionFontSizeControllerTest {
+public class CaptioningFontSizeControllerTest {
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Mock
     private PreferenceScreen mScreen;
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private CaptionFontSizeController mController;
+    private CaptioningFontSizeController mController;
     private ListPreference mPreference;
     private ShadowCaptioningManager mShadowCaptioningManager;
 
     @Before
     public void setUp() {
-        mController = new CaptionFontSizeController(mContext, "captioning_font_size");
+        mController = new CaptioningFontSizeController(mContext, "captioning_font_size");
         mPreference = new ListPreference(mContext);
         mPreference.setEntries(R.array.captioning_font_size_selector_titles);
         mPreference.setEntryValues(R.array.captioning_font_size_selector_values);
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionForegroundColorControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningForegroundColorControllerTest.java
similarity index 92%
rename from tests/robotests/src/com/android/settings/accessibility/CaptionForegroundColorControllerTest.java
rename to tests/robotests/src/com/android/settings/accessibility/CaptioningForegroundColorControllerTest.java
index 50ce90d..9c64130 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionForegroundColorControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningForegroundColorControllerTest.java
@@ -45,22 +45,23 @@
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowCaptioningManager;
 
-/** Tests for {@link CaptionForegroundColorController}. */
+/** Tests for {@link CaptioningForegroundColorController}. */
 @RunWith(RobolectricTestRunner.class)
-public class CaptionForegroundColorControllerTest {
+public class CaptioningForegroundColorControllerTest {
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Mock
     private PreferenceScreen mScreen;
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private CaptionForegroundColorController mController;
+    private CaptioningForegroundColorController mController;
     private ColorPreference mPreference;
     private ShadowCaptioningManager mShadowCaptioningManager;
 
     @Before
     public void setUp() {
-        mController = new CaptionForegroundColorController(mContext, "captioning_foreground_color");
+        mController = new CaptioningForegroundColorController(mContext,
+                "captioning_foreground_color");
         final AttributeSet attributeSet = Robolectric.buildAttributeSet().build();
         mPreference = new ColorPreference(mContext, attributeSet);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionForegroundOpacityControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningForegroundOpacityControllerTest.java
similarity index 92%
rename from tests/robotests/src/com/android/settings/accessibility/CaptionForegroundOpacityControllerTest.java
rename to tests/robotests/src/com/android/settings/accessibility/CaptioningForegroundOpacityControllerTest.java
index 38cecd6..1ffff60 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionForegroundOpacityControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningForegroundOpacityControllerTest.java
@@ -45,23 +45,23 @@
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowCaptioningManager;
 
-/** Tests for {@link CaptionForegroundOpacityController}. */
+/** Tests for {@link CaptioningForegroundOpacityController}. */
 @RunWith(RobolectricTestRunner.class)
-public class CaptionForegroundOpacityControllerTest {
+public class CaptioningForegroundOpacityControllerTest {
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Mock
     private PreferenceScreen mScreen;
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private CaptionForegroundOpacityController mController;
+    private CaptioningForegroundOpacityController mController;
     private ColorPreference mPreference;
     private ShadowCaptioningManager mShadowCaptioningManager;
 
     @Before
     public void setUp() {
-        mController =
-                new CaptionForegroundOpacityController(mContext, "captioning_foreground_opacity");
+        mController = new CaptioningForegroundOpacityController(mContext,
+                "captioning_foreground_opacity");
         final AttributeSet attributeSet = Robolectric.buildAttributeSet().build();
         mPreference = new ColorPreference(mContext, attributeSet);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionLocalePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningLocalePreferenceControllerTest.java
similarity index 91%
rename from tests/robotests/src/com/android/settings/accessibility/CaptionLocalePreferenceControllerTest.java
rename to tests/robotests/src/com/android/settings/accessibility/CaptioningLocalePreferenceControllerTest.java
index cb0d67c..97c1908 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionLocalePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningLocalePreferenceControllerTest.java
@@ -38,21 +38,21 @@
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 
-/** Tests for {@link CaptionLocalePreferenceController}. */
+/** Tests for {@link CaptioningLocalePreferenceController}. */
 @RunWith(RobolectricTestRunner.class)
-public class CaptionLocalePreferenceControllerTest {
+public class CaptioningLocalePreferenceControllerTest {
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Mock
     private PreferenceScreen mScreen;
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private CaptionLocalePreferenceController mController;
+    private CaptioningLocalePreferenceController mController;
     private LocalePreference mPreference;
 
     @Before
     public void setUp() {
-        mController = new CaptionLocalePreferenceController(mContext, "captioning_local_pref");
+        mController = new CaptioningLocalePreferenceController(mContext, "captioning_local_pref");
         mPreference = new LocalePreference(mContext);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
     }
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionMoreOptionsFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningMoreOptionsFragmentTest.java
similarity index 84%
rename from tests/robotests/src/com/android/settings/accessibility/CaptionMoreOptionsFragmentTest.java
rename to tests/robotests/src/com/android/settings/accessibility/CaptioningMoreOptionsFragmentTest.java
index 8d1c684..6969472 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionMoreOptionsFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningMoreOptionsFragmentTest.java
@@ -33,16 +33,16 @@
 
 import java.util.List;
 
-/** Tests for {@link CaptionMoreOptionsFragment}. */
+/** Tests for {@link CaptioningMoreOptionsFragment}. */
 @RunWith(RobolectricTestRunner.class)
-public class CaptionMoreOptionsFragmentTest {
+public class CaptioningMoreOptionsFragmentTest {
 
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private CaptionMoreOptionsFragment mFragment;
+    private CaptioningMoreOptionsFragment mFragment;
 
     @Before
     public void setUp() {
-        mFragment = new CaptionMoreOptionsFragment();
+        mFragment = new CaptioningMoreOptionsFragment();
     }
 
     @Test
@@ -59,12 +59,12 @@
 
     @Test
     public void getLogTag_returnsCorrectTag() {
-        assertThat(mFragment.getLogTag()).isEqualTo("CaptionMoreOptionsFragment");
+        assertThat(mFragment.getLogTag()).isEqualTo("CaptioningMoreOptionsFragment");
     }
 
     @Test
     public void getNonIndexableKeys_existInXmlLayout() {
-        final List<String> niks = CaptionMoreOptionsFragment.SEARCH_INDEX_DATA_PROVIDER
+        final List<String> niks = CaptioningMoreOptionsFragment.SEARCH_INDEX_DATA_PROVIDER
                 .getNonIndexableKeys(mContext);
         final List<String> keys =
                 XmlTestUtils.getKeysFromPreferenceXml(mContext,
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptioningPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningPreferenceControllerTest.java
index 0dbb347..c44bed1 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptioningPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningPreferenceControllerTest.java
@@ -16,6 +16,9 @@
 
 package com.android.settings.accessibility;
 
+import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
+import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
@@ -30,10 +33,9 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
+/** Tests for {@link CaptioningPreferenceController}. */
 @RunWith(RobolectricTestRunner.class)
 public class CaptioningPreferenceControllerTest {
-    private static final int ON = 1;
-    private static final int OFF = 0;
 
     private Context mContext;
     private CaptioningPreferenceController mController;
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionPresetControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningPresetControllerTest.java
similarity index 94%
rename from tests/robotests/src/com/android/settings/accessibility/CaptionPresetControllerTest.java
rename to tests/robotests/src/com/android/settings/accessibility/CaptioningPresetControllerTest.java
index 0b832d3..c91baa2 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionPresetControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningPresetControllerTest.java
@@ -46,22 +46,22 @@
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowCaptioningManager;
 
-/** Tests for {@link CaptionPresetController}. */
+/** Tests for {@link CaptioningPresetController}. */
 @RunWith(RobolectricTestRunner.class)
-public class CaptionPresetControllerTest {
+public class CaptioningPresetControllerTest {
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Mock
     private PreferenceScreen mScreen;
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private CaptionPresetController mController;
+    private CaptioningPresetController mController;
     private PresetPreference mPreference;
     private ShadowCaptioningManager mShadowCaptioningManager;
 
     @Before
     public void setUp() {
-        mController = new CaptionPresetController(mContext, "captioning_preset");
+        mController = new CaptioningPresetController(mContext, "captioning_preset");
         final AttributeSet attributeSet = Robolectric.buildAttributeSet().build();
         mPreference = new PresetPreference(mContext, attributeSet);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionPreviewPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningPreviewPreferenceControllerTest.java
similarity index 91%
rename from tests/robotests/src/com/android/settings/accessibility/CaptionPreviewPreferenceControllerTest.java
rename to tests/robotests/src/com/android/settings/accessibility/CaptioningPreviewPreferenceControllerTest.java
index dda4886..cf87dd8 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionPreviewPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningPreviewPreferenceControllerTest.java
@@ -42,9 +42,9 @@
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 
-/** Tests for {@link CaptionPreviewPreferenceController}. */
+/** Tests for {@link CaptioningPreviewPreferenceController}. */
 @RunWith(RobolectricTestRunner.class)
-public class CaptionPreviewPreferenceControllerTest {
+public class CaptioningPreviewPreferenceControllerTest {
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
@@ -54,13 +54,13 @@
     private ContentResolver mContentResolver;
     @Spy
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private CaptionPreviewPreferenceController mController;
+    private CaptioningPreviewPreferenceController mController;
     private LayoutPreference mLayoutPreference;
 
     @Before
     public void setUp() {
         when(mContext.getContentResolver()).thenReturn(mContentResolver);
-        mController = new CaptionPreviewPreferenceController(mContext,
+        mController = new CaptioningPreviewPreferenceController(mContext,
                 "captioning_preference_switch");
         final View view = new View(mContext);
         mLayoutPreference = new LayoutPreference(mContext, view);
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionPropertiesFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningPropertiesFragmentTest.java
similarity index 84%
rename from tests/robotests/src/com/android/settings/accessibility/CaptionPropertiesFragmentTest.java
rename to tests/robotests/src/com/android/settings/accessibility/CaptioningPropertiesFragmentTest.java
index cd0638a..4f25139 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionPropertiesFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningPropertiesFragmentTest.java
@@ -33,16 +33,16 @@
 
 import java.util.List;
 
-/** Tests for {@link CaptionPropertiesFragment}. */
+/** Tests for {@link CaptioningPropertiesFragment}. */
 @RunWith(RobolectricTestRunner.class)
-public class CaptionPropertiesFragmentTest {
+public class CaptioningPropertiesFragmentTest {
 
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private CaptionPropertiesFragment mFragment;
+    private CaptioningPropertiesFragment mFragment;
 
     @Before
     public void setUp() {
-        mFragment = new CaptionPropertiesFragment();
+        mFragment = new CaptioningPropertiesFragment();
     }
 
     @Test
@@ -59,12 +59,12 @@
 
     @Test
     public void getLogTag_returnsCorrectTag() {
-        assertThat(mFragment.getLogTag()).isEqualTo("CaptionPropertiesFragment");
+        assertThat(mFragment.getLogTag()).isEqualTo("CaptioningPropertiesFragment");
     }
 
     @Test
     public void getNonIndexableKeys_existInXmlLayout() {
-        final List<String> niks = CaptionPropertiesFragment.SEARCH_INDEX_DATA_PROVIDER
+        final List<String> niks = CaptioningPropertiesFragment.SEARCH_INDEX_DATA_PROVIDER
                 .getNonIndexableKeys(mContext);
         final List<String> keys =
                 XmlTestUtils.getKeysFromPreferenceXml(mContext,
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionTogglePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningTogglePreferenceControllerTest.java
similarity index 95%
rename from tests/robotests/src/com/android/settings/accessibility/CaptionTogglePreferenceControllerTest.java
rename to tests/robotests/src/com/android/settings/accessibility/CaptioningTogglePreferenceControllerTest.java
index 1980df2..cdc1741 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionTogglePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningTogglePreferenceControllerTest.java
@@ -45,22 +45,22 @@
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowCaptioningManager;
 
-/** Tests for {@link CaptionTogglePreferenceController}. */
+/** Tests for {@link CaptioningTogglePreferenceController}. */
 @RunWith(RobolectricTestRunner.class)
-public class CaptionTogglePreferenceControllerTest {
+public class CaptioningTogglePreferenceControllerTest {
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Mock
     private PreferenceScreen mScreen;
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private CaptionTogglePreferenceController mController;
+    private CaptioningTogglePreferenceController mController;
     private SettingsMainSwitchPreference mSwitchPreference;
     private ShadowCaptioningManager mShadowCaptioningManager;
 
     @Before
     public void setUp() {
-        mController = new CaptionTogglePreferenceController(mContext,
+        mController = new CaptioningTogglePreferenceController(mContext,
                 "captioning_preference_switch");
         mSwitchPreference = new SettingsMainSwitchPreference(mContext);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mSwitchPreference);
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionTypefaceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningTypefaceControllerTest.java
similarity index 94%
rename from tests/robotests/src/com/android/settings/accessibility/CaptionTypefaceControllerTest.java
rename to tests/robotests/src/com/android/settings/accessibility/CaptioningTypefaceControllerTest.java
index f2f070f..0ca455c 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionTypefaceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningTypefaceControllerTest.java
@@ -45,22 +45,22 @@
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowCaptioningManager;
 
-/** Tests for {@link CaptionTypefaceController}. */
+/** Tests for {@link CaptioningTypefaceController}. */
 @RunWith(RobolectricTestRunner.class)
-public class CaptionTypefaceControllerTest {
+public class CaptioningTypefaceControllerTest {
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Mock
     private PreferenceScreen mScreen;
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private CaptionTypefaceController mController;
+    private CaptioningTypefaceController mController;
     private ListPreference mPreference;
     private ShadowCaptioningManager mShadowCaptioningManager;
 
     @Before
     public void setUp() {
-        mController = new CaptionTypefaceController(mContext, "captioning_typeface");
+        mController = new CaptioningTypefaceController(mContext, "captioning_typeface");
         mPreference = new ListPreference(mContext);
         mPreference.setEntries(R.array.captioning_typeface_selector_titles);
         mPreference.setEntryValues(R.array.captioning_typeface_selector_values);
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionWindowColorControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningWindowColorControllerTest.java
similarity index 93%
rename from tests/robotests/src/com/android/settings/accessibility/CaptionWindowColorControllerTest.java
rename to tests/robotests/src/com/android/settings/accessibility/CaptioningWindowColorControllerTest.java
index 66b1666..abfa98d 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionWindowColorControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningWindowColorControllerTest.java
@@ -46,22 +46,22 @@
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowCaptioningManager;
 
-/** Tests for {@link CaptionWindowColorController}. */
+/** Tests for {@link CaptioningWindowColorController}. */
 @RunWith(RobolectricTestRunner.class)
-public class CaptionWindowColorControllerTest {
+public class CaptioningWindowColorControllerTest {
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Mock
     private PreferenceScreen mScreen;
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private CaptionWindowColorController mController;
+    private CaptioningWindowColorController mController;
     private ColorPreference mPreference;
     private ShadowCaptioningManager mShadowCaptioningManager;
 
     @Before
     public void setUp() {
-        mController = new CaptionWindowColorController(mContext, "captioning_window_color");
+        mController = new CaptioningWindowColorController(mContext, "captioning_window_color");
         final AttributeSet attributeSet = Robolectric.buildAttributeSet().build();
         mPreference = new ColorPreference(mContext, attributeSet);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionWindowOpacityControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningWindowOpacityControllerTest.java
similarity index 93%
rename from tests/robotests/src/com/android/settings/accessibility/CaptionWindowOpacityControllerTest.java
rename to tests/robotests/src/com/android/settings/accessibility/CaptioningWindowOpacityControllerTest.java
index 71d3748..99eb1e5 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionWindowOpacityControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningWindowOpacityControllerTest.java
@@ -45,22 +45,22 @@
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowCaptioningManager;
 
-/** Tests for {@link CaptionWindowOpacityController}. */
+/** Tests for {@link CaptioningWindowOpacityController}. */
 @RunWith(RobolectricTestRunner.class)
-public class CaptionWindowOpacityControllerTest {
+public class CaptioningWindowOpacityControllerTest {
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Mock
     private PreferenceScreen mScreen;
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private CaptionWindowOpacityController mController;
+    private CaptioningWindowOpacityController mController;
     private ColorPreference mPreference;
     private ShadowCaptioningManager mShadowCaptioningManager;
 
     @Before
     public void setUp() {
-        mController = new CaptionWindowOpacityController(mContext, "captioning_window_opacity");
+        mController = new CaptioningWindowOpacityController(mContext, "captioning_window_opacity");
         final AttributeSet attributeSet = Robolectric.buildAttributeSet().build();
         mPreference = new ColorPreference(mContext, attributeSet);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java
index 1b1e469..af1030c 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java
@@ -402,6 +402,17 @@
     }
 
     @Test
+    public void isForDailyChart_returnExpectedResult() {
+        assertThat(DataProcessor.isForDailyChart(/*isStartOrEnd=*/ true, 0L)).isTrue();
+        // 2022-01-01 00:00:00
+        assertThat(DataProcessor.isForDailyChart(/*isStartOrEnd=*/ false, 1640966400000L))
+                .isTrue();
+        // 2022-01-01 01:00:05
+        assertThat(DataProcessor.isForDailyChart(/*isStartOrEnd=*/ false, 1640970005000L))
+                .isFalse();
+    }
+
+    @Test
     public void getBatteryUsageMap_emptyHistoryMap_returnNull() {
         final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
                 new ArrayList<>();
diff --git a/tests/unit/src/com/android/settings/vpn2/VpnSettingsTest.java b/tests/unit/src/com/android/settings/vpn2/VpnSettingsTest.java
index d6ba33a..953a524 100644
--- a/tests/unit/src/com/android/settings/vpn2/VpnSettingsTest.java
+++ b/tests/unit/src/com/android/settings/vpn2/VpnSettingsTest.java
@@ -21,16 +21,21 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.app.AppOpsManager;
 import android.content.Context;
+import android.content.Intent;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.os.Looper;
 import android.os.UserHandle;
+import android.text.TextUtils;
 import android.util.ArraySet;
 
 import androidx.preference.Preference;
@@ -48,6 +53,7 @@
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
@@ -58,13 +64,18 @@
 
 @RunWith(AndroidJUnit4.class)
 public class VpnSettingsTest {
-    private static final String ADVANCED_VPN_GROUP_KEY = "advanced_vpn_group";
-    private static final String VPN_GROUP_KEY = "vpn_group";
-    private static final String ADVANCED_VPN_GROUP_TITLE = "advanced_vpn_group_title";
-    private static final String VPN_GROUP_TITLE = "vpn_group_title";
-    private static final String FAKE_PACKAGE_NAME = "com.fake.package.name";
-    private static final String ADVANCED_VPN_GROUP_PACKAGE_NAME = "com.advanced.package.name";
     private static final int USER_ID_1 = UserHandle.USER_NULL;
+    private static final String VPN_GROUP_KEY = "vpn_group";
+    private static final String VPN_GROUP_TITLE = "vpn_group_title";
+    private static final String VPN_PACKAGE_NAME = "vpn.package.name";
+    private static final String VPN_LAUNCH_INTENT = "vpn.action";
+    private static final String ADVANCED_VPN_GROUP_KEY = "advanced_vpn_group";
+    private static final String ADVANCED_VPN_GROUP_TITLE = "advanced_vpn_group_title";
+    private static final String ADVANCED_VPN_PACKAGE_NAME = "advanced.vpn.package.name";
+    private static final String ADVANCED_VPN_LAUNCH_INTENT = "advanced.vpn.action";
+
+    private final Intent mVpnIntent = new Intent().setAction(VPN_LAUNCH_INTENT);
+    private final Intent mAdvancedVpnIntent = new Intent().setAction(ADVANCED_VPN_LAUNCH_INTENT);
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
@@ -108,7 +119,7 @@
         when(mFakeFeatureFactory.mAdvancedVpnFeatureProvider.getVpnPreferenceGroupTitle(mContext))
                 .thenReturn(VPN_GROUP_TITLE);
         when(mFakeFeatureFactory.mAdvancedVpnFeatureProvider.getAdvancedVpnPackageName())
-                .thenReturn(ADVANCED_VPN_GROUP_PACKAGE_NAME);
+                .thenReturn(ADVANCED_VPN_PACKAGE_NAME);
         when(mFakeFeatureFactory.mAdvancedVpnFeatureProvider.isAdvancedVpnSupported(any()))
                 .thenReturn(true);
         when(mContext.getPackageManager()).thenReturn(mPackageManager);
@@ -122,7 +133,7 @@
     public void setShownAdvancedPreferences_hasGeneralVpn_returnsVpnCountAs1() {
         Set<Preference> updates = new ArraySet<>();
         AppPreference pref =
-                spy(new AppPreference(mContext, USER_ID_1, FAKE_PACKAGE_NAME));
+                spy(new AppPreference(mContext, USER_ID_1, VPN_PACKAGE_NAME));
         updates.add(pref);
 
         mVpnSettings.setShownAdvancedPreferences(updates);
@@ -136,7 +147,7 @@
     public void setShownAdvancedPreferences_hasAdvancedVpn_returnsAdvancedVpnCountAs1() {
         Set<Preference> updates = new ArraySet<>();
         AppPreference pref =
-                spy(new AppPreference(mContext, USER_ID_1, ADVANCED_VPN_GROUP_PACKAGE_NAME));
+                spy(new AppPreference(mContext, USER_ID_1, ADVANCED_VPN_PACKAGE_NAME));
         updates.add(pref);
 
         mVpnSettings.setShownAdvancedPreferences(updates);
@@ -175,7 +186,7 @@
         List<AppOpsManager.OpEntry> opEntries = new ArrayList<>();
         List<AppOpsManager.PackageOps> apps = new ArrayList<>();
         AppOpsManager.PackageOps packageOps =
-                new AppOpsManager.PackageOps(FAKE_PACKAGE_NAME, uid, opEntries);
+                new AppOpsManager.PackageOps(VPN_PACKAGE_NAME, uid, opEntries);
         apps.add(packageOps);
         when(mAppOpsManager.getPackagesForOps((int[]) any())).thenReturn(apps);
         when(mFakeFeatureFactory.mAdvancedVpnFeatureProvider.isAdvancedVpnSupported(any()))
@@ -185,4 +196,90 @@
                 mFakeFeatureFactory.getAdvancedVpnFeatureProvider(),
                 mAppOpsManager)).isEmpty();
     }
+
+    @Test
+    public void clickVpn_VpnConnected_doesNotStartVpnLaunchIntent()
+            throws PackageManager.NameNotFoundException {
+        Set<Preference> updates = new ArraySet<>();
+        AppPreference pref = spy(new AppPreference(mContext, USER_ID_1, VPN_PACKAGE_NAME));
+        pref.setState(AppPreference.STATE_CONNECTED);
+        updates.add(pref);
+        when(mContext.createPackageContextAsUser(any(), anyInt(), any())).thenReturn(mContext);
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        when(mPackageManager.getLaunchIntentForPackage(any())).thenReturn(mVpnIntent);
+        ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
+        doNothing().when(mContext).startActivityAsUser(captor.capture(), any());
+        mVpnSettings.setShownPreferences(updates);
+
+        mVpnSettings.onPreferenceClick(pref);
+
+        verify(mContext, never()).startActivityAsUser(any(), any());
+    }
+
+    @Test
+    public void clickVpn_VpnDisconnected_startsVpnLaunchIntent()
+            throws PackageManager.NameNotFoundException {
+        Set<Preference> updates = new ArraySet<>();
+        AppPreference pref = spy(new AppPreference(mContext, USER_ID_1, VPN_PACKAGE_NAME));
+        pref.setState(AppPreference.STATE_DISCONNECTED);
+        updates.add(pref);
+        when(mContext.createPackageContextAsUser(any(), anyInt(), any())).thenReturn(mContext);
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        when(mPackageManager.getLaunchIntentForPackage(any())).thenReturn(mVpnIntent);
+        ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
+        doNothing().when(mContext).startActivityAsUser(captor.capture(), any());
+        mVpnSettings.setShownPreferences(updates);
+
+        mVpnSettings.onPreferenceClick(pref);
+
+        verify(mContext).startActivityAsUser(captor.capture(), any());
+        assertThat(TextUtils.equals(captor.getValue().getAction(),
+                VPN_LAUNCH_INTENT)).isTrue();
+    }
+
+    @Test
+    public void clickAdvancedVpn_VpnConnectedDisconnectDialogDisabled_startsAppLaunchIntent()
+            throws PackageManager.NameNotFoundException {
+        Set<Preference> updates = new ArraySet<>();
+        AppPreference pref =
+                spy(new AppPreference(mContext, USER_ID_1, ADVANCED_VPN_PACKAGE_NAME));
+        pref.setState(AppPreference.STATE_CONNECTED);
+        updates.add(pref);
+        when(mFakeFeatureFactory.mAdvancedVpnFeatureProvider.isDisconnectDialogEnabled())
+                .thenReturn(false);
+        when(mContext.createPackageContextAsUser(any(), anyInt(), any())).thenReturn(mContext);
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        when(mPackageManager.getLaunchIntentForPackage(any())).thenReturn(mAdvancedVpnIntent);
+        ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
+        doNothing().when(mContext).startActivityAsUser(captor.capture(), any());
+        mVpnSettings.setShownAdvancedPreferences(updates);
+
+        mVpnSettings.onPreferenceClick(pref);
+
+        verify(mContext).startActivityAsUser(captor.capture(), any());
+        assertThat(TextUtils.equals(captor.getValue().getAction(),
+                ADVANCED_VPN_LAUNCH_INTENT)).isTrue();
+    }
+
+    @Test
+    public void clickAdvancedVpn_VpnConnectedDisconnectDialogEnabled_doesNotStartAppLaunchIntent()
+            throws PackageManager.NameNotFoundException {
+        Set<Preference> updates = new ArraySet<>();
+        AppPreference pref =
+                spy(new AppPreference(mContext, USER_ID_1, ADVANCED_VPN_PACKAGE_NAME));
+        pref.setState(AppPreference.STATE_CONNECTED);
+        updates.add(pref);
+        when(mFakeFeatureFactory.mAdvancedVpnFeatureProvider.isDisconnectDialogEnabled())
+                .thenReturn(true);
+        when(mContext.createPackageContextAsUser(any(), anyInt(), any())).thenReturn(mContext);
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        when(mPackageManager.getLaunchIntentForPackage(any())).thenReturn(mAdvancedVpnIntent);
+        ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
+        doNothing().when(mContext).startActivityAsUser(captor.capture(), any());
+        mVpnSettings.setShownAdvancedPreferences(updates);
+
+        mVpnSettings.onPreferenceClick(pref);
+
+        verify(mContext, never()).startActivityAsUser(any(), any());
+    }
 }