diff --git a/res/values/strings.xml b/res/values/strings.xml
index 16ab708..469ac3d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -735,6 +735,10 @@
     <string name="security_settings_fingerprint_enroll_introduction_cancel">Cancel</string>
     <!-- Button text to continue to the next screen from the introduction [CHAR LIMIT=22] -->
     <string name="security_settings_fingerprint_enroll_introduction_continue">Continue</string>
+    <!-- Button text to cancel enrollment from the introduction (this string variant is used while in setup wizard) [CHAR LIMIT=22] -->
+    <string name="security_settings_fingerprint_enroll_introduction_cancel_setup">Skip</string>
+    <!-- Button text to continue to the next screen from the introduction (this string variant is used while in setup wizard) [CHAR LIMIT=22] -->
+    <string name="security_settings_fingerprint_enroll_introduction_continue_setup">Add fingerprint</string>
     <!-- Dialog text shown when the user tries to skip setting up a screen lock, warning them of potential consequences of not doing so, including loss of factory reset protection. (tablet) [CHAR LIMIT=NONE] -->
     <string name="lock_screen_intro_skip_dialog_text_frp" product="tablet">Device protection features will not be activated. You won\u2019t be able to prevent others from using this tablet if it\u2019s lost, stolen or wiped.</string>
     <!-- Dialog text shown when the user tries to skip setting up a screen lock, warning them of potential consequences of not doing so, including loss of factory reset protection. (device) [CHAR LIMIT=NONE] -->
diff --git a/src/com/android/settings/fingerprint/SetupFingerprintEnrollIntroduction.java b/src/com/android/settings/fingerprint/SetupFingerprintEnrollIntroduction.java
index aa1a068..f816682 100644
--- a/src/com/android/settings/fingerprint/SetupFingerprintEnrollIntroduction.java
+++ b/src/com/android/settings/fingerprint/SetupFingerprintEnrollIntroduction.java
@@ -19,8 +19,6 @@
 import android.content.Intent;
 import android.content.res.Resources;
 import android.os.UserHandle;
-import android.support.v14.preference.PreferenceFragment;
-import android.view.View;
 import android.widget.Button;
 
 import com.android.internal.logging.MetricsProto.MetricsEvent;
@@ -29,6 +27,8 @@
 import com.android.settings.SetupChooseLockGeneric;
 import com.android.settings.SetupWizardUtils;
 import com.android.setupwizardlib.SetupWizardRecyclerLayout;
+import com.android.setupwizardlib.items.Item;
+import com.android.setupwizardlib.items.RecyclerItemAdapter;
 import com.android.setupwizardlib.view.NavigationBar;
 
 public class SetupFingerprintEnrollIntroduction extends FingerprintEnrollIntroduction
@@ -56,12 +56,22 @@
 
     @Override
     protected void initViews() {
+        final SetupWizardRecyclerLayout layout =
+                (SetupWizardRecyclerLayout) findViewById(R.id.setup_wizard_layout);
+        final RecyclerItemAdapter adapter = (RecyclerItemAdapter) layout.getAdapter();
+        final Item nextItem = (Item) adapter.findItemById(R.id.next_button);
+        nextItem.setTitle(
+                getText(R.string.security_settings_fingerprint_enroll_introduction_continue_setup));
+
+        final Item cancelItem = (Item) adapter.findItemById(R.id.cancel_button);
+        cancelItem.setTitle(
+                getText(R.string.security_settings_fingerprint_enroll_introduction_cancel_setup));
+
         SetupWizardUtils.setImmersiveMode(this);
         getNavigationBar().setNavigationBarListener(this);
         Button nextButton = getNavigationBar().getNextButton();
         nextButton.setText(null);
         nextButton.setEnabled(false);
-        SetupWizardRecyclerLayout layout = (SetupWizardRecyclerLayout) getSetupWizardLayout();
         layout.setDividerInset(getResources().getDimensionPixelSize(
                 R.dimen.suw_items_icon_divider_inset));
     }
