diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 3764b95..5cdd5fd 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1607,33 +1607,35 @@
                 android:value="true" />
         </activity>
 
-        <activity-alias android:name=".suggestion.ChooseLockGeneric"
-            android:icon="@drawable/ic_settings_security"
-            android:targetActivity=".ChooseLockGeneric">
+        <activity android:name=".Settings$ScreenLockSuggestionActivity"
+            android:icon="@drawable/ic_settings_security">
             <intent-filter android:priority="1">
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="com.android.settings.suggested.category.LOCK_SCREEN" />
             </intent-filter>
+            <meta-data android:name="com.android.settings.dismiss"
+                       android:value="0,30" />
             <meta-data android:name="com.android.settings.title"
                        android:resource="@string/suggested_lock_settings_title" />
             <meta-data android:name="com.android.settings.summary"
                        android:resource="@string/suggested_lock_settings_summary" />
-        </activity-alias>
+        </activity>
 
-        <activity-alias android:name=".suggestion.FingerprintEnrollIntroduction"
-            android:icon="@drawable/ic_settings_security"
-            android:targetActivity=".fingerprint.FingerprintEnrollIntroduction">
+        <activity android:name=".Settings$FingerprintEnrollSuggestionActivity"
+            android:icon="@drawable/ic_settings_security">
             <intent-filter android:priority="2">
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="com.android.settings.suggested.category.LOCK_SCREEN" />
             </intent-filter>
+            <meta-data android:name="com.android.settings.dismiss"
+                       android:value="0,30" />
             <meta-data android:name="com.android.settings.require_feature"
                 android:value="android.hardware.fingerprint" />
             <meta-data android:name="com.android.settings.title"
                 android:resource="@string/suggested_lock_settings_title" />
             <meta-data android:name="com.android.settings.summary"
                 android:resource="@string/suggested_lock_settings_summary" />
-        </activity-alias>
+        </activity>
 
         <activity android:name="ChooseLockGeneric$InternalActivity" android:exported="false"
             android:label="@string/lockpassword_choose_lock_generic_header"
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java
index d2eae7e..b44ee48 100644
--- a/src/com/android/settings/ChooseLockGeneric.java
+++ b/src/com/android/settings/ChooseLockGeneric.java
@@ -24,11 +24,9 @@
 import android.app.Fragment;
 import android.app.FragmentManager;
 import android.app.admin.DevicePolicyManager;
-import android.content.ComponentName;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
-import android.content.pm.PackageManager;
 import android.hardware.fingerprint.Fingerprint;
 import android.hardware.fingerprint.FingerprintManager;
 import android.hardware.fingerprint.FingerprintManager.RemovalCallback;
@@ -269,7 +267,6 @@
                     || requestCode == ENABLE_ENCRYPTION_REQUEST) {
                 if (resultCode != RESULT_CANCELED) {
                     getActivity().setResult(resultCode, data);
-                    disableScreenLockSuggestion();
                     finish();
                 }
             } else {
@@ -548,30 +545,9 @@
                 getActivity().setResult(Activity.RESULT_OK);
             } else {
                 removeAllFingerprintTemplatesAndFinish();
-                disableScreenLockSuggestion();
             }
         }
 
-        private void disableScreenLockSuggestion() {
-            final ComponentName suggestionChooseLock = new ComponentName("com.android.settings",
-                    "com.android.settings.suggestion.ChooseLockGeneric");
-            disableComponent(suggestionChooseLock);
-            PackageManager pm = getContext().getPackageManager();
-            if (pm.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) {
-                final ComponentName suggestionFingerprint = new ComponentName(
-                        "com.android.settings",
-                        "com.android.settings.suggestion.FingerprintEnrollIntroduction");
-                disableComponent(suggestionFingerprint);
-            }
-        }
-
-        private void disableComponent(ComponentName componentName) {
-            getContext().getPackageManager().setComponentEnabledSetting(
-                    componentName,
-                    PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
-                    PackageManager.DONT_KILL_APP);
-        }
-
         private Intent getIntentForUnlockMethod(int quality, boolean disabled) {
             Intent intent = null;
             final Context context = getActivity();
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 5d2468e..494fd3b 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -17,6 +17,7 @@
 package com.android.settings;
 
 import com.android.settings.applications.AppOpsSummary;
+import com.android.settings.fingerprint.FingerprintEnrollIntroduction;
 import com.android.settings.fingerprint.FingerprintSettings;
 
 /**
@@ -129,6 +130,10 @@
     public static class ZenModeAutomationSuggestionActivity extends SettingsActivity { /* empty */ }
     public static class WallpaperSuggestionActivity extends SettingsActivity { /* empty */ }
     public static class FingerprintSuggestionActivity extends FingerprintSettings { /* empty */ }
+    public static class FingerprintEnrollSuggestionActivity extends FingerprintEnrollIntroduction {
+        /* empty */
+    }
+    public static class ScreenLockSuggestionActivity extends ChooseLockGeneric { /* empty */ }
 
     // Categories.
     public static class WirelessSettings extends SettingsActivity { /* empty */ }
diff --git a/src/com/android/settings/dashboard/SuggestionsChecks.java b/src/com/android/settings/dashboard/SuggestionsChecks.java
index fde7bc1..d465942 100644
--- a/src/com/android/settings/dashboard/SuggestionsChecks.java
+++ b/src/com/android/settings/dashboard/SuggestionsChecks.java
@@ -18,6 +18,7 @@
 import android.app.IWallpaperManager;
 import android.app.IWallpaperManager.Stub;
 import android.app.IWallpaperManagerCallback;
+import android.app.KeyguardManager;
 import android.app.NotificationManager;
 import android.content.Context;
 import android.hardware.fingerprint.FingerprintManager;
@@ -26,7 +27,9 @@
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import com.android.ims.ImsManager;
+import com.android.settings.Settings.FingerprintEnrollSuggestionActivity;
 import com.android.settings.Settings.FingerprintSuggestionActivity;
+import com.android.settings.Settings.ScreenLockSuggestionActivity;
 import com.android.settings.Settings.WallpaperSuggestionActivity;
 import com.android.settings.Settings.WifiCallingSuggestionActivity;
 import com.android.settings.Settings.ZenModeAutomationSuggestionActivity;
@@ -55,10 +58,18 @@
             return isWifiCallingUnavailableOrEnabled();
         } else if (className.equals(FingerprintSuggestionActivity.class.getName())) {
             return isNotSingleFingerprintEnrolled();
+        } else if (className.equals(ScreenLockSuggestionActivity.class.getName())
+                || className.equals(FingerprintEnrollSuggestionActivity.class.getName())) {
+            return isDeviceSecured();
         }
         return false;
     }
 
+    private boolean isDeviceSecured() {
+        KeyguardManager km = mContext.getSystemService(KeyguardManager.class);
+        return km.isKeyguardSecure();
+    }
+
     private boolean isNotSingleFingerprintEnrolled() {
         FingerprintManager manager = mContext.getSystemService(FingerprintManager.class);
         return manager == null || manager.getEnrolledFingerprints().size() != 1;
