Merge "Align assets and colors for biometric enroll intros" into sc-dev
diff --git a/res/layout/font_size_activity.xml b/res/layout/font_size_activity.xml
index c3b26ae..8850f86 100644
--- a/res/layout/font_size_activity.xml
+++ b/res/layout/font_size_activity.xml
@@ -56,7 +56,6 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:gravity="center_vertical"
-                android:layoutDirection="ltr"
                 android:paddingTop="8dp">
 
                 <ImageView
diff --git a/res/layout/preference_battery_error.xml b/res/layout/preference_battery_error.xml
index 4efd13a..68ac6a2 100644
--- a/res/layout/preference_battery_error.xml
+++ b/res/layout/preference_battery_error.xml
@@ -24,6 +24,7 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_margin="8dp"
+        android:importantForAccessibility="yes"
         style="@style/ContextualCardStyle">
         <LinearLayout
             android:layout_width="match_parent"
@@ -46,16 +47,16 @@
                       android:layout_marginTop="12dp"
                       android:layout_marginBottom="16dp"
                       android:text="@string/battery_missing_message"
-                      android:textAppearance="?android:attr/textAppearanceSmall"
-                      android:textColor="?android:attr/textColorSecondary" />
+                      android:textAppearance="?android:attr/textAppearanceListItem" />
 
             <TextView android:id="@+id/link_text"
                       android:layout_width="wrap_content"
                       android:layout_height="wrap_content"
                       android:layout_gravity="end"
                       android:text="@string/battery_missing_link_message"
-                      android:textAppearance="?android:attr/textAppearanceSmall"
-                      android:textColor="@*android:color/material_red_A700" />
+                      android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+                      android:textColor="@*android:color/material_red_A700"
+                      android:contentDescription="@string/battery_missing_link_a11y_message" />
         </LinearLayout>
     </com.google.android.material.card.MaterialCardView>
 </FrameLayout>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index c6ea2d2..a02ac79 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -103,7 +103,7 @@
     <!-- Disclaimer for camera based rotate [CHAR_LIMIT=NONE] -->
     <string name="smart_rotate_text_headline">
         Face Detection uses the front-facing camera to improve Auto-rotate accuracy. Images are never stored or sent to Google.&lt;br>&lt;br>
-       &lt;a href="<xliff:g example="http://www.google.com" id="url">http://support.google.com/mobile?p=telephony_rtt</xliff:g>">Learn more&lt;/a>
+       &lt;a href="<xliff:g example="http://www.google.com" id="url">http://support.google.com/mobile?p=telephony_rtt</xliff:g>">Learn more about Auto-rotate screen&lt;/a>
     </string>
     <string name="font_size_preview_text_headline">Sample text</string>
     <string name="font_size_preview_text_title"
@@ -695,9 +695,8 @@
         emergency responders when you call or text an emergency number.
     </string>
     <!-- Location settings footer link to support page [CHAR LIMIT=NONE] -->
-    <string name="location_settings_footer_learn_more">
-        &lt;a href="<xliff:g example="http://www.google.com"
-        id="url"> https://support.google.com/android/answer/3467281</xliff:g>">Learn more&lt;/a>
+    <string name="location_settings_footer_learn_more_link" translatable="false">
+        https://support.google.com/android/answer/3467281
     </string>
     <!-- Location settings footer link content description [CHAR LIMIT=NONE] -->
     <string name="location_settings_footer_learn_more_content_description">
@@ -5335,8 +5334,8 @@
     <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback">Swipe up from the bottom of the screen with 3 fingers.\n\nTo switch between features, swipe up with 3 fingers and hold.</string>
     <!-- Summary for software shortcut in accessibility edit shortcut dialog when user had enabled the accessibility floating button mode (Floating over other apps). [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating"><annotation id="link">Customize accessibility button</annotation></string>
-    <!-- Summary for footer to show help link. [CHAR LIMIT=NONE] -->
-    <string name="footer_learn_more"><annotation id="link">Learn more</annotation></string>
+    <!-- Footer to show help link content description. [CHAR LIMIT=NONE] -->
+    <string name="footer_learn_more_content_description">Learn more about <xliff:g id="service" example="Select to Speak">%1$s</xliff:g></string>
     <!-- Title for hardware shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_edit_dialog_title_hardware">Hold volume keys</string>
     <!-- Part of list to compose user's accessibility shortcut list. [CHAR LIMIT=NONE] -->
@@ -6052,7 +6051,7 @@
     <!-- Activity title for battery usage history details [CHAR LIMIT=60] -->
     <string name="history_details_title">History details</string>
     <!-- Preference title for advanced battery usage [CHAR LIMIT=40] -->
-    <string name="advanced_battery_preference_title">View battery usage</string>
+    <string name="advanced_battery_preference_title">Battery Usage</string>
     <!-- Preference summary for advanced battery usage, for past 24 hours [CHAR LIMIT=40] -->
     <string name="advanced_battery_preference_summary_with_hours">View usage for past 24 hours</string>
     <!-- Preference summary for advanced battery usage, from last full charge [CHAR LIMIT=40] -->
@@ -6100,7 +6099,7 @@
     <!-- Title for the battery limited temporarily tip [CHAR LIMIT=NONE] -->
     <string name="battery_tip_limited_temporarily_title">Charging temporarily limited</string>
     <!-- Summary for the battery limited temporarily tip [CHAR LIMIT=NONE] -->
-    <string name="battery_tip_limited_temporarily_summary">Battery limited temporarily. Learn more.</string>
+    <string name="battery_tip_limited_temporarily_summary">To preserve your battery. Learn more.</string>
     <!-- Message for battery tip dialog to show the status about the battery [CHAR LIMIT=NONE] -->
     <string name="battery_tip_dialog_message" product="default">Your phone has been used more than usual. Your battery may run out sooner than expected.\n\nTop apps by battery usage:</string>
     <!-- Message for battery tip dialog to show the status about the battery [CHAR LIMIT=NONE] -->
@@ -6201,9 +6200,11 @@
     <string name="battery_header_title_alternate"><xliff:g id="number" example="88">^1</xliff:g><small> <font size="20"><xliff:g id="unit" example="%">%</xliff:g></font></small></string>
 
     <!-- Summary for top level battery tile if battery is not present. [CHAR LIMIT=NONE] -->
-    <string name="battery_missing_message">Can’t update battery info</string>
+    <string name="battery_missing_message">Problem reading the battery meter.</string>
     <!-- Help text if battery is not present. [CHAR LIMIT=NONE] -->
     <string name="battery_missing_link_message"></string>
+    <!-- Accessibility description for battery missing link. [CHAR LIMIT=NONE] -->
+    <string name="battery_missing_link_a11y_message">Tap to learn more about this error</string>
 
     <!-- Title for force stop dialog [CHAR LIMIT=30] -->
     <string name="dialog_stop_title">Stop app?</string>
@@ -10473,13 +10474,13 @@
         Allowing <xliff:g id="app_name" example="Settings">%1$s</xliff:g> to always run in the background may reduce battery life.
         \n\nYou can change this later from Settings > Apps &amp; notifications.</string>
     <!-- Summary of power usage for an app [CHAR LIMIT=NONE] -->
-    <string name="battery_summary"><xliff:g id="percentage" example="2">%1$s</xliff:g> use since last full charge</string>
+    <string name="battery_summary"><xliff:g id="percentage" example="2">%1$s</xliff:g> use for past 24 hours</string>
 
     <!-- Title of a group of settings that let you manage settings that affect battery life [CHAR LIMIT=60] -->
     <string name="battery_power_management">Power management</string>
 
     <!-- Summary for app with no battery usage [CHAR LIMIT=NONE] -->
-    <string name="no_battery_summary">No battery use since last full charge</string>
+    <string name="no_battery_summary">No battery use for past 24 hours</string>
 
     <!-- Link to an apps notification settings [CHAR LIMIT=50] -->
     <string name="app_notification_preferences">App settings</string>
diff --git a/res/xml/auto_brightness_detail.xml b/res/xml/auto_brightness_detail.xml
index d0bf334..a7c85e8 100644
--- a/res/xml/auto_brightness_detail.xml
+++ b/res/xml/auto_brightness_detail.xml
@@ -27,10 +27,11 @@
         settings:preview="@drawable/aab_brightness"
         settings:controller="com.android.settings.widget.VideoPreferenceController"/>
 
-    <com.android.settingslib.widget.MainSwitchPreference
+    <com.android.settings.widget.SettingsMainSwitchPreference
         android:key="auto_brightness"
         android:title="@string/adaptive_brightness_main_switch_title"
         settings:keywords="@string/keywords_display_auto_brightness"
+        settings:userRestriction="no_config_brightness"
         settings:controller="com.android.settings.display.AutoBrightnessDetailPreferenceController"/>
 
     <com.android.settingslib.widget.FooterPreference
diff --git a/res/xml/location_settings.xml b/res/xml/location_settings.xml
index cffab3e..fe87efd 100644
--- a/res/xml/location_settings.xml
+++ b/res/xml/location_settings.xml
@@ -71,7 +71,6 @@
     <com.android.settingslib.widget.FooterPreference
         android:title="@string/location_settings_footer_general"
         android:key="location_footer"
-        android:selectable="false"
         settings:searchable="false"
         settings:controller="com.android.settings.location.LocationSettingsFooterPreferenceController"/>
 </PreferenceScreen>
diff --git a/res/xml/privacy_dashboard_settings.xml b/res/xml/privacy_dashboard_settings.xml
index 7c4966b..954d3ef 100644
--- a/res/xml/privacy_dashboard_settings.xml
+++ b/res/xml/privacy_dashboard_settings.xml
@@ -21,13 +21,11 @@
     android:key="privacy_dashboard_page"
     android:title="@string/privacy_dashboard_title">
 
-
     <!-- Work Policy info -->
     <Preference
         android:key="work_policy_info"
         android:title="@string/work_policy_privacy_settings"
         android:summary="@string/work_policy_privacy_settings_summary"
-        settings:allowDividerAbove="true"
         settings:controller="com.android.settings.privacy.WorkPolicyInfoPreferenceController"/>
 
     <!-- Connected work and personal apps -->
@@ -42,7 +40,6 @@
     <Preference
         android:key="privacy_accessibility_usage"
         android:title="@string/accessibility_usage_title"
-        settings:allowDividerAbove="true"
         settings:controller="com.android.settings.privacy.AccessibilityUsagePreferenceController">
         <intent android:action="android.intent.action.REVIEW_ACCESSIBILITY_SERVICES"/>
     </Preference>
@@ -52,7 +49,6 @@
         android:key="privacy_permissions_usage"
         android:title="@string/permissions_usage_title"
         android:summary="@string/permissions_usage_summary"
-        settings:allowDividerAbove="true"
         settings:searchable="false"
         settings:controller="com.android.settings.privacy.PrivacyHubPreferenceController">
         <intent android:action="android.intent.action.REVIEW_PERMISSION_USAGE"/>
diff --git a/res/xml/security_settings_face.xml b/res/xml/security_settings_face.xml
index 229c9df..6d7c0ba 100644
--- a/res/xml/security_settings_face.xml
+++ b/res/xml/security_settings_face.xml
@@ -70,21 +70,17 @@
             settings:controller="com.android.settings.biometrics.face.FaceSettingsLockscreenBypassPreferenceController" />
     </PreferenceCategory>
 
-    <PreferenceCategory
-        android:key="security_settings_face_button_category"
-        android:title="@string/security_settings_face_preference_title">
-        <com.android.settingslib.widget.LayoutPreference
-            android:key="security_settings_face_delete_faces_container"
-            android:title="@string/security_settings_face_settings_remove_face_model"
-            android:selectable="false"
-            android:layout="@layout/face_remove_button"/>
+    <com.android.settingslib.widget.LayoutPreference
+        android:key="security_settings_face_delete_faces_container"
+        android:title="@string/security_settings_face_settings_remove_face_model"
+        android:selectable="false"
+        android:layout="@layout/face_remove_button"/>
 
-        <com.android.settingslib.widget.LayoutPreference
-            android:key="security_settings_face_enroll_faces_container"
-            android:title="@string/security_settings_face_settings_enroll"
-            android:selectable="false"
-            android:layout="@layout/face_enroll_button"/>
-    </PreferenceCategory>
+    <com.android.settingslib.widget.LayoutPreference
+        android:key="security_settings_face_enroll_faces_container"
+        android:title="@string/security_settings_face_settings_enroll"
+        android:selectable="false"
+        android:layout="@layout/face_enroll_button"/>
 
     <com.android.settingslib.widget.FooterPreference
         android:key="security_face_footer"
diff --git a/src/com/android/settings/SettingsDumpService.java b/src/com/android/settings/SettingsDumpService.java
index a935c18..2a041f3 100644
--- a/src/com/android/settings/SettingsDumpService.java
+++ b/src/com/android/settings/SettingsDumpService.java
@@ -111,9 +111,9 @@
             for (SubscriptionInfo info : manager.getAvailableSubscriptionInfoList()) {
                 telephonyManager = telephonyManager
                         .createForSubscriptionId(info.getSubscriptionId());
-                NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll(
+                NetworkTemplate carrier = NetworkTemplate.buildTemplateCarrierMetered(
                         telephonyManager.getSubscriberId());
-                final JSONObject usage = dumpDataUsage(mobileAll, controller);
+                final JSONObject usage = dumpDataUsage(carrier, controller);
                 usage.put("subId", info.getSubscriptionId());
                 array.put(usage);
             }
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index a276ad7..b8ff60c 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -26,7 +26,6 @@
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.util.ArrayMap;
-import android.util.FeatureFlagUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -43,11 +42,8 @@
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
-import com.android.settings.core.FeatureFlags;
 import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-import com.android.settings.search.actionbar.SearchMenuController;
-import com.android.settings.support.actionbar.HelpMenuController;
 import com.android.settings.support.actionbar.HelpResourceProvider;
 import com.android.settings.widget.HighlightablePreferenceGroupAdapter;
 import com.android.settings.widget.LoadingViewController;
@@ -129,11 +125,6 @@
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
-        // TODO(b/176883483): Remove both search and help menu if this feature rolled out
-        if (!FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.SILKY_HOME)) {
-            SearchMenuController.init(this /* host */);
-            HelpMenuController.init(this /* host */);
-        }
 
         if (icicle != null) {
             mPreferenceHighlighted = icicle.getBoolean(SAVE_HIGHLIGHTED_KEY);
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 6d4ea26..90dad9d 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -110,7 +110,6 @@
 import com.android.internal.app.UnlaunchableAppActivity;
 import com.android.internal.util.ArrayUtils;
 import com.android.internal.widget.LockPatternUtils;
-import com.android.settings.core.FeatureFlags;
 import com.android.settings.dashboard.profileselector.ProfileFragmentBridge;
 import com.android.settings.dashboard.profileselector.ProfileSelectFragment;
 import com.android.settings.password.ChooseLockSettingsHelper;
@@ -1228,10 +1227,7 @@
     }
 
     public static boolean isPageTransitionEnabled(Context context) {
-        final boolean isSilkyHome = FeatureFlagUtils.isEnabled(context, FeatureFlags.SILKY_HOME);
-        final boolean isTransitionEnabled = Settings.Global.getInt(context.getContentResolver(),
+        return Settings.Global.getInt(context.getContentResolver(),
                 SETTINGS_SHARED_AXIS_ENABLED, 0) == 1;
-
-        return isSilkyHome && isTransitionEnabled;
     }
 }
diff --git a/src/com/android/settings/accessibility/AccessibilityFooterPreference.java b/src/com/android/settings/accessibility/AccessibilityFooterPreference.java
index d68538e..67b7827 100644
--- a/src/com/android/settings/accessibility/AccessibilityFooterPreference.java
+++ b/src/com/android/settings/accessibility/AccessibilityFooterPreference.java
@@ -17,29 +17,19 @@
 package com.android.settings.accessibility;
 
 import android.content.Context;
-import android.content.Intent;
-import android.text.SpannableStringBuilder;
-import android.text.TextUtils;
 import android.text.method.LinkMovementMethod;
 import android.util.AttributeSet;
-import android.widget.LinearLayout;
 import android.widget.TextView;
 
 import androidx.preference.PreferenceViewHolder;
 
-import com.android.settings.R;
-import com.android.settings.utils.AnnotationSpan;
-import com.android.settingslib.HelpUtils;
 import com.android.settingslib.widget.FooterPreference;
 
 /**
- * A custom preference acting as footer of a page. It has a field for icon and text. It is added
- * to screen as the last preference and groups of icon and text content in accessibility-focusable
- * {@link android.view.accessibility.AccessibilityNodeInfo} for TalkBack to use.
+ * A custom preference acting as footer of a page. Disables the movement method by default.
  */
 public final class AccessibilityFooterPreference extends FooterPreference {
 
-    private CharSequence mIconContentDescription;
     private boolean mLinkEnabled;
 
     public AccessibilityFooterPreference(Context context, AttributeSet attrs) {
@@ -65,33 +55,6 @@
         } else {
             title.setMovementMethod(/* movement= */ null);
         }
-
-        final LinearLayout infoFrame = holder.itemView.findViewById(R.id.icon_frame);
-        if (!TextUtils.isEmpty(mIconContentDescription)) {
-            // Groups related content.
-            infoFrame.setContentDescription(mIconContentDescription);
-            title.setFocusable(false);
-        } else {
-            infoFrame.setContentDescription(null);
-            title.setFocusable(true);
-        }
-    }
-
-    /**
-     * Sets the content description of the icon.
-     */
-    public void setIconContentDescription(CharSequence iconContentDescription) {
-        if (!TextUtils.equals(iconContentDescription, mIconContentDescription)) {
-            mIconContentDescription = iconContentDescription;
-            notifyChanged();
-        }
-    }
-
-    /**
-     * Gets the content description of the icon.
-     */
-    public CharSequence getIconContentDescription() {
-        return mIconContentDescription;
     }
 
     /**
@@ -110,23 +73,4 @@
     public boolean isLinkEnabled() {
         return mLinkEnabled;
     }
-
-    /**
-     * Appends {@link AnnotationSpan} with learn more link apart from the other text.
-     *
-     * @param helpLinkRes The Help Uri Resource key
-     */
-    public void appendHelpLink(int helpLinkRes) {
-        final SpannableStringBuilder sb = new SpannableStringBuilder();
-        sb.append(getTitle()).append("\n\n").append(getLearnMoreLink(getContext(), helpLinkRes));
-        setTitle(sb);
-    }
-
-    private CharSequence getLearnMoreLink(Context context, int helpLinkRes) {
-        final Intent helpIntent = HelpUtils.getHelpIntent(
-                context, context.getString(helpLinkRes), context.getClass().getName());
-        final AnnotationSpan.LinkInfo linkInfo = new AnnotationSpan.LinkInfo(
-                context, AnnotationSpan.LinkInfo.DEFAULT_ANNOTATION, helpIntent);
-        return AnnotationSpan.linkify(context.getText(R.string.footer_learn_more), linkInfo);
-    }
 }
diff --git a/src/com/android/settings/accessibility/AccessibilityFooterPreferenceController.java b/src/com/android/settings/accessibility/AccessibilityFooterPreferenceController.java
index 9fe4b3a..e3422e4 100644
--- a/src/com/android/settings/accessibility/AccessibilityFooterPreferenceController.java
+++ b/src/com/android/settings/accessibility/AccessibilityFooterPreferenceController.java
@@ -17,11 +17,13 @@
 package com.android.settings.accessibility;
 
 import android.content.Context;
+import android.content.Intent;
 
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.HelpUtils;
 
 /**
  * Base class for accessibility preference footer.
@@ -59,13 +61,24 @@
     protected abstract String getLabelName();
 
     private void updateFooterPreferences(AccessibilityFooterPreference footerPreference) {
-        final String iconContentDescription = mContext.getString(
-                R.string.accessibility_introduction_title, getLabelName());
-        footerPreference.setIconContentDescription(iconContentDescription);
+        final StringBuffer sb = new StringBuffer();
+        sb.append(mContext.getString(
+                R.string.accessibility_introduction_title, getLabelName()))
+                .append("\n\n")
+                .append(footerPreference.getTitle());
+        footerPreference.setContentDescription(sb);
 
         if (getHelpResource() != 0) {
-            footerPreference.appendHelpLink(getHelpResource());
-            footerPreference.setLinkEnabled(true);
+            footerPreference.setLearnMoreAction(view -> {
+                final Intent helpIntent = HelpUtils.getHelpIntent(
+                        mContext, mContext.getString(getHelpResource()),
+                        mContext.getClass().getName());
+                view.startActivityForResult(helpIntent, 0);
+            });
+
+            final String learnMoreContentDescription = mContext.getString(
+                    R.string.footer_learn_more_content_description, getLabelName());
+            footerPreference.setLearnMoreContentDescription(learnMoreContentDescription);
         }
     }
 }
diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
index 4b1725f..7c18943 100644
--- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
@@ -55,6 +55,7 @@
 import com.android.settings.utils.LocaleUtils;
 import com.android.settings.widget.SettingsMainSwitchBar;
 import com.android.settings.widget.SettingsMainSwitchPreference;
+import com.android.settingslib.HelpUtils;
 import com.android.settingslib.accessibility.AccessibilityUtils;
 import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
@@ -520,14 +521,25 @@
                 new AccessibilityFooterPreference(screen.getContext());
         htmlFooterPreference.setKey(KEY_HTML_DESCRIPTION_PREFERENCE);
         htmlFooterPreference.setSummary(htmlDescription);
+        htmlFooterPreference.setContentDescription(
+                generateFooterContentDescription(htmlDescription));
+
         // Only framework tools support help link
         if (getHelpResource() != 0) {
-            htmlFooterPreference.appendHelpLink(getHelpResource());
+            htmlFooterPreference.setLearnMoreAction(view -> {
+                final Intent helpIntent = HelpUtils.getHelpIntent(
+                        getContext(), getContext().getString(getHelpResource()),
+                        getContext().getClass().getName());
+                view.startActivityForResult(helpIntent, 0);
+            });
+
+            final String learnMoreContentDescription = getPrefContext().getString(
+                    R.string.footer_learn_more_content_description, mPackageName);
+            htmlFooterPreference.setLearnMoreContentDescription(learnMoreContentDescription);
             htmlFooterPreference.setLinkEnabled(true);
         } else {
             htmlFooterPreference.setLinkEnabled(false);
         }
-        htmlFooterPreference.setIconContentDescription(iconContentDescription);
         screen.addPreference(htmlFooterPreference);
     }
 
@@ -559,14 +571,33 @@
         final AccessibilityFooterPreference footerPreference =
                 new AccessibilityFooterPreference(screen.getContext());
         footerPreference.setSummary(summary);
-        footerPreference.setIconContentDescription(iconContentDescription);
+        footerPreference.setContentDescription(
+                generateFooterContentDescription(summary));
+
+        // Only framework tools support help link
         if (getHelpResource() != 0) {
-            footerPreference.appendHelpLink(getHelpResource());
-            footerPreference.setLinkEnabled(true);
+            footerPreference.setLearnMoreAction(view -> {
+                final Intent helpIntent = HelpUtils.getHelpIntent(
+                        getContext(), getContext().getString(getHelpResource()),
+                        getContext().getClass().getName());
+                view.startActivityForResult(helpIntent, 0);
+            });
+
+            final String learnMoreContentDescription = getPrefContext().getString(
+                    R.string.footer_learn_more_content_description, mPackageName);
+            footerPreference.setLearnMoreContentDescription(learnMoreContentDescription);
         }
         screen.addPreference(footerPreference);
     }
 
+    private CharSequence generateFooterContentDescription(CharSequence footerContent) {
+        final StringBuffer sb = new StringBuffer();
+        sb.append(getPrefContext().getString(
+                R.string.accessibility_introduction_title, mPackageName))
+                .append("\n\n")
+                .append(footerContent);
+        return sb;
+    }
     @VisibleForTesting
     void setupEditShortcutDialog(Dialog dialog) {
         final View dialogSoftwareView = dialog.findViewById(R.id.software_shortcut);
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java
index d5162a85..164ef2d 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplications.java
+++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java
@@ -123,7 +123,6 @@
 import com.android.settings.widget.LoadingViewController;
 import com.android.settings.wifi.AppStateChangeWifiStateBridge;
 import com.android.settings.wifi.ChangeWifiStateDetails;
-import com.android.settingslib.HelpUtils;
 import com.android.settingslib.applications.ApplicationsState;
 import com.android.settingslib.applications.ApplicationsState.AppEntry;
 import com.android.settingslib.applications.ApplicationsState.AppFilter;
@@ -661,10 +660,6 @@
         if (activity == null) {
             return;
         }
-        // TODO(b/176883483): Remove the help menu if this feature rolled out
-        if (!FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.SILKY_HOME)) {
-            HelpUtils.prepareHelpMenuItem(activity, menu, getHelpResource(), getClass().getName());
-        }
         mOptionsMenu = menu;
         inflater.inflate(R.menu.manage_apps, menu);
 
diff --git a/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java b/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java
index 09d8e71..a85382b 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java
@@ -18,6 +18,8 @@
 
 import android.app.admin.DevicePolicyManager;
 import android.content.Intent;
+import android.content.res.ColorStateList;
+import android.graphics.Color;
 import android.graphics.PorterDuff;
 import android.graphics.PorterDuffColorFilter;
 import android.os.Bundle;
@@ -25,14 +27,17 @@
 import android.os.UserManager;
 import android.util.Log;
 import android.view.View;
+import android.widget.LinearLayout;
 import android.widget.TextView;
 
+import androidx.annotation.ColorInt;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
 import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.R;
 import com.android.settings.SetupWizardUtils;
+import com.android.settings.Utils;
 import com.android.settings.password.ChooseLockGeneric;
 import com.android.settings.password.ChooseLockSettingsHelper;
 
@@ -183,6 +188,15 @@
     }
 
     @Override
+    protected void onPostCreate(@Nullable Bundle savedInstanceState) {
+        super.onPostCreate(savedInstanceState);
+        final LinearLayout buttonContainer = mFooterBarMixin.getButtonContainer();
+        if (buttonContainer != null) {
+            buttonContainer.setBackgroundColor(getBackgroundColor());
+        }
+    }
+
+    @Override
     protected void onResume() {
         super.onResume();
 
@@ -200,6 +214,12 @@
     }
 
     @Override
+    public void onAttachedToWindow() {
+        super.onAttachedToWindow();
+        getWindow().setStatusBarColor(getBackgroundColor());
+    }
+
+    @Override
     protected void onSaveInstanceState(Bundle outState) {
         super.onSaveInstanceState(outState);
         outState.putBoolean(KEY_CONFIRMING_CREDENTIALS, mConfirmingCredentials);
@@ -335,4 +355,10 @@
         }
         return mIconColorFilter;
     }
+
+    @ColorInt
+    private int getBackgroundColor() {
+        final ColorStateList stateList = Utils.getColorAttr(this, android.R.attr.windowBackground);
+        return stateList != null ? stateList.getDefaultColor() : Color.TRANSPARENT;
+    }
 }
diff --git a/src/com/android/settings/core/SettingsBaseActivity.java b/src/com/android/settings/core/SettingsBaseActivity.java
index c5d86e1..fb9780f 100644
--- a/src/com/android/settings/core/SettingsBaseActivity.java
+++ b/src/com/android/settings/core/SettingsBaseActivity.java
@@ -67,7 +67,7 @@
     /**
      * What type of page transition should be apply.
      */
-    public static final String EXTRA_PAGE_TRANSITION_TYPE = "extra_page_transition_type";
+    public static final String EXTRA_PAGE_TRANSITION_TYPE = "page_transition_type";
 
     protected static final boolean DEBUG_TIMING = false;
     private static final String TAG = "SettingsBaseActivity";
diff --git a/src/com/android/settings/core/SubSettingLauncher.java b/src/com/android/settings/core/SubSettingLauncher.java
index 2ee404b..893d592 100644
--- a/src/com/android/settings/core/SubSettingLauncher.java
+++ b/src/com/android/settings/core/SubSettingLauncher.java
@@ -17,22 +17,17 @@
 package com.android.settings.core;
 
 import android.annotation.StringRes;
-import android.app.Activity;
-import android.app.ActivityOptions;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.UserHandle;
 import android.text.TextUtils;
-import android.widget.Toolbar;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.fragment.app.Fragment;
 
-import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.SubSettings;
-import com.android.settings.Utils;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.transition.SettingsTransitionHelper.TransitionType;
 
@@ -199,14 +194,6 @@
 
     @VisibleForTesting
     void launchForResult(Fragment listener, Intent intent, int requestCode) {
-        if (Utils.isPageTransitionEnabled(mContext)) {
-            final Activity activity = listener.getActivity();
-            final Toolbar toolbar = activity.findViewById(R.id.action_bar);
-            final Bundle bundle = ActivityOptions.makeSceneTransitionAnimation(activity, toolbar,
-                    "shared_element_view").toBundle();
-            listener.startActivityForResult(intent, requestCode, bundle);
-            return;
-        }
         listener.startActivityForResult(intent, requestCode);
     }
 
diff --git a/src/com/android/settings/datausage/lib/DataUsageLib.java b/src/com/android/settings/datausage/lib/DataUsageLib.java
index 786f0ec..93907aa 100644
--- a/src/com/android/settings/datausage/lib/DataUsageLib.java
+++ b/src/com/android/settings/datausage/lib/DataUsageLib.java
@@ -73,7 +73,7 @@
 
     private static NetworkTemplate getMobileTemplateForSubId(
             TelephonyManager telephonyManager, int subId) {
-        return NetworkTemplate.buildTemplateMobileAll(
+        return NetworkTemplate.buildTemplateCarrierMetered(
                 telephonyManager.getSubscriberId(subId));
     }
 }
diff --git a/src/com/android/settings/display/AutoBrightnessDetailPreferenceController.java b/src/com/android/settings/display/AutoBrightnessDetailPreferenceController.java
index 3138ae0..0a60ed3 100644
--- a/src/com/android/settings/display/AutoBrightnessDetailPreferenceController.java
+++ b/src/com/android/settings/display/AutoBrightnessDetailPreferenceController.java
@@ -21,7 +21,7 @@
 
 import androidx.preference.PreferenceScreen;
 
-import com.android.settingslib.widget.MainSwitchPreference;
+import com.android.settings.widget.SettingsMainSwitchPreference;
 import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 /**
@@ -51,7 +51,7 @@
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
 
-        MainSwitchPreference pref = (MainSwitchPreference) screen.findPreference(
+        SettingsMainSwitchPreference pref = (SettingsMainSwitchPreference) screen.findPreference(
                 getPreferenceKey());
         pref.addOnSwitchChangeListener(this);
         pref.updateStatus(isChecked());
diff --git a/src/com/android/settings/gestures/SystemNavigationGestureSettings.java b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
index 388d87a..854efa0 100644
--- a/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
+++ b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
@@ -30,18 +30,14 @@
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.provider.Settings;
-import android.util.FeatureFlagUtils;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
-import com.android.settings.core.FeatureFlags;
 import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settings.search.actionbar.SearchMenuController;
-import com.android.settings.support.actionbar.HelpMenuController;
 import com.android.settings.support.actionbar.HelpResourceProvider;
 import com.android.settings.utils.CandidateInfoExtra;
 import com.android.settings.widget.RadioButtonPickerFragment;
@@ -76,11 +72,6 @@
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
-        // TODO(b/176883483): Remove both search and help menu if this feature rolled out
-        if (!FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.SILKY_HOME)) {
-            SearchMenuController.init(this /* host */);
-            HelpMenuController.init(this /* host */);
-        }
 
         SuggestionFeatureProvider suggestionFeatureProvider = FeatureFactory.getFactory(context)
                 .getSuggestionFeatureProvider(context);
diff --git a/src/com/android/settings/inputmethod/UserDictionarySettings.java b/src/com/android/settings/inputmethod/UserDictionarySettings.java
index 5e3e749..f51629d 100644
--- a/src/com/android/settings/inputmethod/UserDictionarySettings.java
+++ b/src/com/android/settings/inputmethod/UserDictionarySettings.java
@@ -26,7 +26,6 @@
 import android.os.Bundle;
 import android.provider.UserDictionary;
 import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
@@ -45,7 +44,6 @@
 import androidx.loader.content.Loader;
 
 import com.android.settings.R;
-import com.android.settings.core.FeatureFlags;
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.core.instrumentation.Instrumentable;
@@ -106,10 +104,7 @@
     @Override
     public View onCreateView(
             LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-        // TODO(b/176883483): Remove the title after material component updated
-        if (FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.SILKY_HOME)) {
-            getActivity().setTitle(R.string.user_dict_settings_title);
-        }
+        getActivity().setTitle(R.string.user_dict_settings_title);
         // Show the language as a subtitle of the action bar
         final ActionBar actionBar = getActivity().getActionBar();
         if (actionBar != null) {
diff --git a/src/com/android/settings/location/LocationSettingsFooterPreferenceController.java b/src/com/android/settings/location/LocationSettingsFooterPreferenceController.java
index 281cc5a..a3b68be 100644
--- a/src/com/android/settings/location/LocationSettingsFooterPreferenceController.java
+++ b/src/com/android/settings/location/LocationSettingsFooterPreferenceController.java
@@ -31,6 +31,7 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
+import com.android.settingslib.HelpUtils;
 import com.android.settingslib.widget.FooterPreference;
 
 import java.util.ArrayList;
@@ -104,15 +105,22 @@
                     + footerString;
         }
         if (mFooterPreference != null) {
-            mFooterPreference.setTitle(Html.fromHtml(footerString
-                    + PARAGRAPH_SEPARATOR
-                    + mContext.getString(
-                    R.string.location_settings_footer_learn_more)));
-            mFooterPreference.setContentDescription(Html.fromHtml(footerString + mContext.getString(
-                    R.string.location_settings_footer_learn_more_content_description)));
+            mFooterPreference.setTitle(Html.fromHtml(footerString));
+            mFooterPreference.setLearnMoreAction(v -> openLocationLearnMoreLink());
+            mFooterPreference.setLearnMoreContentDescription(mContext.getString(
+                    R.string.location_settings_footer_learn_more_content_description));
         }
     }
 
+    private void openLocationLearnMoreLink() {
+        mFragment.startActivityForResult(
+                HelpUtils.getHelpIntent(
+                        mContext,
+                        mContext.getString(R.string.location_settings_footer_learn_more_link),
+                        /*backupContext=*/""),
+                /*requestCode=*/ 0);
+    }
+
     /**
      * Location footer preference group should always be displayed.
      */
diff --git a/src/com/android/settings/security/ResetCredentialsPreferenceController.java b/src/com/android/settings/security/ResetCredentialsPreferenceController.java
index 48e7f84..5234ba8 100644
--- a/src/com/android/settings/security/ResetCredentialsPreferenceController.java
+++ b/src/com/android/settings/security/ResetCredentialsPreferenceController.java
@@ -18,6 +18,8 @@
 
 import android.content.Context;
 import android.os.UserManager;
+import android.security.keystore.KeyProperties;
+import android.security.keystore2.AndroidKeyStoreLoadStoreParameter;
 
 import androidx.preference.PreferenceScreen;
 
@@ -35,6 +37,7 @@
     private static final String KEY_RESET_CREDENTIALS = "credentials_reset";
 
     private final KeyStore mKeyStore;
+    private final KeyStore mWifiKeyStore;
 
     private RestrictedPreference mPreference;
 
@@ -45,8 +48,19 @@
             keyStore = KeyStore.getInstance("AndroidKeyStore");
             keyStore.load(null);
         } catch (Exception e) {
+            keyStore = null;
         }
         mKeyStore = keyStore;
+        keyStore = null;
+        if (context.getUser().isSystem()) {
+            try {
+                keyStore = KeyStore.getInstance("AndroidKeyStore");
+                keyStore.load(new AndroidKeyStoreLoadStoreParameter(KeyProperties.NAMESPACE_WIFI));
+            } catch (Exception e) {
+                keyStore = null;
+            }
+        }
+        mWifiKeyStore = keyStore;
         if (lifecycle != null) {
             lifecycle.addObserver(this);
         }
@@ -68,9 +82,11 @@
         if (mPreference != null && !mPreference.isDisabledByAdmin()) {
             boolean isEnabled = false;
             try {
-                if (mKeyStore != null) {
-                    isEnabled = mKeyStore.aliases().hasMoreElements();
-                }
+                isEnabled = (mKeyStore != null
+                        && mKeyStore.aliases().hasMoreElements())
+                        || (mWifiKeyStore != null
+                        && mWifiKeyStore.aliases().hasMoreElements());
+
             } catch (KeyStoreException e) {
                 // If access to keystore fails, treat as disabled.
             }
diff --git a/src/com/android/settings/security/trustagent/TrustAgentListPreferenceController.java b/src/com/android/settings/security/trustagent/TrustAgentListPreferenceController.java
index dd1d63a..4f235e1 100644
--- a/src/com/android/settings/security/trustagent/TrustAgentListPreferenceController.java
+++ b/src/com/android/settings/security/trustagent/TrustAgentListPreferenceController.java
@@ -33,6 +33,7 @@
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.core.SettingsBaseActivity;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settings.security.SecurityFeatureProvider;
@@ -44,6 +45,7 @@
 import com.android.settingslib.core.lifecycle.events.OnResume;
 import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
 import com.android.settingslib.search.SearchIndexableRaw;
+import com.android.settingslib.transition.SettingsTransitionHelper;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -128,6 +130,8 @@
                 .show();
 
         mTrustAgentClickIntent = preference.getIntent();
+        mTrustAgentClickIntent.putExtra(SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE,
+                SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE);
 
         if (!confirmationLaunched && mTrustAgentClickIntent != null) {
             // If this returns false, it means no password confirmation is required.
diff --git a/src/com/android/settings/widget/SettingsMainSwitchBar.java b/src/com/android/settings/widget/SettingsMainSwitchBar.java
index ce2dde5..5f752f9 100644
--- a/src/com/android/settings/widget/SettingsMainSwitchBar.java
+++ b/src/com/android/settings/widget/SettingsMainSwitchBar.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.widget;
 
+import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.util.AttributeSet;
@@ -47,7 +49,7 @@
     }
 
     private ImageView mRestrictedIcon;
-    private RestrictedLockUtils.EnforcedAdmin mEnforcedAdmin;
+    private EnforcedAdmin mEnforcedAdmin;
     private boolean mDisabledByAdmin;
 
     private final MetricsFeatureProvider mMetricsFeatureProvider;
@@ -87,7 +89,7 @@
      * If admin is not null, disables the text and switch but keeps the view clickable (unless the
      * switch is disabled for other reasons). Otherwise, calls setEnabled.
      */
-    public void setDisabledByAdmin(RestrictedLockUtils.EnforcedAdmin admin) {
+    public void setDisabledByAdmin(EnforcedAdmin admin) {
         mEnforcedAdmin = admin;
         if (admin != null) {
             super.setEnabled(true);
diff --git a/src/com/android/settings/widget/SettingsMainSwitchPreference.java b/src/com/android/settings/widget/SettingsMainSwitchPreference.java
index 04317a8..7f349bc 100644
--- a/src/com/android/settings/widget/SettingsMainSwitchPreference.java
+++ b/src/com/android/settings/widget/SettingsMainSwitchPreference.java
@@ -16,10 +16,13 @@
 
 package com.android.settings.widget;
 
+import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+
 import android.content.Context;
 import android.content.res.TypedArray;
 import android.text.TextUtils;
 import android.util.AttributeSet;
+import android.widget.Switch;
 
 import androidx.core.content.res.TypedArrayUtils;
 import androidx.preference.PreferenceViewHolder;
@@ -27,7 +30,7 @@
 
 import com.android.settings.R;
 import com.android.settings.widget.SettingsMainSwitchBar.OnBeforeCheckedChangeListener;
-import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedPreferenceHelper;
 import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 import java.util.ArrayList;
@@ -38,7 +41,9 @@
  * This component is used as the main switch of the page
  * to enable or disable the prefereces on the page.
  */
-public class SettingsMainSwitchPreference extends TwoStatePreference {
+public class SettingsMainSwitchPreference extends TwoStatePreference implements
+        OnMainSwitchChangeListener {
+
     private final List<OnBeforeCheckedChangeListener> mBeforeCheckedChangeListeners =
             new ArrayList<>();
     private final List<OnMainSwitchChangeListener> mSwitchChangeListeners = new ArrayList<>();
@@ -46,8 +51,8 @@
     private SettingsMainSwitchBar mMainSwitchBar;
     private CharSequence mTitle;
     private boolean mIsVisible;
-
-    private RestrictedLockUtils.EnforcedAdmin mEnforcedAdmin;
+    private EnforcedAdmin mEnforcedAdmin;
+    private RestrictedPreferenceHelper mRestrictedHelper;
 
     public SettingsMainSwitchPreference(Context context) {
         super(context);
@@ -78,8 +83,8 @@
         holder.setDividerAllowedBelow(false);
 
         mMainSwitchBar = (SettingsMainSwitchBar) holder.findViewById(R.id.main_switch_bar);
-
         mMainSwitchBar.show();
+        mEnforcedAdmin = mRestrictedHelper.checkRestrictionEnforced();
         updateStatus(isChecked());
         registerListenerToSwitchBar();
 
@@ -90,6 +95,7 @@
 
     private void init(Context context, AttributeSet attrs) {
         setLayoutResource(R.layout.preference_widget_main_switch);
+        mSwitchChangeListeners.add(this);
         mIsVisible = true;
 
         if (attrs != null) {
@@ -103,6 +109,8 @@
                 setTitle(title.toString());
             }
             a.recycle();
+
+            mRestrictedHelper = new RestrictedPreferenceHelper(context, this, attrs);
         }
     }
 
@@ -129,13 +137,17 @@
         }
     }
 
+    @Override
+    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+        super.setChecked(isChecked);
+    }
+
     /**
      * Update the switch status of preference
      */
     public void updateStatus(boolean checked) {
         setChecked(checked);
         if (mMainSwitchBar != null) {
-            mMainSwitchBar.setChecked(checked);
             mMainSwitchBar.setTitle(mTitle);
             mMainSwitchBar.setDisabledByAdmin(mEnforcedAdmin);
             mMainSwitchBar.show();
@@ -230,7 +242,7 @@
      * Otherwise, calls setEnabled which will enables the entire view including
      * the text and switch.
      */
-    public void setDisabledByAdmin(RestrictedLockUtils.EnforcedAdmin admin) {
+    public void setDisabledByAdmin(EnforcedAdmin admin) {
         mEnforcedAdmin = admin;
         if (mMainSwitchBar != null) {
             mMainSwitchBar.setDisabledByAdmin(mEnforcedAdmin);
diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettings.java b/src/com/android/settings/wifi/calling/WifiCallingSettings.java
index 79f34c7..86e7e8d 100644
--- a/src/com/android/settings/wifi/calling/WifiCallingSettings.java
+++ b/src/com/android/settings/wifi/calling/WifiCallingSettings.java
@@ -22,7 +22,6 @@
 import android.provider.Settings;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
-import android.util.FeatureFlagUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -35,12 +34,10 @@
 
 import com.android.internal.util.CollectionUtils;
 import com.android.settings.R;
-import com.android.settings.core.FeatureFlags;
 import com.android.settings.core.InstrumentedFragment;
 import com.android.settings.network.SubscriptionUtil;
 import com.android.settings.network.ims.WifiCallingQueryImsState;
 import com.android.settings.search.actionbar.SearchMenuController;
-import com.android.settings.support.actionbar.HelpMenuController;
 import com.android.settings.support.actionbar.HelpResourceProvider;
 import com.android.settings.widget.RtlCompatibleViewPager;
 import com.android.settings.widget.SlidingTabLayout;
@@ -121,12 +118,6 @@
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
-        // TODO(b/176883483): Remove the option menu if collapsing toolbar feature rolled out
-        if (!FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.SILKY_HOME)) {
-            setHasOptionsMenu(true);
-            SearchMenuController.init(this /* host */);
-            HelpMenuController.init(this /* host */);
-        }
 
         // TODO: besides in onCreate, we should also update subList when SIM / Sub status
         // changes.
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceControllerTest.java
deleted file mode 100644
index 2640c81..0000000
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceControllerTest.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2021 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.
- */
-
-package com.android.settings.accessibility;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-
-import androidx.preference.PreferenceManager;
-import androidx.preference.PreferenceScreen;
-import androidx.test.core.app.ApplicationProvider;
-
-import com.android.settings.R;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-
-/** Tests for {@link AccessibilityButtonFooterPreferenceController}. */
-@RunWith(RobolectricTestRunner.class)
-public class AccessibilityButtonFooterPreferenceControllerTest {
-
-    private static final String TEST_KEY = "test_key";
-    private static final String TEST_TITLE = "test_title";
-    private final Context mContext = ApplicationProvider.getApplicationContext();
-    private PreferenceScreen mScreen;
-    private AccessibilityButtonFooterPreferenceController mController;
-
-    @Before
-    public void setUp() {
-        final PreferenceManager preferenceManager = new PreferenceManager(mContext);
-        mScreen = preferenceManager.createPreferenceScreen(mContext);
-        final AccessibilityFooterPreference footerPreference =
-                new AccessibilityFooterPreference(mContext);
-        footerPreference.setKey(TEST_KEY);
-        footerPreference.setTitle(TEST_TITLE);
-        mScreen.addPreference(footerPreference);
-        mController = new AccessibilityButtonFooterPreferenceController(mContext, TEST_KEY);
-    }
-
-    @Test
-    public void onPreferenceChange_shouldSetCorrectIconContentDescription() {
-        mController.displayPreference(mScreen);
-
-        final AccessibilityFooterPreference footerPreference = mScreen.findPreference(TEST_KEY);
-        final String packageName = mContext.getString(R.string.accessibility_button_title);
-        final String iconContentDescription = mContext.getString(
-                R.string.accessibility_introduction_title,
-                packageName);
-        assertThat(footerPreference.getIconContentDescription()).isEqualTo(iconContentDescription);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityControlTimeoutFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityControlTimeoutFooterPreferenceControllerTest.java
deleted file mode 100644
index 23e479b..0000000
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityControlTimeoutFooterPreferenceControllerTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (C) 2021 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.
- */
-
-package com.android.settings.accessibility;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-
-import androidx.preference.PreferenceManager;
-import androidx.preference.PreferenceScreen;
-import androidx.test.core.app.ApplicationProvider;
-
-import com.android.settings.R;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-
-/** Tests for {@link AccessibilityControlTimeoutFooterPreferenceController}. */
-@RunWith(RobolectricTestRunner.class)
-public class AccessibilityControlTimeoutFooterPreferenceControllerTest {
-
-    private static final String TEST_KEY = "test_key";
-    private static final String TEST_TITLE = "test_title";
-    private final Context mContext = ApplicationProvider.getApplicationContext();
-    private PreferenceScreen mScreen;
-    private AccessibilityControlTimeoutFooterPreferenceController mController;
-
-    @Before
-    public void setUp() {
-        final PreferenceManager preferenceManager = new PreferenceManager(mContext);
-        mScreen = preferenceManager.createPreferenceScreen(mContext);
-        final AccessibilityFooterPreference footerPreference =
-                new AccessibilityFooterPreference(mContext);
-        footerPreference.setKey(TEST_KEY);
-        footerPreference.setTitle(TEST_TITLE);
-        mScreen.addPreference(footerPreference);
-        mController = new AccessibilityControlTimeoutFooterPreferenceController(mContext, TEST_KEY);
-    }
-
-    @Test
-    public void onPreferenceChange_shouldSetCorrectIconContentDescription() {
-        mController.displayPreference(mScreen);
-
-        final AccessibilityFooterPreference footerPreference =
-                mScreen.findPreference(TEST_KEY);
-        final String packageName =
-                mContext.getString(R.string.accessibility_setting_item_control_timeout_title);
-        final String iconContentDescription = mContext.getString(
-                R.string.accessibility_introduction_title,
-                packageName);
-        assertThat(footerPreference.getIconContentDescription()).isEqualTo(iconContentDescription);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityFooterPreferenceTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityFooterPreferenceTest.java
index b8f97c7..14c56e8 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityFooterPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityFooterPreferenceTest.java
@@ -19,13 +19,12 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
+import android.text.method.MovementMethod;
 import android.view.LayoutInflater;
 import android.view.View;
-import android.widget.LinearLayout;
 import android.widget.TextView;
 
 import androidx.preference.PreferenceViewHolder;
-import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
 
@@ -39,10 +38,6 @@
 @RunWith(RobolectricTestRunner.class)
 public final class AccessibilityFooterPreferenceTest {
 
-    private static final String DEFAULT_SUMMARY = "default summary";
-    private static final String DEFAULT_DESCRIPTION = "default description";
-
-    private Context mContext = ApplicationProvider.getApplicationContext();
     private AccessibilityFooterPreference mAccessibilityFooterPreference;
     private PreferenceViewHolder mPreferenceViewHolder;
 
@@ -58,41 +53,22 @@
     }
 
     @Test
-    public void onBindViewHolder_initTextConfig_parseTextAndFocusable() {
-        mAccessibilityFooterPreference.setSummary(DEFAULT_SUMMARY);
+    public void onBindViewHolder_LinkDisabledByDefault_notReturnLinkMovement() {
+        mAccessibilityFooterPreference.onBindViewHolder(mPreferenceViewHolder);
+
+        final TextView summaryView = (TextView) mPreferenceViewHolder.findViewById(
+                android.R.id.title);
+        assertThat(summaryView.getMovementMethod()).isNull();
+    }
+
+    @Test
+    public void onBindViewHolder_setLinkEnabled_returnLinkMovement() {
+        mAccessibilityFooterPreference.setLinkEnabled(true);
 
         mAccessibilityFooterPreference.onBindViewHolder(mPreferenceViewHolder);
 
         final TextView summaryView = (TextView) mPreferenceViewHolder.findViewById(
                 android.R.id.title);
-        assertThat(summaryView.getText().toString()).isEqualTo(DEFAULT_SUMMARY);
-        assertThat(summaryView.isFocusable()).isEqualTo(true);
-    }
-
-    @Test
-    public void onBindViewHolder_initTextConfigAndAccessibleIcon_groupContentForAccessible() {
-        mAccessibilityFooterPreference.setSummary(DEFAULT_SUMMARY);
-        mAccessibilityFooterPreference.setIconContentDescription(DEFAULT_DESCRIPTION);
-
-        mAccessibilityFooterPreference.onBindViewHolder(mPreferenceViewHolder);
-
-        final TextView summaryView = (TextView) mPreferenceViewHolder.findViewById(
-                android.R.id.title);
-        assertThat(summaryView.getText().toString()).isEqualTo(DEFAULT_SUMMARY);
-        assertThat(summaryView.isFocusable()).isEqualTo(false);
-        final LinearLayout infoFrame = (LinearLayout) mPreferenceViewHolder.findViewById(
-                R.id.icon_frame);
-        assertThat(infoFrame.getContentDescription()).isEqualTo(DEFAULT_DESCRIPTION);
-        assertThat(infoFrame.isFocusable()).isEqualTo(false);
-    }
-
-    @Test
-    public void appendHelpLink_timeoutHelpUri_updateSummary() {
-        mAccessibilityFooterPreference.setSummary(DEFAULT_SUMMARY);
-
-        mAccessibilityFooterPreference.appendHelpLink(R.string.help_url_timeout);
-
-        final String title = mAccessibilityFooterPreference.getTitle().toString();
-        assertThat(title.contains(mContext.getString(R.string.footer_learn_more))).isTrue();
+        assertThat(summaryView.getMovementMethod()).isInstanceOf(MovementMethod.class);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptionFooterPreferenceControllerTest.java
deleted file mode 100644
index e5f67c5..0000000
--- a/tests/robotests/src/com/android/settings/accessibility/CaptionFooterPreferenceControllerTest.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2021 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.
- */
-
-package com.android.settings.accessibility;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-
-import androidx.preference.PreferenceManager;
-import androidx.preference.PreferenceScreen;
-import androidx.test.core.app.ApplicationProvider;
-
-import com.android.settings.R;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-
-/** Tests for {@link CaptionFooterPreferenceController}. */
-@RunWith(RobolectricTestRunner.class)
-public class CaptionFooterPreferenceControllerTest {
-
-    private static final String TEST_KEY = "test_key";
-    private static final String TEST_TITLE = "test_title";
-    private final Context mContext = ApplicationProvider.getApplicationContext();
-    private PreferenceScreen mScreen;
-    private CaptionFooterPreferenceController mController;
-
-    @Before
-    public void setUp() {
-        final PreferenceManager preferenceManager = new PreferenceManager(mContext);
-        mScreen = preferenceManager.createPreferenceScreen(mContext);
-        final AccessibilityFooterPreference footerPreference =
-                new AccessibilityFooterPreference(mContext);
-        footerPreference.setKey(TEST_KEY);
-        footerPreference.setTitle(TEST_TITLE);
-        mScreen.addPreference(footerPreference);
-        mController = new CaptionFooterPreferenceController(mContext, TEST_KEY);
-    }
-
-    @Test
-    public void onPreferenceChange_shouldSetCorrectIconContentDescription() {
-        mController.displayPreference(mScreen);
-
-        final AccessibilityFooterPreference footerPreference = mScreen.findPreference(TEST_KEY);
-        final String packageName = mContext.getString(R.string.accessibility_captioning_title);
-        final String iconContentDescription = mContext.getString(
-                R.string.accessibility_introduction_title,
-                packageName);
-        assertThat(footerPreference.getIconContentDescription()).isEqualTo(iconContentDescription);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleAutoclickFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleAutoclickFooterPreferenceControllerTest.java
deleted file mode 100644
index 2be4752..0000000
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleAutoclickFooterPreferenceControllerTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 2021 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.
- */
-
-package com.android.settings.accessibility;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-
-import androidx.preference.PreferenceManager;
-import androidx.preference.PreferenceScreen;
-import androidx.test.core.app.ApplicationProvider;
-
-import com.android.settings.R;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-
-/** Tests for {@link ToggleAutoclickFooterPreferenceController}. */
-@RunWith(RobolectricTestRunner.class)
-public class ToggleAutoclickFooterPreferenceControllerTest {
-
-    private static final String TEST_KEY = "test_key";
-    private static final String TEST_TITLE = "test_title";
-    private final Context mContext = ApplicationProvider.getApplicationContext();
-    private PreferenceScreen mScreen;
-    private ToggleAutoclickFooterPreferenceController mController;
-
-    @Before
-    public void setUp() {
-        final PreferenceManager preferenceManager = new PreferenceManager(mContext);
-        mScreen = preferenceManager.createPreferenceScreen(mContext);
-        final AccessibilityFooterPreference footerPreference =
-                new AccessibilityFooterPreference(mContext);
-        footerPreference.setKey(TEST_KEY);
-        footerPreference.setTitle(TEST_TITLE);
-        mScreen.addPreference(footerPreference);
-        mController = new ToggleAutoclickFooterPreferenceController(mContext, TEST_KEY);
-    }
-
-    @Test
-    public void onPreferenceChange_shouldSetCorrectIconContentDescription() {
-        mController.displayPreference(mScreen);
-
-        final AccessibilityFooterPreference footerPreference = mScreen.findPreference(TEST_KEY);
-        final String packageName = mContext.getString(
-                R.string.accessibility_autoclick_preference_title);
-        final String iconContentDescription = mContext.getString(
-                R.string.accessibility_introduction_title,
-                packageName);
-        assertThat(footerPreference.getIconContentDescription()).isEqualTo(iconContentDescription);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
index 01e9b38..4f4185c 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
@@ -215,8 +215,6 @@
                 (AccessibilityFooterPreference) mFragment.getPreferenceScreen().getPreference(
                         mFragment.getPreferenceScreen().getPreferenceCount() - 1);
         assertThat(accessibilityFooterPreference.getSummary()).isEqualTo(DEFAULT_SUMMARY);
-        assertThat(accessibilityFooterPreference.getIconContentDescription()).isEqualTo(
-                DEFAULT_DESCRIPTION);
         assertThat(accessibilityFooterPreference.isSelectable()).isEqualTo(true);
         assertThat(accessibilityFooterPreference.getOrder()).isEqualTo(Integer.MAX_VALUE - 1);
     }
diff --git a/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java b/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java
index a74c01e..2a0d3df 100644
--- a/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java
+++ b/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java
@@ -50,7 +50,6 @@
 import org.robolectric.RuntimeEnvironment;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowUtils.class)
 public class SubSettingLauncherTest {
 
     @Mock
@@ -117,7 +116,6 @@
 
     @Test
     public void launch_hasRequestListener_shouldStartActivityForResult() {
-        ShadowUtils.setIsPageTransitionEnabled(true);
         final int requestCode = 123123;
         when(mFragment.getActivity()).thenReturn(mActivity);
 
diff --git a/tests/robotests/src/com/android/settings/widget/SettingsMainSwitchPreferenceTest.java b/tests/robotests/src/com/android/settings/widget/SettingsMainSwitchPreferenceTest.java
new file mode 100644
index 0000000..cb53805
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/widget/SettingsMainSwitchPreferenceTest.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+package com.android.settings.widget;
+
+import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.view.View;
+import android.widget.ImageView;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.util.ReflectionHelpers;
+
+@RunWith(RobolectricTestRunner.class)
+public class SettingsMainSwitchPreferenceTest {
+
+    @Mock
+    private EnforcedAdmin mEnforcedAdmin;
+    private SettingsMainSwitchPreference mPreference;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        final Context context = RuntimeEnvironment.application;
+        final SettingsMainSwitchBar switchBar = new SettingsMainSwitchBar(context);
+        mPreference = new SettingsMainSwitchPreference(context);
+        ReflectionHelpers.setField(mPreference, "mEnforcedAdmin", mEnforcedAdmin);
+        ReflectionHelpers.setField(mPreference, "mMainSwitchBar", switchBar);
+    }
+
+    @Test
+    public void updateStatus_isRestricted_restrictIconShouldDisplay() {
+        mPreference.updateStatus(true);
+
+        final SettingsMainSwitchBar switchBar = mPreference.getSwitchBar();
+        final ImageView restrictedIcon = switchBar.findViewById(
+                com.android.settingslib.widget.R.id.restricted_icon);
+
+        assertThat(restrictedIcon.getVisibility() == View.VISIBLE).isTrue();
+    }
+}