diff --git a/res/layout/fingerprint_enroll_introduction.xml b/res/layout/fingerprint_enroll_introduction.xml
index 41be2f6..0aa18fb 100644
--- a/res/layout/fingerprint_enroll_introduction.xml
+++ b/res/layout/fingerprint_enroll_introduction.xml
@@ -57,6 +57,25 @@
 
         </com.google.android.setupdesign.view.FillContentLayout>
 
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:contentDescription="@null"
+                android:src="@drawable/ic_info_outline_24dp"/>
+
+            <com.google.android.setupdesign.view.RichTextView
+                android:id="@+id/sud_layout_info"
+                style="@style/SudDescription.Glif"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/security_settings_fingerprint_enroll_introduction_bottom_message" />
+        </LinearLayout>
+
     </LinearLayout>
 
 </com.google.android.setupdesign.GlifLayout>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 5301f30..f52c818 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -879,7 +879,9 @@
     <!-- Introduction title shown in fingerprint enrollment to introduce the fingerprint feature, when fingerprint unlock is disabed by device admin [CHAR LIMIT=40] -->
     <string name="security_settings_fingerprint_enroll_introduction_title_unlock_disabled">Use your fingerprint</string>
     <!-- Introduction detail message shown in fingerprint enrollment dialog [CHAR LIMIT=NONE]-->
-    <string name="security_settings_fingerprint_enroll_introduction_message">Just touch the fingerprint sensor to unlock your phone, authorize purchases, or sign in to apps. Be careful whose fingerprints you add. Even one added print can do any of these things.\n\nNote: Your fingerprint may be less secure than a strong pattern or PIN.</string>
+    <string name="security_settings_fingerprint_enroll_introduction_message">Just touch the fingerprint sensor to unlock your phone, authorize purchases, or sign in to apps. Be careful whose fingerprints you add. Even one added print can do any of these things.</string>
+    <!-- Introduction detail message shown in the bottom of fingerprint enrollment dialog [CHAR LIMIT=NONE]-->
+    <string name="security_settings_fingerprint_enroll_introduction_bottom_message">Your fingerprint may be less secure than a strong pattern or PIN.</string>
     <!-- Introduction detail message shown in fingerprint enrollment dialog, when fingerprint unlock is disabled by device admin [CHAR LIMIT=NONE]-->
     <string name="security_settings_fingerprint_enroll_introduction_message_unlock_disabled">Use your fingerprint to unlock your phone or approve purchases.\n\nNote: You can\u2019t use your fingerprint to unlock this device. For more information, contact your organization\u2019s admin.</string>
     <!-- Introduction detail message shown in fingerprint enrollment screen in setup wizard. [CHAR LIMIT=NONE]-->
diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml
index f5549f9..06887f8 100644
--- a/res/xml/development_settings.xml
+++ b/res/xml/development_settings.xml
@@ -652,6 +652,7 @@
     <com.android.settings.development.autofill.AutofillPreferenceCategory
         android:key="debug_autofill_category"
         android:title="@string/debug_autofill_category"
+        settings:searchable="false"
         android:order="1100"> <!-- Incremented by 100 from last order (i.e. 1000) -->
 
         <ListPreference
diff --git a/src/com/android/settings/gestures/EmergencyGestureNumberOverridePreference.java b/src/com/android/settings/gestures/EmergencyGestureNumberOverridePreference.java
index d481b2e..6e0a6a7 100644
--- a/src/com/android/settings/gestures/EmergencyGestureNumberOverridePreference.java
+++ b/src/com/android/settings/gestures/EmergencyGestureNumberOverridePreference.java
@@ -20,7 +20,6 @@
 
 import android.content.Context;
 import android.content.DialogInterface;
-import android.provider.Settings;
 import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.view.View;
@@ -91,11 +90,9 @@
         if (which == BUTTON_POSITIVE) {
             final String input = mEditText.getText().toString();
             if (!TextUtils.isEmpty(input)) {
-                Settings.Secure.putString(getContext().getContentResolver(),
-                        Settings.Secure.EMERGENCY_GESTURE_CALL_NUMBER, input);
+                mEmergencyNumberUtils.setEmergencyNumberOverride(input);
             } else {
-                Settings.Secure.putString(getContext().getContentResolver(),
-                        Settings.Secure.EMERGENCY_GESTURE_CALL_NUMBER,
+                mEmergencyNumberUtils.setEmergencyNumberOverride(
                         mEmergencyNumberUtils.getDefaultPoliceNumber());
             }
         }
diff --git a/src/com/android/settings/gestures/EmergencyGestureNumberOverridePreferenceController.java b/src/com/android/settings/gestures/EmergencyGestureNumberOverridePreferenceController.java
index 28e4154..ecbd9c7 100644
--- a/src/com/android/settings/gestures/EmergencyGestureNumberOverridePreferenceController.java
+++ b/src/com/android/settings/gestures/EmergencyGestureNumberOverridePreferenceController.java
@@ -16,11 +16,12 @@
 
 package com.android.settings.gestures;
 
+import static com.android.settingslib.emergencynumber.EmergencyNumberUtils.EMERGENCY_NUMBER_OVERRIDE_AUTHORITY;
+
 import android.content.Context;
 import android.database.ContentObserver;
 import android.os.Handler;
 import android.os.Looper;
-import android.provider.Settings;
 import android.telephony.PhoneNumberUtils;
 import android.text.Spannable;
 
@@ -86,8 +87,8 @@
 
     @Override
     public void onStart() {
-        mContext.getContentResolver().registerContentObserver(Settings.Secure.getUriFor(
-                Settings.Secure.EMERGENCY_GESTURE_CALL_NUMBER), false, mSettingsObserver);
+        mContext.getContentResolver().registerContentObserver(EMERGENCY_NUMBER_OVERRIDE_AUTHORITY,
+                false, mSettingsObserver);
     }
 
     @Override
diff --git a/src/com/android/settings/homepage/contextualcards/ControllerRendererPool.java b/src/com/android/settings/homepage/contextualcards/ControllerRendererPool.java
index 755a105..f556018 100644
--- a/src/com/android/settings/homepage/contextualcards/ControllerRendererPool.java
+++ b/src/com/android/settings/homepage/contextualcards/ControllerRendererPool.java
@@ -56,7 +56,7 @@
         final Class<? extends ContextualCardController> clz =
                 ContextualCardLookupTable.getCardControllerClass(cardType);
         for (ContextualCardController controller : mControllers) {
-            if (controller.getClass() == clz) {
+            if (controller.getClass().getName().equals(clz.getName())) {
                 Log.d(TAG, "Controller is already there.");
                 return (T) controller;
             }
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelperTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelperTest.java
index 395748b..f5df4fa 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelperTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelperTest.java
@@ -48,8 +48,6 @@
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 
-import java.util.Collections;
-
 @RunWith(RobolectricTestRunner.class)
 public class SliceFullCardRendererHelperTest {
 
@@ -138,7 +136,7 @@
                 mActivity,
                 title.hashCode() /* requestCode */,
                 new Intent("test action"),
-                0  /* flags */);
+                PendingIntent.FLAG_IMMUTABLE);
         final SliceAction action
                 = SliceAction.createDeeplink(pendingIntent, icon, ListBuilder.SMALL_IMAGE, title);
         return new ListBuilder(mActivity, TEST_SLICE_URI, ListBuilder.INFINITY)
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceHalfCardRendererHelperTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceHalfCardRendererHelperTest.java
index 1286c27..a7112d2 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceHalfCardRendererHelperTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceHalfCardRendererHelperTest.java
@@ -106,7 +106,7 @@
                 mActivity,
                 title.hashCode() /* requestCode */,
                 new Intent("test action"),
-                0  /* flags */);
+                PendingIntent.FLAG_IMMUTABLE);
         final SliceAction action
                 = SliceAction.createDeeplink(pendingIntent, icon, ListBuilder.SMALL_IMAGE, title);
         return new ListBuilder(mActivity, TEST_SLICE_URI, ListBuilder.INFINITY)
