diff --git a/res/raw/lottie_swipe_for_notifications.json b/res/raw/lottie_swipe_for_notifications.json
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/res/raw/lottie_swipe_for_notifications.json
diff --git a/res/values/strings.xml b/res/values/strings.xml
index d7c6b08..26fbd79 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -12884,6 +12884,8 @@
     <string name="sim_action_reboot">Restart</string>
     <!-- Button on a dialog to reject SIM operations. [CHAR LIMIT=30] -->
     <string name="sim_action_no_thanks">No thanks</string>
+    <!-- Button text to cancel operations proposed by a sim operation dialog [CHAR LIMIT=20] -->
+    <string name="sim_action_cancel">Cancel</string>
     <!-- Button which will disconnect the user from one mobile network and immediately connect to another. [CHAR LIMIT=30] -->
     <string name="sim_switch_button">Switch</string>
     <!-- Title of DSDS activation failure dialog [CHAR LIMIT=40] -->
diff --git a/res/xml/accounts_dashboard_settings.xml b/res/xml/accounts_dashboard_settings.xml
index c8627e7..71bfc18 100644
--- a/res/xml/accounts_dashboard_settings.xml
+++ b/res/xml/accounts_dashboard_settings.xml
@@ -37,7 +37,6 @@
         <com.android.settings.widget.GearPreference
             android:fragment="com.android.settings.applications.defaultapps.DefaultAutofillPicker"
             android:key="default_autofill_main"
-            android:title="@string/autofill_app"
             settings:keywords="@string/autofill_keywords">
             <extra
                 android:name="for_work"
diff --git a/res/xml/accounts_personal_dashboard_settings.xml b/res/xml/accounts_personal_dashboard_settings.xml
index e0ba71b..b01c235 100644
--- a/res/xml/accounts_personal_dashboard_settings.xml
+++ b/res/xml/accounts_personal_dashboard_settings.xml
@@ -38,7 +38,6 @@
         <com.android.settings.widget.GearPreference
             android:fragment="com.android.settings.applications.defaultapps.DefaultAutofillPicker"
             android:key="default_autofill_main"
-            android:title="@string/autofill_app"
             settings:keywords="@string/autofill_keywords">
             <extra
                 android:name="for_work"
diff --git a/res/xml/accounts_work_dashboard_settings.xml b/res/xml/accounts_work_dashboard_settings.xml
index 1c4c6aa..c24ea6f 100644
--- a/res/xml/accounts_work_dashboard_settings.xml
+++ b/res/xml/accounts_work_dashboard_settings.xml
@@ -38,7 +38,6 @@
         <com.android.settings.widget.GearPreference
             android:fragment="com.android.settings.applications.defaultapps.DefaultAutofillPicker"
             android:key="default_autofill_work"
-            android:title="@string/autofill_app"
             settings:searchable="false">
             <extra
                 android:name="for_work"
diff --git a/src/com/android/settings/applications/defaultapps/DefaultAppPreferenceController.java b/src/com/android/settings/applications/defaultapps/DefaultAppPreferenceController.java
index fd6f4c2..d962692 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultAppPreferenceController.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultAppPreferenceController.java
@@ -65,11 +65,19 @@
             ((TwoTargetPreference) preference).setIconSize(ICON_SIZE_MEDIUM);
         }
         if (!TextUtils.isEmpty(defaultAppLabel)) {
-            preference.setSummary(defaultAppLabel);
+            if (showLabelAsTitle()) {
+                preference.setTitle(defaultAppLabel);
+            } else {
+                preference.setSummary(defaultAppLabel);
+            }
             preference.setIcon(Utils.getSafeIcon(getDefaultAppIcon()));
         } else {
             Log.d(TAG, "No default app");
-            preference.setSummary(R.string.app_list_preference_none);
+            if (showLabelAsTitle()) {
+                preference.setTitle(R.string.app_list_preference_none);
+            } else {
+                preference.setSummary(R.string.app_list_preference_none);
+            }
             preference.setIcon(null);
         }
         mayUpdateGearIcon(app, preference);
@@ -102,6 +110,13 @@
         return null;
     }
 
+    /**
+     * Whether to show the default app label as the title, instead of as the summary.
+     */
+    protected boolean showLabelAsTitle() {
+        return false;
+    }
+
     public Drawable getDefaultAppIcon() {
         if (!isAvailable()) {
             return null;
diff --git a/src/com/android/settings/applications/defaultapps/DefaultAutofillPreferenceController.java b/src/com/android/settings/applications/defaultapps/DefaultAutofillPreferenceController.java
index d32322b..1493e30 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultAutofillPreferenceController.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultAutofillPreferenceController.java
@@ -69,4 +69,9 @@
         }
         return null;
     }
+
+    @Override
+    protected boolean showLabelAsTitle() {
+        return true;
+    }
 }
diff --git a/src/com/android/settings/gestures/OneHandedSettings.java b/src/com/android/settings/gestures/OneHandedSettings.java
index 6d1cbfd..51c6b66 100644
--- a/src/com/android/settings/gestures/OneHandedSettings.java
+++ b/src/com/android/settings/gestures/OneHandedSettings.java
@@ -16,19 +16,18 @@
 
 package com.android.settings.gestures;
 
+import android.app.Activity;
 import android.app.settings.SettingsEnums;
 import android.content.ComponentName;
 import android.content.Context;
 import android.os.Bundle;
 import android.os.UserHandle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
 
 import com.android.internal.accessibility.AccessibilityShortcutController;
 import com.android.settings.R;
 import com.android.settings.accessibility.AccessibilityShortcutPreferenceFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.widget.IllustrationPreference;
 
 /**
  * Fragment for One-handed mode settings
@@ -37,13 +36,27 @@
  * providing basic accessibility shortcut service setup.
  */
 public class OneHandedSettings extends AccessibilityShortcutPreferenceFragment {
+
     private static final String ONE_HANDED_SHORTCUT_KEY = "one_handed_shortcuts_preference";
+    private static final String ONE_HANDED_ILLUSTRATION_KEY = "one_handed_header";
     private String mFeatureName;
+    private OneHandedSettingsUtils mUtils;
 
     @Override
     protected void updatePreferenceStates() {
         OneHandedSettingsUtils.setUserId(UserHandle.myUserId());
         super.updatePreferenceStates();
+
+        final IllustrationPreference preference =
+                (IllustrationPreference) getPreferenceScreen().findPreference(
+                        ONE_HANDED_ILLUSTRATION_KEY);
+        if (preference != null) {
+            final boolean isSwipeDownNotification =
+                    OneHandedSettingsUtils.isSwipeDownNotificationEnabled(getContext());
+            preference.setLottieAnimationResId(
+                    isSwipeDownNotification ? R.raw.lottie_swipe_for_notifications
+                            : R.raw.lottie_one_hand_mode);
+        }
     }
 
     @Override
@@ -69,9 +82,21 @@
     }
 
     @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState) {
-        return super.onCreateView(inflater, container, savedInstanceState);
+    public void onStart() {
+        super.onStart();
+        mUtils = new OneHandedSettingsUtils(this.getContext());
+        mUtils.registerToggleAwareObserver(uri -> {
+            Activity activity = getActivity();
+            if (activity != null) {
+                activity.runOnUiThread(() -> updatePreferenceStates());
+            }
+        });
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+        mUtils.unregisterToggleAwareObserver();
     }
 
     @Override
diff --git a/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java b/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java
index 0064e6c..e67ac42 100644
--- a/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java
+++ b/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java
@@ -338,7 +338,7 @@
                 getString(R.string.sim_action_restart_title),
                 getString(R.string.sim_action_enable_dsds_text),
                 getString(R.string.sim_action_reboot),
-                getString(R.string.cancel));
+                getString(R.string.sim_action_cancel));
     }
 
     /* Displays the SIM toggling confirmation dialog. */
@@ -359,7 +359,7 @@
                 title,
                 null,
                 getString(R.string.yes),
-                getString(R.string.cancel));
+                getString(R.string.sim_action_cancel));
     }
 
     private void showEnableSimConfirmDialog() {
@@ -384,7 +384,7 @@
                 getSwitchSubscriptionTitle(),
                 getSwitchDialogBodyMsg(activeSub, isBetweenEsim),
                 getSwitchDialogPosBtnText(),
-                getString(android.R.string.cancel));
+                getString(R.string.sim_action_cancel));
     }
 
     private void showNonSwitchSimConfirmDialog() {
@@ -395,7 +395,7 @@
                 getEnableSubscriptionTitle(),
                 null /* msg */,
                 getString(R.string.yes),
-                getString(android.R.string.cancel));
+                getString(R.string.sim_action_cancel));
     }
 
     private String getSwitchDialogPosBtnText() {
