Merge "[Provider Model] Show carrier network to internet preference" into sc-dev
diff --git a/res/drawable/ic_lock_pin.xml b/res/drawable/ic_lock_pin.xml
index e1821f6..587f49c 100644
--- a/res/drawable/ic_lock_pin.xml
+++ b/res/drawable/ic_lock_pin.xml
@@ -21,5 +21,5 @@
     android:viewportHeight="24">
   <path
       android:pathData="M6,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,20c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM6,20c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM6,14c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,14c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM16,6c0,1.1 0.9,2 2,2s2,-0.9 2,-2 -0.9,-2 -2,-2 -2,0.9 -2,2zM12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM18,14c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM18,20c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2z"
-      android:fillColor="?attr/sudListItemIconColor"/>
+      android:fillColor="?android:attr/colorAccent"/>
 </vector>
diff --git a/res/layout/manage_applications_apps.xml b/res/layout/manage_applications_apps.xml
index d814164..055e4b4 100644
--- a/res/layout/manage_applications_apps.xml
+++ b/res/layout/manage_applications_apps.xml
@@ -14,7 +14,7 @@
      limitations under the License.
 -->
 
-<FrameLayout
+<androidx.constraintlayout.widget.ConstraintLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
@@ -24,40 +24,39 @@
         android:id="@+id/pinned_header"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:elevation="2dp"/>
+        android:elevation="2dp"
+        settings:layout_constraintTop_toTopOf="parent"/>
 
-    <FrameLayout
-        android:id="@+id/list_container"
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/apps_list"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:visibility="gone">
+        android:layout_height="0dp"
+        android:clipToPadding="false"
+        android:scrollbars="none"
+        android:visibility="invisible"
+        settings:fastScrollEnabled="true"
+        settings:fastScrollHorizontalThumbDrawable="@drawable/thumb_drawable"
+        settings:fastScrollHorizontalTrackDrawable="@drawable/line_drawable"
+        settings:fastScrollVerticalThumbDrawable="@drawable/thumb_drawable"
+        settings:fastScrollVerticalTrackDrawable="@drawable/line_drawable"
+        settings:layout_constraintTop_toBottomOf="@id/pinned_header"
+        settings:layout_constraintBottom_toBottomOf="parent"/>
 
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/apps_list"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:clipToPadding="false"
-            android:scrollbars="none"
-            settings:fastScrollEnabled="true"
-            settings:fastScrollHorizontalThumbDrawable="@drawable/thumb_drawable"
-            settings:fastScrollHorizontalTrackDrawable="@drawable/line_drawable"
-            settings:fastScrollVerticalThumbDrawable="@drawable/thumb_drawable"
-            settings:fastScrollVerticalTrackDrawable="@drawable/line_drawable"/>
+    <TextView
+        android:id="@android:id/empty"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:gravity="center"
+        android:text="@string/no_applications"
+        android:textAppearance="?android:attr/textAppearanceLarge"
+        android:visibility="invisible"
+        settings:layout_constraintTop_toTopOf="parent"
+        settings:layout_constraintBottom_toBottomOf="parent"/>
 
-        <TextView
-            android:id="@android:id/empty"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:gravity="bottom|center_horizontal"
-            android:layout_gravity="center"
-            android:text="@string/no_applications"
-            android:textAppearance="?android:attr/textAppearanceLarge"
-            android:visibility="invisible"/>
+    <include layout="@layout/loading_container"
+        settings:layout_constraintTop_toBottomOf="@id/pinned_header"
+        settings:layout_constraintBottom_toBottomOf="parent"/>
 
-    </FrameLayout>
-
-    <include layout="@layout/loading_container"/>
-
-</FrameLayout>
+</androidx.constraintlayout.widget.ConstraintLayout>
 
 
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index f3030c1..f3b8a91 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -149,8 +149,6 @@
     <dimen name="wifi_assistant_height">182dp</dimen>
     <dimen name="wifi_assistant_image_top">32dp</dimen>
     <dimen name="wifi_assistant_image_start">24dp</dimen>
-    <!-- appbar height is equal search bar height (48dp) plus search bar top and bottom margin  -->
-    <dimen name="app_bar_height">80dp</dimen>
 
     <!-- CryptKeeper top margin for password/pin screen -->
     <dimen name="crypt_keeper_password_top_margin">88dip</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index c19c8dc..f837d6b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -8204,7 +8204,7 @@
     <string name="keywords_wifi_calling">wifi, wi-fi, call, calling</string>
     <string name="keywords_display">screen, touchscreen</string>
     <string name="keywords_display_brightness_level">dim screen, touchscreen, battery, bright</string>
-    <string name="keywords_display_night_display">dim screen, night, tint, night shift, brightness, screen color, colour, color, light sensitivity, photophobia, make darker, darken, dark mode, migraine</string>
+    <string name="keywords_display_night_display">dim screen, night, tint, night shift, brightness, screen color, colour, color</string>
     <string name="keywords_display_wallpaper">background, personalize, customize display</string>
     <string name="keywords_display_font_size">text size</string>
     <!-- Search keyword for "Cast" settings [CHAR_LIMIT=NONE]-->
@@ -8252,7 +8252,7 @@
     <string name="keywords_model_and_hardware">serial number, hardware version</string>
     <string name="keywords_android_version">android security patch level, baseband version, kernel version</string>
     <!-- Search keywords for dark mode settings [CHAR LIMIT=NONE] -->
-    <string name="keywords_dark_ui_mode">theme, light, dark, mode</string>
+    <string name="keywords_dark_ui_mode">theme, light, dark, mode, light sensitivity, photophobia, make darker, darken, dark mode, migraine</string>
 
     <!-- Search keyword for Device Theme Settings [CHAR LIMIT=NONE] -->
     <string name="keywords_systemui_theme">dark theme</string>
@@ -12353,6 +12353,15 @@
     <!-- Title for preference showing the name of the device. [CHAR LIMIT=60]-->
     <string name="my_device_info_device_name_preference_title">Device name</string>
 
+    <!-- Title for preference category showing the name of basic info. [CHAR LIMIT=60]-->
+    <string name="my_device_info_basic_info_category_title">Basic info</string>
+    <!-- Title for preference category showing the name of legal & regulatory. [CHAR LIMIT=60]-->
+    <string name="my_device_info_legal_category_title">Legal &amp; regulatory</string>
+    <!-- Title for preference category showing the name of device details. [CHAR LIMIT=60]-->
+    <string name="my_device_info_device_details_category_title">Device details</string>
+    <!-- Title for preference category showing the name of device identifiers. [CHAR LIMIT=60]-->
+    <string name="my_device_info_device_identifiers_category_title">Device identifiers</string>
+
     <!-- Title for Wifi Access settings [CHAR LIMIT=35] -->
     <string name="change_wifi_state_title">Wi-Fi control</string>
 
diff --git a/res/xml/my_device_info.xml b/res/xml/my_device_info.xml
index 5077f77..a415abf 100644
--- a/res/xml/my_device_info.xml
+++ b/res/xml/my_device_info.xml
@@ -28,173 +28,185 @@
         android:selectable="false"
         settings:isPreferenceVisible="false"/>
 
-    <!-- Device name -->
-    <com.android.settings.widget.ValidatedEditTextPreference
-        android:key="device_name"
-        android:order="1"
-        android:title="@string/my_device_info_device_name_preference_title"
-        android:summary="@string/summary_placeholder"
-        settings:controller="com.android.settings.deviceinfo.DeviceNamePreferenceController"
-        settings:enableCopying="true"/>
+    <PreferenceCategory
+        android:title="@string/my_device_info_basic_info_category_title">
 
-    <!-- Account name -->
-    <Preference
-        android:key="branded_account"
-        android:order="2"
-        android:title="@string/my_device_info_account_preference_title"
-        android:summary="@string/summary_placeholder"
-        settings:enableCopying="true"
-        settings:controller="com.android.settings.deviceinfo.BrandedAccountPreferenceController"/>
+        <!-- Device name -->
+        <com.android.settings.widget.ValidatedEditTextPreference
+            android:key="device_name"
+            android:order="1"
+            android:title="@string/my_device_info_device_name_preference_title"
+            android:summary="@string/summary_placeholder"
+            settings:controller="com.android.settings.deviceinfo.DeviceNamePreferenceController"
+            settings:enableCopying="true"/>
 
-    <!-- Phone number -->
-    <Preference
-        android:key="phone_number"
-        android:order="3"
-        android:title="@string/status_number"
-        android:summary="@string/summary_placeholder"
-        android:selectable="false"
-        settings:controller="com.android.settings.deviceinfo.PhoneNumberPreferenceController"
-        settings:enableCopying="true"/>
+        <!-- Account name -->
+        <Preference
+            android:key="branded_account"
+            android:order="2"
+            android:title="@string/my_device_info_account_preference_title"
+            android:summary="@string/summary_placeholder"
+            settings:enableCopying="true"
+            settings:controller="com.android.settings.deviceinfo.BrandedAccountPreferenceController"/>
 
-    <!-- Legal information -->
-    <Preference
-        android:key="legal_container"
-        android:order="15"
-        android:title="@string/legal_information"
-        android:fragment="com.android.settings.LegalSettings"
-        settings:allowDividerAbove="true"/>
+        <!-- Phone number -->
+        <Preference
+            android:key="phone_number"
+            android:order="3"
+            android:title="@string/status_number"
+            android:summary="@string/summary_placeholder"
+            android:selectable="false"
+            settings:controller="com.android.settings.deviceinfo.PhoneNumberPreferenceController"
+            settings:enableCopying="true"/>
+    </PreferenceCategory>
 
-    <!-- Regulatory labels -->
-    <Preference
-        android:key="regulatory_info"
-        android:order="16"
-        android:title="@string/regulatory_labels">
-        <intent android:action="android.settings.SHOW_REGULATORY_INFO"/>
-    </Preference>
+    <PreferenceCategory
+        android:title="@string/my_device_info_legal_category_title">
 
-    <!-- Safety & regulatory manual -->
-    <Preference
-        android:key="safety_info"
-        android:order="17"
-        android:title="@string/safety_and_regulatory_info">
-        <intent android:action="android.settings.SHOW_SAFETY_AND_REGULATORY_INFO"/>
-    </Preference>
+        <!-- Legal information -->
+        <Preference
+            android:key="legal_container"
+            android:order="15"
+            android:title="@string/legal_information"
+            android:fragment="com.android.settings.LegalSettings"/>
 
-    <!-- SIM status -->
-    <Preference
-        android:key="sim_status"
-        android:order="18"
-        android:title="@string/sim_status_title"
-        settings:keywords="@string/keywords_sim_status"
-        android:summary="@string/summary_placeholder"
-        settings:enableCopying="true"
-        settings:allowDividerAbove="true"/>
+        <!-- Regulatory labels -->
+        <Preference
+            android:key="regulatory_info"
+            android:order="16"
+            android:title="@string/regulatory_labels">
+            <intent android:action="android.settings.SHOW_REGULATORY_INFO"/>
+        </Preference>
 
-    <!-- Model & hardware -->
-    <Preference
-        android:key="device_model"
-        android:order="31"
-        android:title="@string/model_info"
-        android:summary="@string/summary_placeholder"
-        android:fragment="com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFragment"
-        settings:enableCopying="true"
-        settings:keywords="@string/keywords_model_and_hardware"
-        settings:controller="com.android.settings.deviceinfo.HardwareInfoPreferenceController"/>
+        <!-- Safety & regulatory manual -->
+        <Preference
+            android:key="safety_info"
+            android:order="17"
+            android:title="@string/safety_and_regulatory_info">
+            <intent android:action="android.settings.SHOW_SAFETY_AND_REGULATORY_INFO"/>
+        </Preference>
+    </PreferenceCategory>
 
-    <!-- IMEI -->
-    <Preference
-        android:key="imei_info"
-        android:order="32"
-        android:title="@string/status_imei"
-        android:summary="@string/summary_placeholder"
-        settings:keywords="@string/keywords_imei_info"
-        settings:enableCopying="true"
-        settings:controller="com.android.settings.deviceinfo.imei.ImeiInfoPreferenceController"/>
+    <PreferenceCategory
+        android:title="@string/my_device_info_device_details_category_title">
 
-    <!-- Android version -->
-    <Preference
-        android:key="firmware_version"
-        android:order="42"
-        android:title="@string/firmware_version"
-        android:summary="@string/summary_placeholder"
-        android:fragment="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionSettings"
-        settings:controller="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionPreferenceController"/>
+        <!-- SIM status -->
+        <Preference
+            android:key="sim_status"
+            android:order="18"
+            android:title="@string/sim_status_title"
+            settings:keywords="@string/keywords_sim_status"
+            android:summary="@string/summary_placeholder"
+            settings:enableCopying="true"/>
 
-    <!--IP address -->
-    <Preference
-        android:key="wifi_ip_address"
-        android:order="44"
-        android:title="@string/wifi_ip_address"
-        android:summary="@string/summary_placeholder"
-        android:selectable="false"
-        settings:allowDividerAbove="true"
-        settings:enableCopying="true"/>
+        <!-- Model & hardware -->
+        <Preference
+            android:key="device_model"
+            android:order="31"
+            android:title="@string/model_info"
+            android:summary="@string/summary_placeholder"
+            android:fragment="com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFragment"
+            settings:enableCopying="true"
+            settings:keywords="@string/keywords_model_and_hardware"
+            settings:controller="com.android.settings.deviceinfo.HardwareInfoPreferenceController"/>
 
-    <!-- Wi-Fi MAC address -->
-    <Preference
-        android:key="saved_accesspoints_wifi_mac_address"
-        android:order="45"
-        android:title="@string/status_wifi_mac_address"
-        android:summary="@string/view_saved_network"
-        android:fragment="com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2"
-        settings:enableCopying="false"/>
+        <!-- IMEI -->
+        <Preference
+            android:key="imei_info"
+            android:order="32"
+            android:title="@string/status_imei"
+            android:summary="@string/summary_placeholder"
+            settings:keywords="@string/keywords_imei_info"
+            settings:enableCopying="true"
+            settings:controller="com.android.settings.deviceinfo.imei.ImeiInfoPreferenceController"/>
 
-    <!-- Factory Wi-Fi MAC address -->
-    <Preference
-        android:key="wifi_mac_address"
-        android:order="46"
-        android:title="@string/status_device_wifi_mac_address"
-        android:summary="@string/summary_placeholder"
-        android:selectable="false"
-        settings:enableCopying="true"/>
+        <!-- Android version -->
+        <Preference
+            android:key="firmware_version"
+            android:order="42"
+            android:title="@string/firmware_version"
+            android:summary="@string/summary_placeholder"
+            android:fragment="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionSettings"
+            settings:controller="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionPreferenceController"/>
+    </PreferenceCategory>
 
-    <!-- Bluetooth address -->
-    <Preference
-        android:key="bt_address"
-        android:order="47"
-        android:title="@string/status_bt_address"
-        android:summary="@string/summary_placeholder"
-        android:selectable="false"
-        settings:enableCopying="true"/>
+    <PreferenceCategory
+        android:title="@string/my_device_info_device_identifiers_category_title">
 
-    <!-- Device up time -->
-    <Preference
-        android:key="up_time"
-        android:order="48"
-        android:title="@string/status_up_time"
-        android:summary="@string/summary_placeholder"
-        android:selectable="false"/>
+        <!--IP address -->
+        <Preference
+            android:key="wifi_ip_address"
+            android:order="44"
+            android:title="@string/wifi_ip_address"
+            android:summary="@string/summary_placeholder"
+            android:selectable="false"
+            settings:enableCopying="true"/>
 
-    <!-- Manual -->
-    <Preference
-        android:key="manual"
-        android:order="50"
-        android:title="@string/manual">
-        <intent android:action="android.settings.SHOW_MANUAL"/>
-    </Preference>
+        <!-- Wi-Fi MAC address -->
+        <Preference
+            android:key="saved_accesspoints_wifi_mac_address"
+            android:order="45"
+            android:title="@string/status_wifi_mac_address"
+            android:summary="@string/view_saved_network"
+            android:fragment="com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2"
+            settings:enableCopying="false"/>
 
-    <!-- Feedback on the device -->
-    <Preference
-        android:key="device_feedback"
-        android:order="51"
-        android:title="@string/device_feedback"
-        settings:keywords="@string/keywords_device_feedback"/>
+        <!-- Factory Wi-Fi MAC address -->
+        <Preference
+            android:key="wifi_mac_address"
+            android:order="46"
+            android:title="@string/status_device_wifi_mac_address"
+            android:summary="@string/summary_placeholder"
+            android:selectable="false"
+            settings:enableCopying="true"/>
 
-    <!-- Device FCC equipment id -->
-    <Preference
-        android:key="fcc_equipment_id"
-        android:order="52"
-        android:title="@string/fcc_equipment_id"
-        android:summary="@string/summary_placeholder"/>
+        <!-- Bluetooth address -->
+        <Preference
+            android:key="bt_address"
+            android:order="47"
+            android:title="@string/status_bt_address"
+            android:summary="@string/summary_placeholder"
+            android:selectable="false"
+            settings:enableCopying="true"/>
 
-    <!-- Build number -->
-    <Preference
-        android:key="build_number"
-        android:order="53"
-        android:title="@string/build_number"
-        android:summary="@string/summary_placeholder"
-        settings:allowDividerAbove="true"
-        settings:enableCopying="true"
-        settings:controller="com.android.settings.deviceinfo.BuildNumberPreferenceController"/>
+        <!-- Device up time -->
+        <Preference
+            android:key="up_time"
+            android:order="48"
+            android:title="@string/status_up_time"
+            android:summary="@string/summary_placeholder"
+            android:selectable="false"/>
+
+        <!-- Manual -->
+        <Preference
+            android:key="manual"
+            android:order="50"
+            android:title="@string/manual">
+            <intent android:action="android.settings.SHOW_MANUAL"/>
+        </Preference>
+
+        <!-- Feedback on the device -->
+        <Preference
+            android:key="device_feedback"
+            android:order="51"
+            android:title="@string/device_feedback"
+            settings:keywords="@string/keywords_device_feedback"/>
+
+        <!-- Device FCC equipment id -->
+        <Preference
+            android:key="fcc_equipment_id"
+            android:order="52"
+            android:title="@string/fcc_equipment_id"
+            android:summary="@string/summary_placeholder"/>
+
+        <!-- Build number -->
+        <Preference
+            android:key="build_number"
+            android:order="53"
+            android:title="@string/build_number"
+            android:summary="@string/summary_placeholder"
+            settings:enableCopying="true"
+            settings:controller="com.android.settings.deviceinfo.BuildNumberPreferenceController"/>
+    </PreferenceCategory>
 
 </PreferenceScreen>
diff --git a/res/xml/security_lockscreen_settings.xml b/res/xml/security_lockscreen_settings.xml
index 82cb860..0e802f6 100644
--- a/res/xml/security_lockscreen_settings.xml
+++ b/res/xml/security_lockscreen_settings.xml
@@ -46,6 +46,12 @@
             android:summary="@string/owner_info_settings_summary" />
 
         <SwitchPreference
+            android:key="security_setting_lockdown_enabled"
+            android:title="@string/lockdown_settings_title"
+            android:summary="@string/lockdown_settings_summary"
+            settings:controller="com.android.settings.security.LockdownButtonPreferenceController" />
+
+        <SwitchPreference
             android:key="lockscreen_privacy_wallet_switch"
             android:title="@string/lockscreen_privacy_wallet_setting_toggle"
             android:summary="@string/lockscreen_privacy_wallet_summary"
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 4f0515c..708dbed 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -77,7 +77,6 @@
 import android.provider.ContactsContract.Data;
 import android.provider.ContactsContract.Profile;
 import android.provider.ContactsContract.RawContacts;
-import android.provider.Settings;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import android.text.Spannable;
@@ -164,9 +163,6 @@
     public static final String PROPERTY_HIBERNATION_TARGETS_PRE_S_APPS =
             "app_hibernation_targets_pre_s_apps";
 
-    /** Whether or not Settings Shared Axis transition is enabled */
-    public static final String SETTINGS_SHARED_AXIS_ENABLED = "settings_shared_axis_enabled";
-
     /**
      * Finds a matching activity for a preference's intent. If a matching
      * activity is not found, it will remove the preference.
@@ -1225,9 +1221,4 @@
     public static boolean isProviderModelEnabled(Context context) {
         return FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL);
     }
-
-    public static boolean isPageTransitionEnabled(Context context) {
-        return Settings.Global.getInt(context.getContentResolver(),
-                SETTINGS_SHARED_AXIS_ENABLED, 0) == 1;
-    }
 }
diff --git a/src/com/android/settings/applications/RunningServices.java b/src/com/android/settings/applications/RunningServices.java
index 4d13241..b1689d5 100644
--- a/src/com/android/settings/applications/RunningServices.java
+++ b/src/com/android/settings/applications/RunningServices.java
@@ -72,7 +72,11 @@
     public void onResume() {
         super.onResume();
         boolean haveData = mRunningProcessesView.doResume(this, mRunningProcessesAvail);
-        mLoadingViewController.handleLoadingContainer(haveData /* done */, false /* animate */);
+        if (haveData) {
+            mLoadingViewController.showContent(false /* animate */);
+        } else {
+            mLoadingViewController.showLoadingView();
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java
index 6d67524..43e929b 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplications.java
+++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java
@@ -208,7 +208,6 @@
     private ApplicationsAdapter mApplications;
 
     private View mLoadingContainer;
-    private View mListContainer;
     private SearchView mSearchView;
 
     // Size resource used for packages whose size computation failed for some reason
@@ -402,25 +401,21 @@
 
         mRootView = inflater.inflate(R.layout.manage_applications_apps, null);
         mLoadingContainer = mRootView.findViewById(R.id.loading_container);
-        mListContainer = mRootView.findViewById(R.id.list_container);
-        if (mListContainer != null) {
-            // Create adapter and list view here
-            mEmptyView = mListContainer.findViewById(android.R.id.empty);
+        mEmptyView = mRootView.findViewById(android.R.id.empty);
+        mRecyclerView = mRootView.findViewById(R.id.apps_list);
 
-            mApplications = new ApplicationsAdapter(mApplicationsState, this, mFilter,
-                    savedInstanceState);
-            if (savedInstanceState != null) {
-                mApplications.mHasReceivedLoadEntries =
-                        savedInstanceState.getBoolean(EXTRA_HAS_ENTRIES, false);
-                mApplications.mHasReceivedBridgeCallback =
-                        savedInstanceState.getBoolean(EXTRA_HAS_BRIDGE, false);
-            }
-            mRecyclerView = mListContainer.findViewById(R.id.apps_list);
-            mRecyclerView.setItemAnimator(null);
-            mRecyclerView.setLayoutManager(new LinearLayoutManager(
-                    getContext(), RecyclerView.VERTICAL, false /* reverseLayout */));
-            mRecyclerView.setAdapter(mApplications);
+        mApplications = new ApplicationsAdapter(mApplicationsState, this, mFilter,
+                savedInstanceState);
+        if (savedInstanceState != null) {
+            mApplications.mHasReceivedLoadEntries =
+                    savedInstanceState.getBoolean(EXTRA_HAS_ENTRIES, false);
+            mApplications.mHasReceivedBridgeCallback =
+                    savedInstanceState.getBoolean(EXTRA_HAS_BRIDGE, false);
         }
+        mRecyclerView.setItemAnimator(null);
+        mRecyclerView.setLayoutManager(new LinearLayoutManager(
+                getContext(), RecyclerView.VERTICAL, false /* reverseLayout */));
+        mRecyclerView.setAdapter(mApplications);
 
         // We have to do this now because PreferenceFrameLayout looks at it
         // only when the view is added.
@@ -985,16 +980,8 @@
             // overlapped by floating filter.
             if (hasFilter) {
                 mManageApplications.mSpinnerHeader.setVisibility(View.VISIBLE);
-                mManageApplications.mRecyclerView.setPadding(0 /* left */,
-                        mContext.getResources().getDimensionPixelSize(
-                                R.dimen.app_bar_height) /* top */,
-                        0 /* right */,
-                        0 /* bottom */);
             } else {
                 mManageApplications.mSpinnerHeader.setVisibility(View.GONE);
-                mManageApplications.mRecyclerView.setPadding(0 /* left */, 0 /* top */,
-                        0 /* right */,
-                        0 /* bottom */);
             }
         }
     }
@@ -1044,7 +1031,8 @@
             mManageApplications = manageApplications;
             mLoadingViewController = new LoadingViewController(
                     mManageApplications.mLoadingContainer,
-                    mManageApplications.mListContainer
+                    mManageApplications.mRecyclerView,
+                    mManageApplications.mEmptyView
             );
             mContext = manageApplications.getActivity();
             mIconDrawableFactory = IconDrawableFactory.newInstance(mContext);
@@ -1303,11 +1291,9 @@
             mOriginalEntries = entries;
             notifyDataSetChanged();
             if (getItemCount() == 0) {
-                mManageApplications.mRecyclerView.setVisibility(View.GONE);
-                mManageApplications.mEmptyView.setVisibility(View.VISIBLE);
+                mLoadingViewController.showEmpty(false /* animate */);
             } else {
-                mManageApplications.mEmptyView.setVisibility(View.GONE);
-                mManageApplications.mRecyclerView.setVisibility(View.VISIBLE);
+                mLoadingViewController.showContent(false /* animate */);
 
                 if (mManageApplications.mSearchView != null
                         && mManageApplications.mSearchView.isVisibleToUser()) {
@@ -1324,10 +1310,6 @@
                 mLastIndex = -1;
             }
 
-            if (mSession.getAllApps().size() != 0
-                    && mManageApplications.mListContainer.getVisibility() != View.VISIBLE) {
-                mLoadingViewController.showContent(true /* animate */);
-            }
             if (mManageApplications.mListType == LIST_TYPE_USAGE_ACCESS) {
                 // No enabled or disabled filters for usage access.
                 return;
diff --git a/src/com/android/settings/core/SettingsBaseActivity.java b/src/com/android/settings/core/SettingsBaseActivity.java
index aceb3d7..fb6b49f 100644
--- a/src/com/android/settings/core/SettingsBaseActivity.java
+++ b/src/com/android/settings/core/SettingsBaseActivity.java
@@ -17,17 +17,14 @@
 
 import android.annotation.LayoutRes;
 import android.app.ActivityManager;
-import android.app.ActivityOptions;
 import android.content.ComponentName;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.res.TypedArray;
 import android.os.Bundle;
-import android.os.UserHandle;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
-import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.Window;
@@ -40,10 +37,8 @@
 
 import com.android.settings.R;
 import com.android.settings.SubSettings;
-import com.android.settings.Utils;
 import com.android.settings.core.CategoryMixin.CategoryHandler;
 import com.android.settingslib.core.lifecycle.HideNonSystemOverlayMixin;
-import com.android.settingslib.transition.SettingsTransitionHelper;
 import com.android.settingslib.transition.SettingsTransitionHelper.TransitionType;
 
 import com.google.android.material.appbar.AppBarLayout;
@@ -76,13 +71,6 @@
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
-        if (Utils.isPageTransitionEnabled(this)) {
-            // Enable Activity transitions
-            getWindow().requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS);
-            SettingsTransitionHelper.applyForwardTransition(this);
-            SettingsTransitionHelper.applyBackwardTransition(this);
-        }
-
         super.onCreate(savedInstanceState);
         if (isLockTaskModePinned() && !isSettingsRunOnTop()) {
             Log.w(TAG, "Devices lock task mode pinned.");
@@ -146,27 +134,9 @@
     }
 
     @Override
-    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
-        final int id = item.getItemId();
-        if (id == android.R.id.home) {
-            // Make the up button behave the same as the back button.
-            finishAfterTransition();
-            return true;
-        }
-        return super.onOptionsItemSelected(item);
-    }
-
-    @Override
     public void startActivityForResult(Intent intent, int requestCode,
             @androidx.annotation.Nullable Bundle options) {
         final int transitionType = getTransitionType(intent);
-        if (Utils.isPageTransitionEnabled(this) &&
-                transitionType == TransitionType.TRANSITION_SHARED_AXIS) {
-            super.startActivityForResult(intent, requestCode,
-                    createActivityOptionsBundleForTransition(options));
-            return;
-        }
-
         super.startActivityForResult(intent, requestCode, options);
         if (transitionType == TransitionType.TRANSITION_SLIDE) {
             overridePendingTransition(R.anim.sud_slide_next_in, R.anim.sud_slide_next_out);
@@ -176,18 +146,6 @@
     }
 
     @Override
-    public void startActivityForResultAsUser(Intent intent, int requestCode,
-            UserHandle userHandle) {
-        if (!Utils.isPageTransitionEnabled(this) || requestCode == DEFAULT_REQUEST) {
-            super.startActivityForResultAsUser(intent, requestCode, userHandle);
-            return;
-        }
-        super.startActivityForResultAsUser(intent, requestCode,
-                createActivityOptionsBundleForTransition(null),
-                userHandle);
-    }
-
-    @Override
     protected void onPause() {
         // For accessibility activities launched from setup wizard.
         if (getTransitionType(getIntent()) == TransitionType.TRANSITION_FADE) {
@@ -294,25 +252,6 @@
     }
 
     private int getTransitionType(Intent intent) {
-        return intent.getIntExtra(EXTRA_PAGE_TRANSITION_TYPE,
-                SettingsTransitionHelper.TransitionType.TRANSITION_SHARED_AXIS);
+        return intent.getIntExtra(EXTRA_PAGE_TRANSITION_TYPE, TransitionType.TRANSITION_NONE);
     }
-
-    @Nullable
-    private Bundle createActivityOptionsBundleForTransition(
-            @androidx.annotation.Nullable Bundle options) {
-        if (mToolbar == null) {
-            Log.w(TAG, "setActionBar(Toolbar) is not called. Cannot apply settings transition!");
-            return options;
-        }
-        final Bundle transitionOptions = ActivityOptions.makeSceneTransitionAnimation(this,
-                mToolbar, "shared_element_view").toBundle();
-        if (options == null) {
-            return transitionOptions;
-        }
-        final Bundle mergedOptions = new Bundle(options);
-        mergedOptions.putAll(transitionOptions);
-        return mergedOptions;
-    }
-
 }
diff --git a/src/com/android/settings/display/AdaptiveSleepPreferenceController.java b/src/com/android/settings/display/AdaptiveSleepPreferenceController.java
index 35f9c72..b21c6ac 100644
--- a/src/com/android/settings/display/AdaptiveSleepPreferenceController.java
+++ b/src/com/android/settings/display/AdaptiveSleepPreferenceController.java
@@ -139,13 +139,17 @@
     }
 
     public static int isControllerAvailable(Context context) {
-        return context.getResources().getBoolean(
-                com.android.internal.R.bool.config_adaptive_sleep_available)
-                && isAttentionServiceAvailable(context)
+        return isAdaptiveSleepSupported(context)
                 ? AVAILABLE_UNSEARCHABLE
                 : UNSUPPORTED_ON_DEVICE;
     }
 
+    static boolean isAdaptiveSleepSupported(Context context) {
+        return context.getResources().getBoolean(
+                com.android.internal.R.bool.config_adaptive_sleep_available)
+                && isAttentionServiceAvailable(context);
+    }
+
     private static boolean isAttentionServiceAvailable(Context context) {
         final PackageManager packageManager = context.getPackageManager();
         final String resolvePackage = packageManager.getAttentionServicePackageName();
diff --git a/src/com/android/settings/display/ScreenTimeoutSettings.java b/src/com/android/settings/display/ScreenTimeoutSettings.java
index 66f5ed3..18d1049 100644
--- a/src/com/android/settings/display/ScreenTimeoutSettings.java
+++ b/src/com/android/settings/display/ScreenTimeoutSettings.java
@@ -314,8 +314,7 @@
     }
 
     private static boolean isScreenAttentionAvailable(Context context) {
-        return context.getResources().getBoolean(
-                com.android.internal.R.bool.config_adaptive_sleep_available);
+        return AdaptiveSleepPreferenceController.isAdaptiveSleepSupported(context);
     }
 
     private static class TimeoutCandidateInfo extends CandidateInfo {
diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java
index 25cf4ce..e88d38b 100644
--- a/src/com/android/settings/network/NetworkProviderSettings.java
+++ b/src/com/android/settings/network/NetworkProviderSettings.java
@@ -116,6 +116,7 @@
     static final int MENU_ID_FORGET = Menu.FIRST + 3;
     static final int MENU_ID_MODIFY = Menu.FIRST + 4;
     static final int MENU_FIX_CONNECTIVITY = Menu.FIRST + 5;
+    static final int MENU_ID_SHARE = Menu.FIRST + 6;
 
     @VisibleForTesting
     static final int ADD_NETWORK_REQUEST = 2;
@@ -200,7 +201,7 @@
      * ensure that behavior is consistent if {@link #isUiRestricted()} changes. It could be changed
      * by the Test DPC tool in AFW mode.
      */
-    private boolean mIsRestricted;
+    protected boolean mIsRestricted;
 
     @VisibleForTesting
     AirplaneModeEnabler mAirplaneModeEnabler;
@@ -218,7 +219,8 @@
     PreferenceCategory mConnectedWifiEntryPreferenceCategory;
     @VisibleForTesting
     PreferenceCategory mFirstWifiEntryPreferenceCategory;
-    private PreferenceCategory mWifiEntryPreferenceCategory;
+    @VisibleForTesting
+    PreferenceCategory mWifiEntryPreferenceCategory;
     @VisibleForTesting
     AddWifiNetworkPreference mAddWifiNetworkPreference;
     private WifiSwitchPreferenceController mWifiSwitchPreferenceController;
@@ -535,7 +537,8 @@
         }
 
         if (mSelectedWifiEntry.canDisconnect()) {
-            menu.add(Menu.NONE, MENU_ID_DISCONNECT, 0 /* order */,
+            menu.add(Menu.NONE, MENU_ID_SHARE, 0 /* order */, R.string.share);
+            menu.add(Menu.NONE, MENU_ID_DISCONNECT, 1 /* order */,
                     R.string.wifi_disconnect_button_text);
         }
 
@@ -574,6 +577,10 @@
             case MENU_ID_FORGET:
                 forget(mSelectedWifiEntry);
                 return true;
+            case MENU_ID_SHARE:
+                WifiDppUtils.showLockScreen(getContext(),
+                        () -> launchWifiDppConfiguratorActivity(mSelectedWifiEntry));
+                return true;
             case MENU_ID_MODIFY:
                 showDialog(mSelectedWifiEntry, WifiConfigUiBase2.MODE_MODIFY);
                 return true;
@@ -608,6 +615,23 @@
         return true;
     }
 
+    private void launchWifiDppConfiguratorActivity(WifiEntry wifiEntry) {
+        final Intent intent = WifiDppUtils.getConfiguratorQrCodeGeneratorIntentOrNull(getContext(),
+                mWifiManager, wifiEntry);
+
+        if (intent == null) {
+            Log.e(TAG, "Launch Wi-Fi DPP QR code generator with a wrong Wi-Fi network!");
+        } else {
+            mMetricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,
+                    SettingsEnums.ACTION_SETTINGS_SHARE_WIFI_QR_CODE,
+                    SettingsEnums.SETTINGS_WIFI_DPP_CONFIGURATOR,
+                    /* key */ null,
+                    /* value */ Integer.MIN_VALUE);
+
+            startActivity(intent);
+        }
+    }
+
     private void showDialog(WifiEntry wifiEntry, int dialogMode) {
         if (WifiUtils.isNetworkLockedDown(getActivity(), wifiEntry.getWifiConfiguration())
                 && wifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED) {
@@ -771,7 +795,11 @@
         }
     }
 
-    private void updateWifiEntryPreferences() {
+    protected void updateWifiEntryPreferences() {
+        // bypass the update if the activity and the view are not ready, or it's restricted UI.
+        if (getActivity() == null || getView() == null || mIsRestricted) {
+            return;
+        }
         // in case state has changed
         if (mWifiPickerTracker.getWifiState() != WifiManager.WIFI_STATE_ENABLED) {
             return;
diff --git a/src/com/android/settings/panel/InternetConnectivityPanel.java b/src/com/android/settings/panel/InternetConnectivityPanel.java
index 0fa1e46..53c0f20 100644
--- a/src/com/android/settings/panel/InternetConnectivityPanel.java
+++ b/src/com/android/settings/panel/InternetConnectivityPanel.java
@@ -30,6 +30,7 @@
 import android.os.Handler;
 import android.os.HandlerExecutor;
 import android.os.Looper;
+import android.provider.Settings;
 import android.telephony.ServiceState;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyCallback;
@@ -235,7 +236,10 @@
 
     @Override
     public Intent getSeeMoreIntent() {
-        return null;
+        // Don't remove the see more intent for non-provider model design. This intent will be
+        // used when isCustomizedButtonUsed() returns false.
+        return new Intent(Settings.ACTION_WIRELESS_SETTINGS)
+                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
     }
 
     @Override
diff --git a/src/com/android/settings/password/SetupChooseLockGeneric.java b/src/com/android/settings/password/SetupChooseLockGeneric.java
index 15a90e3..3261b81 100644
--- a/src/com/android/settings/password/SetupChooseLockGeneric.java
+++ b/src/com/android/settings/password/SetupChooseLockGeneric.java
@@ -23,7 +23,6 @@
 
 import android.content.Context;
 import android.content.Intent;
-import android.content.res.Resources;
 import android.os.Bundle;
 import android.os.IBinder;
 import android.os.UserHandle;
@@ -43,6 +42,7 @@
 import com.android.settings.utils.SettingsDividerItemDecoration;
 
 import com.google.android.setupdesign.GlifPreferenceLayout;
+import com.google.android.setupdesign.util.ThemeHelper;
 
 /**
  * Setup Wizard's version of ChooseLockGeneric screen. It inherits the logic and basic structure
@@ -67,13 +67,9 @@
     }
 
     @Override
-    protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
-        final int new_resid = SetupWizardUtils.getTheme(this, getIntent());
-        super.onApplyThemeResource(theme, new_resid, first);
-    }
-
-    @Override
     protected void onCreate(Bundle savedInstance) {
+        setTheme(SetupWizardUtils.getTheme(this, getIntent()));
+        ThemeHelper.trySetDynamicColor(this);
         super.onCreate(savedInstance);
 
         if(getIntent().hasExtra(EXTRA_KEY_REQUESTED_MIN_COMPLEXITY)) {
@@ -92,6 +88,12 @@
         findViewById(R.id.content_parent).setFitsSystemWindows(false);
     }
 
+    @Override
+    protected boolean isToolbarEnabled() {
+        // Hide the action bar from this page.
+        return false;
+    }
+
     public static class SetupChooseLockGenericFragment extends ChooseLockGenericFragment {
 
         public static final String EXTRA_PASSWORD_QUALITY = ":settings:password_quality";
diff --git a/src/com/android/settings/widget/LoadingViewController.java b/src/com/android/settings/widget/LoadingViewController.java
index 294e55e..66eebf3 100644
--- a/src/com/android/settings/widget/LoadingViewController.java
+++ b/src/com/android/settings/widget/LoadingViewController.java
@@ -22,34 +22,66 @@
 import android.view.animation.Animation;
 import android.view.animation.AnimationUtils;
 
+import androidx.annotation.Nullable;
+
 /**
- * A helper class that manages show/hide loading spinner.
+ * A helper class that manages show/hide loading spinner, content view and empty view (optional).
  */
 public class LoadingViewController {
 
     private static final long DELAY_SHOW_LOADING_CONTAINER_THRESHOLD_MS = 100L;
 
-    public final Handler mFgHandler;
-    public final View mLoadingView;
-    public final View mContentView;
+    private final Handler mFgHandler;
+    private final View mLoadingView;
+    private final View mContentView;
+    private final View mEmptyView;
 
     public LoadingViewController(View loadingView, View contentView) {
+        this(loadingView, contentView, null /* emptyView*/);
+    }
+
+    public LoadingViewController(View loadingView, View contentView, @Nullable View emptyView) {
         mLoadingView = loadingView;
         mContentView = contentView;
+        mEmptyView = emptyView;
         mFgHandler = new Handler(Looper.getMainLooper());
     }
 
     private Runnable mShowLoadingContainerRunnable = new Runnable() {
         public void run() {
-            handleLoadingContainer(false /* done */, false /* animate */);
+            showLoadingView();
         }
     };
 
+    /**
+     *  Shows content view and hides loading view & empty view.
+     */
     public void showContent(boolean animate) {
         // Cancel any pending task to show the loading animation and show the list of
         // apps directly.
         mFgHandler.removeCallbacks(mShowLoadingContainerRunnable);
-        handleLoadingContainer(true /* show */, animate);
+        handleLoadingContainer(true /* showContent */, false /* showEmpty*/, animate);
+    }
+
+    /**
+     *  Shows empty view and hides loading view & content view.
+     */
+    public void showEmpty(boolean animate) {
+        if (mEmptyView == null) {
+            return;
+        }
+
+        // Cancel any pending task to show the loading animation and show the list of
+        // apps directly.
+        mFgHandler.removeCallbacks(mShowLoadingContainerRunnable);
+        handleLoadingContainer(false /* showContent */, true /* showEmpty */, animate);
+    }
+
+    /**
+     *  Shows loading view and hides content view & empty view.
+     */
+    public void showLoadingView() {
+        handleLoadingContainer(false /* showContent */, false /* showEmpty */, false /* animate */);
     }
 
     public void showLoadingViewDelayed() {
@@ -57,8 +89,9 @@
                 mShowLoadingContainerRunnable, DELAY_SHOW_LOADING_CONTAINER_THRESHOLD_MS);
     }
 
-    public void handleLoadingContainer(boolean done, boolean animate) {
-        handleLoadingContainer(mLoadingView, mContentView, done, animate);
+    private void handleLoadingContainer(boolean showContent, boolean showEmpty, boolean animate) {
+        handleLoadingContainer(mLoadingView, mContentView, mEmptyView,
+                showContent, showEmpty, animate);
     }
 
     /**
@@ -75,6 +108,25 @@
         setViewShown(content, done, animate);
     }
 
+    /**
+     * Show/hide loading view and content view and empty view.
+     *
+     * @param loading The loading spinner view
+     * @param content The content view
+     * @param empty The empty view shows no item summary to users.
+     * @param showContent    If true, content is set visible and loading is set invisible.
+     * @param showEmpty    If true, empty is set visible and loading is set invisible.
+     * @param animate Whether or not content/loading views should animate in/out.
+     */
+    public static void handleLoadingContainer(View loading, View content, View empty,
+            boolean showContent, boolean showEmpty, boolean animate) {
+        if (empty != null) {
+            setViewShown(empty, showEmpty, animate);
+        }
+        setViewShown(content, showContent, animate);
+        setViewShown(loading, !showContent && !showEmpty, animate);
+    }
+
     private static void setViewShown(final View view, boolean shown, boolean animate) {
         if (animate) {
             Animation animation = AnimationUtils.loadAnimation(view.getContext(),
diff --git a/tests/robotests/src/com/android/settings/applications/manageapplications/ManageApplicationsTest.java b/tests/robotests/src/com/android/settings/applications/manageapplications/ManageApplicationsTest.java
index 86f5fe8..25eca7a 100644
--- a/tests/robotests/src/com/android/settings/applications/manageapplications/ManageApplicationsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/manageapplications/ManageApplicationsTest.java
@@ -28,7 +28,6 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
@@ -49,7 +48,6 @@
 import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
-import android.view.ViewGroup;
 import android.widget.SearchView;
 
 import androidx.fragment.app.FragmentActivity;
@@ -156,22 +154,6 @@
     }
 
     @Test
-    public void onCreateView_shouldNotShowLoadingContainer() {
-        ReflectionHelpers.setField(mFragment, "mResetAppsHelper", mock(ResetAppsHelper.class));
-        doNothing().when(mFragment).createHeader();
-
-        final LayoutInflater layoutInflater = mock(LayoutInflater.class);
-        final View view = mock(View.class);
-        final View loadingContainer = mock(View.class);
-        when(layoutInflater.inflate(anyInt(), eq(null))).thenReturn(view);
-        when(view.findViewById(R.id.loading_container)).thenReturn(loadingContainer);
-
-        mFragment.onCreateView(layoutInflater, mock(ViewGroup.class), null);
-
-        verify(loadingContainer, never()).setVisibility(View.VISIBLE);
-    }
-
-    @Test
     public void onCreateOptionsMenu_shouldSetSearchQueryListener() {
         final SearchView searchView = mock(SearchView.class);
         final MenuItem searchMenu = mock(MenuItem.class);
@@ -221,7 +203,6 @@
     @Test
     public void updateLoading_appLoaded_shouldNotDelayCallToHandleLoadingContainer() {
         ReflectionHelpers.setField(mFragment, "mLoadingContainer", mock(View.class));
-        ReflectionHelpers.setField(mFragment, "mListContainer", mock(View.class));
         final ManageApplications.ApplicationsAdapter adapter =
                 spy(new ManageApplications.ApplicationsAdapter(mState, mFragment,
                         AppFilterRegistry.getInstance().get(FILTER_APPS_ALL), new Bundle()));
@@ -243,7 +224,6 @@
     @Test
     public void updateLoading_appNotLoaded_shouldDelayCallToHandleLoadingContainer() {
         ReflectionHelpers.setField(mFragment, "mLoadingContainer", mock(View.class));
-        ReflectionHelpers.setField(mFragment, "mListContainer", mock(View.class));
         final ManageApplications.ApplicationsAdapter adapter =
                 spy(new ManageApplications.ApplicationsAdapter(mState, mFragment,
                         AppFilterRegistry.getInstance().get(FILTER_APPS_ALL), new Bundle()));
@@ -272,7 +252,6 @@
         when(listContainer.getVisibility()).thenReturn(View.INVISIBLE);
         when(listContainer.getContext()).thenReturn(context);
         ReflectionHelpers.setField(mFragment, "mLoadingContainer", loadingContainer);
-        ReflectionHelpers.setField(mFragment, "mListContainer", listContainer);
         final ManageApplications.ApplicationsAdapter adapter =
                 spy(new ManageApplications.ApplicationsAdapter(mState, mFragment,
                         AppFilterRegistry.getInstance().get(FILTER_APPS_ALL), new Bundle()));
@@ -296,7 +275,7 @@
 
         adapter.onRebuildComplete(null);
 
-        verify(loadingViewController).showContent(true /* animate */);
+        verify(loadingViewController).showEmpty(false /* animate */);
     }
 
     @Test
@@ -304,15 +283,16 @@
         final String query = "Test";
         final RecyclerView recyclerView = mock(RecyclerView.class);
         final View emptyView = mock(View.class);
+        final View loadingContainer = mock(View.class);
         ReflectionHelpers.setField(mFragment, "mRecyclerView", recyclerView);
         ReflectionHelpers.setField(mFragment, "mEmptyView", emptyView);
+        ReflectionHelpers.setField(mFragment, "mLoadingContainer", loadingContainer);
         final SearchView searchView = mock(SearchView.class);
         ReflectionHelpers.setField(mFragment, "mSearchView", searchView);
         when(searchView.isVisibleToUser()).thenReturn(true);
         when(searchView.getQuery()).thenReturn(query);
         final View listContainer = mock(View.class);
         when(listContainer.getVisibility()).thenReturn(View.VISIBLE);
-        ReflectionHelpers.setField(mFragment, "mListContainer", listContainer);
         ReflectionHelpers.setField(
                 mFragment, "mFilterAdapter", mock(ManageApplications.FilterSpinnerAdapter.class));
         final ArrayList<ApplicationsState.AppEntry> appList = new ArrayList<>();
@@ -491,8 +471,6 @@
         mFragment.mFilterAdapter.updateFilterView(true);
 
         assertThat(mFragment.mSpinnerHeader.getVisibility()).isEqualTo(View.VISIBLE);
-        assertThat(mFragment.mRecyclerView.getPaddingTop()).isEqualTo(
-                mContext.getResources().getDimensionPixelSize(R.dimen.app_bar_height));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java b/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java
index 2a0d3df..b68bcec 100644
--- a/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java
+++ b/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java
@@ -28,14 +28,12 @@
 
 import android.content.Context;
 import android.content.Intent;
-import android.os.Bundle;
 import android.os.UserHandle;
 
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentActivity;
 
 import com.android.settings.SettingsActivity;
-import com.android.settings.testutils.shadow.ShadowUtils;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.transition.SettingsTransitionHelper;
 
@@ -45,7 +43,6 @@
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.annotation.Config;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
diff --git a/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java b/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java
index abb616a..41e4429 100644
--- a/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java
@@ -22,16 +22,24 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.isA;
 import static org.mockito.Mockito.atLeast;
 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.admin.DevicePolicyManager;
 import android.content.ContentResolver;
 import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.content.pm.ServiceInfo;
 import android.content.res.Resources;
 import android.provider.SearchIndexableResource;
 import android.provider.Settings;
@@ -80,6 +88,9 @@
     @Mock
     Preference mDisableOptionsPreference;
 
+    @Mock
+    private PackageManager mPackageManager;
+
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
@@ -90,6 +101,15 @@
         mContentResolver = mContext.getContentResolver();
         mResources = spy(mContext.getResources());
 
+        doReturn(mPackageManager).when(mContext).getPackageManager();
+        when(mPackageManager.getAttentionServicePackageName()).thenReturn("some.package");
+        when(mPackageManager.checkPermission(any(), any())).thenReturn(
+                PackageManager.PERMISSION_GRANTED);
+        final ResolveInfo attentionServiceResolveInfo = new ResolveInfo();
+        attentionServiceResolveInfo.serviceInfo = new ServiceInfo();
+        when(mPackageManager.resolveService(isA(Intent.class), anyInt())).thenReturn(
+                attentionServiceResolveInfo);
+
         doReturn(TIMEOUT_ENTRIES).when(mResources).getStringArray(R.array.screen_timeout_entries);
         doReturn(TIMEOUT_VALUES).when(mResources).getStringArray(R.array.screen_timeout_entries);
         doReturn(true).when(mResources).getBoolean(
@@ -148,6 +168,13 @@
     }
 
     @Test
+    public void updateCandidates_AttentionServiceNotInstalled_doNoShowAdaptiveSleepPreference() {
+        when(mPackageManager.resolveService(isA(Intent.class), anyInt())).thenReturn(null);
+
+        verify(mSettings.mAdaptiveSleepController, never()).addToScreen(mPreferenceScreen);
+    }
+
+    @Test
     public void updateCandidates_enforcedAdmin_showDisabledByAdminPreference() {
         mSettings.mAdmin = new RestrictedLockUtils.EnforcedAdmin();
         mSettings.mDisableOptionsPreference = mDisableOptionsPreference;
diff --git a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
index 7affe68..9951449 100644
--- a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
@@ -535,4 +535,32 @@
 
         assertThat(p instanceof NetworkProviderSettings.FirstWifiEntryPreference).isTrue();
     }
+
+    @Test
+    public void updateWifiEntryPreferences_activityIsNull_ShouldNotCrash() {
+        when(mNetworkProviderSettings.getActivity()).thenReturn(null);
+
+        // should not crash
+        mNetworkProviderSettings.updateWifiEntryPreferences();
+    }
+
+    @Test
+    public void updateWifiEntryPreferences_viewIsNull_ShouldNotCrash() {
+        final FragmentActivity activity = mock(FragmentActivity.class);
+        when(mNetworkProviderSettings.getActivity()).thenReturn(activity);
+        when(mNetworkProviderSettings.getView()).thenReturn(null);
+
+        // should not crash
+        mNetworkProviderSettings.updateWifiEntryPreferences();
+    }
+
+    @Test
+    public void updateWifiEntryPreferences_isRestricted_bypassUpdate() {
+        mNetworkProviderSettings.mIsRestricted = true;
+        mNetworkProviderSettings.mWifiEntryPreferenceCategory = mock(PreferenceCategory.class);
+
+        mNetworkProviderSettings.updateWifiEntryPreferences();
+
+        verify(mNetworkProviderSettings.mWifiEntryPreferenceCategory, never()).setVisible(true);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java
index 7534edf..40cb25b 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java
@@ -47,7 +47,6 @@
     private static boolean sIsVoiceCapable;
     private static ArraySet<String> sResultLinks = new ArraySet<>();
     private static boolean sIsBatteryPresent;
-    private static boolean sIsPageTransitionEnabled;
     private static boolean sIsMultipleBiometricsSupported;
 
     @Implementation
@@ -71,7 +70,6 @@
         sIsVoiceCapable = false;
         sResultLinks = new ArraySet<>();
         sIsBatteryPresent = true;
-        sIsPageTransitionEnabled = true;
         sIsMultipleBiometricsSupported = false;
     }
 
@@ -172,15 +170,6 @@
     }
 
     @Implementation
-    protected static boolean isPageTransitionEnabled(Context context) {
-        return sIsPageTransitionEnabled;
-    }
-
-    public static void setIsPageTransitionEnabled(boolean isPageTransitionEnabled) {
-        sIsPageTransitionEnabled = isPageTransitionEnabled;
-    }
-
-    @Implementation
     protected static boolean isMultipleBiometricsSupported(Context context) {
         return sIsMultipleBiometricsSupported;
     }
diff --git a/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java b/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java
index 837cf7a..c13d368 100644
--- a/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java
+++ b/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java
@@ -255,8 +255,8 @@
     }
 
     @Test
-    public void getSeeMoreIntent_shouldBeNull() {
-        assertThat(mPanel.getSeeMoreIntent()).isNull();
+    public void getSeeMoreIntent_shouldNotNull() {
+        assertThat(mPanel.getSeeMoreIntent()).isNotNull();
     }
 
     @Test