Use GLIF theme for Settings > Security > Screen lock

Bug: 24405946
Change-Id: I1fed96cbc228b6bb367637f83f9cd3bac2761417
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java
index 5eb5132..6db6f76 100644
--- a/src/com/android/settings/ChooseLockGeneric.java
+++ b/src/com/android/settings/ChooseLockGeneric.java
@@ -32,7 +32,6 @@
 import android.hardware.fingerprint.FingerprintManager;
 import android.hardware.fingerprint.FingerprintManager.RemovalCallback;
 import android.os.Bundle;
-import android.os.Process;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.os.storage.StorageManager;
@@ -42,9 +41,7 @@
 import android.text.TextUtils;
 import android.util.EventLog;
 import android.util.Log;
-import android.view.View;
 import android.view.accessibility.AccessibilityManager;
-import android.widget.Toast;
 
 import com.android.internal.logging.MetricsProto.MetricsEvent;
 import com.android.internal.widget.LockPatternUtils;
diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java
index b3826b7..5a8960c 100644
--- a/src/com/android/settings/ChooseLockPassword.java
+++ b/src/com/android/settings/ChooseLockPassword.java
@@ -25,7 +25,6 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
-import android.os.UserHandle;
 import android.text.Editable;
 import android.text.InputType;
 import android.text.Selection;
@@ -40,6 +39,7 @@
 import android.view.ViewGroup;
 import android.view.inputmethod.EditorInfo;
 import android.widget.Button;
+import android.widget.LinearLayout;
 import android.widget.TextView;
 import android.widget.TextView.OnEditorActionListener;
 
@@ -50,6 +50,7 @@
 import com.android.internal.widget.PasswordEntryKeyboardView;
 import com.android.internal.widget.TextViewInputDisabler;
 import com.android.settings.notification.RedactionInterstitial;
+import com.android.setupwizardlib.GlifLayout;
 
 public class ChooseLockPassword extends SettingsActivity {
     public static final String PASSWORD_MIN_KEY = "lockscreen.password_min";
@@ -143,6 +144,8 @@
         super.onCreate(savedInstanceState);
         CharSequence msg = getText(R.string.lockpassword_choose_your_password_header);
         setTitle(msg);
+        LinearLayout layout = (LinearLayout) findViewById(R.id.content_parent);
+        layout.setFitsSystemWindows(false);
     }
 
     public static class ChooseLockPasswordFragment extends InstrumentedFragment
@@ -287,7 +290,10 @@
         @Override
         public View onCreateView(LayoutInflater inflater, ViewGroup container,
                 Bundle savedInstanceState) {
-            return inflater.inflate(R.layout.choose_lock_password, container, false);
+            GlifLayout layout = (GlifLayout) inflater.inflate(
+                    R.layout.choose_lock_password, container, false);
+            layout.setHeaderText(getActivity().getTitle());
+            return layout;
         }
 
         @Override
diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java
index 2e9f767..59fa2c7 100644
--- a/src/com/android/settings/ChooseLockPattern.java
+++ b/src/com/android/settings/ChooseLockPattern.java
@@ -21,12 +21,12 @@
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
-import android.os.UserHandle;
 import android.util.Log;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.LinearLayout;
 import android.widget.TextView;
 
 import com.android.internal.logging.MetricsProto.MetricsEvent;
@@ -37,6 +37,7 @@
 import com.android.internal.widget.LockPatternView.Cell;
 import com.android.internal.widget.LockPatternView.DisplayMode;
 import com.android.settings.notification.RedactionInterstitial;
+import com.android.setupwizardlib.GlifLayout;
 import com.google.android.collect.Lists;
 
 import java.util.ArrayList;
@@ -113,6 +114,8 @@
         super.onCreate(savedInstanceState);
         CharSequence msg = getText(R.string.lockpassword_choose_your_pattern_header);
         setTitle(msg);
+        LinearLayout layout = (LinearLayout) findViewById(R.id.content_parent);
+        layout.setFitsSystemWindows(false);
     }
 
     @Override
@@ -391,7 +394,10 @@
         @Override
         public View onCreateView(LayoutInflater inflater, ViewGroup container,
                 Bundle savedInstanceState) {
-            return inflater.inflate(R.layout.choose_lock_pattern, container, false);
+            final GlifLayout layout = (GlifLayout) inflater.inflate(
+                    R.layout.choose_lock_pattern, container, false);
+            layout.setHeaderText(getActivity().getTitle());
+            return layout;
         }
 
         @Override
diff --git a/src/com/android/settings/EncryptionInterstitial.java b/src/com/android/settings/EncryptionInterstitial.java
index e9e2a7c..d34b456 100644
--- a/src/com/android/settings/EncryptionInterstitial.java
+++ b/src/com/android/settings/EncryptionInterstitial.java
@@ -23,19 +23,26 @@
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.content.res.Resources;
 import android.os.Bundle;
 import android.support.v7.preference.Preference;
+import android.support.v7.widget.RecyclerView;
 import android.util.Log;
 import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
 import android.view.accessibility.AccessibilityManager;
+import android.widget.LinearLayout;
 import android.widget.TextView;
 
 import com.android.internal.logging.MetricsProto.MetricsEvent;
+import com.android.settings.utils.SettingsDividerItemDecoration;
+import com.android.setupwizardlib.GlifPreferenceLayout;
 
 import java.util.List;
 
 public class EncryptionInterstitial extends SettingsActivity {
-    private final static String TAG = EncryptionInterstitial.class.getSimpleName();
+    private static final String TAG = EncryptionInterstitial.class.getSimpleName();
 
     protected static final String EXTRA_PASSWORD_QUALITY = "extra_password_quality";
     protected static final String EXTRA_UNLOCK_METHOD_INTENT = "extra_unlock_method_intent";
@@ -63,6 +70,13 @@
                 .putExtra(EXTRA_UNLOCK_METHOD_INTENT, unlockMethodIntent);
     }
 
+    @Override
+    protected void onCreate(Bundle savedInstance) {
+        super.onCreate(savedInstance);
+        LinearLayout layout = (LinearLayout) findViewById(R.id.content_parent);
+        layout.setFitsSystemWindows(false);
+    }
+
     public static class EncryptionInterstitialFragment extends SettingsPreferenceFragment
             implements DialogInterface.OnClickListener {
 
@@ -126,7 +140,8 @@
                     disableId = R.string.encrypt_dont_require_password;
                     break;
             }
-            TextView message = createHeaderView();
+            TextView message = (TextView) LayoutInflater.from(getActivity()).inflate(
+                    R.layout.encryption_interstitial_header, null, false);
             message.setText(msgId);
             setHeaderView(message);
 
@@ -138,10 +153,25 @@
                     EXTRA_REQUIRE_PASSWORD, true));
         }
 
-        protected TextView createHeaderView() {
-            TextView message = (TextView) LayoutInflater.from(getActivity()).inflate(
-                    R.layout.encryption_interstitial_header, null, false);
-            return message;
+        @Override
+        public void onViewCreated(View view, Bundle savedInstanceState) {
+            super.onViewCreated(view, savedInstanceState);
+            GlifPreferenceLayout layout = (GlifPreferenceLayout) view;
+            layout.setDividerItemDecoration(new SettingsDividerItemDecoration(getContext()));
+
+            layout.setIcon(getContext().getDrawable(R.drawable.ic_lock));
+            layout.setHeaderText(getActivity().getTitle());
+
+            // Use the dividers in SetupWizardRecyclerLayout. Suppress the dividers in
+            // PreferenceFragment.
+            setDivider(null);
+        }
+
+        @Override
+        public RecyclerView onCreateRecyclerView(LayoutInflater inflater, ViewGroup parent,
+                Bundle savedInstanceState) {
+            GlifPreferenceLayout layout = (GlifPreferenceLayout) parent;
+            return layout.onCreateRecyclerView(inflater, parent, savedInstanceState);
         }
 
         protected void startLockIntent() {
diff --git a/src/com/android/settings/SetupChooseLockPassword.java b/src/com/android/settings/SetupChooseLockPassword.java
index 94cc728..f0a9a26 100644
--- a/src/com/android/settings/SetupChooseLockPassword.java
+++ b/src/com/android/settings/SetupChooseLockPassword.java
@@ -21,13 +21,8 @@
 import android.content.Intent;
 import android.content.res.Resources;
 import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
 import android.widget.LinearLayout;
 
-import com.android.setupwizardlib.GlifLayout;
-
 /**
  * Setup Wizard's version of ChooseLockPassword screen. It inherits the logic and basic structure
  * from ChooseLockPassword class, and should remain similar to that behaviorally. This class should
@@ -90,22 +85,6 @@
 
     public static class SetupChooseLockPasswordFragment extends ChooseLockPasswordFragment {
 
-        private GlifLayout mLayout;
-
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            mLayout = (GlifLayout) inflater.inflate(
-                    R.layout.setup_choose_lock_password, container, false);
-            return mLayout;
-        }
-
-        @Override
-        public void onViewCreated(View view, Bundle savedInstanceState) {
-            super.onViewCreated(view, savedInstanceState);
-            mLayout.setHeaderText(getActivity().getTitle());
-        }
-
         @Override
         protected Intent getRedactionInterstitialIntent(Context context) {
             return null;
diff --git a/src/com/android/settings/SetupChooseLockPattern.java b/src/com/android/settings/SetupChooseLockPattern.java
index 2978196..09b951e 100644
--- a/src/com/android/settings/SetupChooseLockPattern.java
+++ b/src/com/android/settings/SetupChooseLockPattern.java
@@ -20,14 +20,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.Resources;
-import android.os.Bundle;
 import android.os.UserHandle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.LinearLayout;
-
-import com.android.setupwizardlib.GlifLayout;
 
 /**
  * Setup Wizard's version of ChooseLockPattern screen. It inherits the logic and basic structure
@@ -71,13 +64,6 @@
     }
 
     @Override
-    protected void onCreate(Bundle savedInstance) {
-        super.onCreate(savedInstance);
-        LinearLayout layout = (LinearLayout) findViewById(R.id.content_parent);
-        layout.setFitsSystemWindows(false);
-    }
-
-    @Override
     protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
         resid = SetupWizardUtils.getTheme(getIntent());
         super.onApplyThemeResource(theme, resid, first);
@@ -86,15 +72,6 @@
     public static class SetupChooseLockPatternFragment extends ChooseLockPatternFragment {
 
         @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            final GlifLayout layout = (GlifLayout) inflater.inflate(
-                    R.layout.setup_choose_lock_pattern, container, false);
-            layout.setHeaderText(getActivity().getTitle());
-            return layout;
-        }
-
-        @Override
         protected Intent getRedactionInterstitialIntent(Context context) {
             return null;
         }
diff --git a/src/com/android/settings/SetupEncryptionInterstitial.java b/src/com/android/settings/SetupEncryptionInterstitial.java
index 56585b1..59e4d07 100644
--- a/src/com/android/settings/SetupEncryptionInterstitial.java
+++ b/src/com/android/settings/SetupEncryptionInterstitial.java
@@ -25,7 +25,6 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.LinearLayout;
-import android.widget.TextView;
 
 import com.android.settings.utils.SettingsDividerItemDecoration;
 import com.android.setupwizardlib.GlifPreferenceLayout;
@@ -95,13 +94,6 @@
         }
 
         @Override
-        protected TextView createHeaderView() {
-            TextView message = (TextView) LayoutInflater.from(getActivity()).inflate(
-                    R.layout.setup_encryption_interstitial_header, null, false);
-            return message;
-        }
-
-        @Override
         public RecyclerView onCreateRecyclerView(LayoutInflater inflater, ViewGroup parent,
                                                  Bundle savedInstanceState) {
             GlifPreferenceLayout layout = (GlifPreferenceLayout) parent;
diff --git a/src/com/android/settings/SetupRedactionInterstitial.java b/src/com/android/settings/SetupRedactionInterstitial.java
index 225fe46..d527585 100644
--- a/src/com/android/settings/SetupRedactionInterstitial.java
+++ b/src/com/android/settings/SetupRedactionInterstitial.java
@@ -19,11 +19,8 @@
 import android.content.Intent;
 import android.content.res.Resources;
 import android.os.Bundle;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 import android.widget.Button;
-import android.widget.LinearLayout;
 
 import com.android.settings.notification.RedactionInterstitial;
 
@@ -55,39 +52,8 @@
         super.onApplyThemeResource(theme, resid, first);
     }
 
-    @Override
-    protected void onCreate(Bundle savedInstance) {
-        super.onCreate(savedInstance);
-        LinearLayout layout = (LinearLayout) findViewById(R.id.content_parent);
-        layout.setFitsSystemWindows(false);
-    }
+    public static class SetupRedactionInterstitialFragment extends RedactionInterstitialFragment {
 
-    public static class SetupRedactionInterstitialFragment extends RedactionInterstitialFragment
-            implements View.OnClickListener {
-
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            return inflater.inflate(R.layout.setup_redaction_interstitial, container, false);
-        }
-
-        @Override
-        public void onViewCreated(View view, Bundle savedInstanceState) {
-            super.onViewCreated(view, savedInstanceState);
-            final Button button = (Button) view.findViewById(R.id.redaction_next_button);
-            button.setOnClickListener(this);
-        }
-
-        @Override
-        public void onClick(View v) {
-            if (v.getId() == R.id.redaction_next_button) {
-                final SetupRedactionInterstitial activity =
-                        (SetupRedactionInterstitial) getActivity();
-                if (activity != null) {
-                    activity.setResult(RESULT_OK, activity.getResultIntentData());
-                    finish();
-                }
-            }
-        }
+        // Setup wizard specific UI customizations can be done here
     }
 }
diff --git a/src/com/android/settings/notification/RedactionInterstitial.java b/src/com/android/settings/notification/RedactionInterstitial.java
index 84ae35d..b3ef85e 100644
--- a/src/com/android/settings/notification/RedactionInterstitial.java
+++ b/src/com/android/settings/notification/RedactionInterstitial.java
@@ -25,8 +25,9 @@
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.CheckBox;
+import android.widget.Button;
 import android.widget.CompoundButton;
+import android.widget.LinearLayout;
 import android.widget.RadioButton;
 import android.widget.RadioGroup;
 import android.widget.TextView;
@@ -59,6 +60,13 @@
         return RedactionInterstitialFragment.class.getName().equals(fragmentName);
     }
 
+    @Override
+    protected void onCreate(Bundle savedInstance) {
+        super.onCreate(savedInstance);
+        LinearLayout layout = (LinearLayout) findViewById(R.id.content_parent);
+        layout.setFitsSystemWindows(false);
+    }
+
     /**
      * Create an intent for launching RedactionInterstitial.
      * @return An intent to launch the activity is if is available, @null if the activity is not
@@ -66,10 +74,6 @@
      */
     public static Intent createStartIntent(Context ctx, int userId) {
         return new Intent(ctx, RedactionInterstitial.class)
-                .putExtra(EXTRA_PREFS_SHOW_BUTTON_BAR, true)
-                .putExtra(EXTRA_PREFS_SET_BACK_TEXT, (String) null)
-                .putExtra(EXTRA_PREFS_SET_NEXT_TEXT, ctx.getString(
-                        R.string.app_notifications_dialog_done))
                 .putExtra(EXTRA_SHOW_FRAGMENT_TITLE_RESID,
                         Utils.isManagedProfile(UserManager.get(ctx), userId)
                             ? R.string.lock_screen_notifications_interstitial_title_profile
@@ -78,7 +82,8 @@
     }
 
     public static class RedactionInterstitialFragment extends SettingsPreferenceFragment
-            implements RadioGroup.OnCheckedChangeListener, CompoundButton.OnCheckedChangeListener {
+            implements RadioGroup.OnCheckedChangeListener, CompoundButton.OnCheckedChangeListener,
+            View.OnClickListener {
 
         private RadioGroup mRadioGroup;
         private RestrictedRadioButton mShowAllButton;
@@ -120,6 +125,20 @@
                 ((RadioButton) view.findViewById(R.id.hide_all))
                     .setText(R.string.lock_screen_notifications_summary_disable_profile);
             }
+
+            final Button button = (Button) view.findViewById(R.id.redaction_done_button);
+            button.setOnClickListener(this);
+        }
+
+        @Override
+        public void onClick(View v) {
+            if (v.getId() == R.id.redaction_done_button) {
+                final RedactionInterstitial activity = (RedactionInterstitial) getActivity();
+                if (activity != null) {
+                    activity.setResult(RESULT_OK, activity.getResultIntentData());
+                    finish();
+                }
+            }
         }
 
         @Override