Set device credential's Window flag to be SECURE.

This prevents showing any pattern/pin in recent list.

Fixes: 64339515
Bug: 38258991
Merged-In: I99c283dd4a1f2d579f565ccf5839a705e75ed6fc
Test: visual
Test: runtest --path \
        tests/app/src/com/android/settings/password/ChooseLockGenericTest.java

Change-Id: Ia9935ef710cf1795d9ce464e0a9edff75be9c0c3
(cherry picked from commit e3c2e51f67959398a367dc5d6162c0119abd0058)
diff --git a/src/com/android/settings/ConfirmDeviceCredentialBaseActivity.java b/src/com/android/settings/ConfirmDeviceCredentialBaseActivity.java
index 489dbbe..d040148 100644
--- a/src/com/android/settings/ConfirmDeviceCredentialBaseActivity.java
+++ b/src/com/android/settings/ConfirmDeviceCredentialBaseActivity.java
@@ -63,7 +63,7 @@
             LinearLayout layout = (LinearLayout) findViewById(R.id.content_parent);
             layout.setFitsSystemWindows(false);
         }
-
+        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
         mIsKeyguardLocked = savedState == null
                 ? getSystemService(KeyguardManager.class).isKeyguardLocked()
                 : savedState.getBoolean(STATE_IS_KEYGUARD_LOCKED, false);
diff --git a/tests/app/src/com/android/settings/ChooseLockGenericTest.java b/tests/app/src/com/android/settings/ChooseLockGenericTest.java
index 924e716..e52d6f7 100644
--- a/tests/app/src/com/android/settings/ChooseLockGenericTest.java
+++ b/tests/app/src/com/android/settings/ChooseLockGenericTest.java
@@ -18,9 +18,7 @@
 
 import static android.support.test.InstrumentationRegistry.getInstrumentation;
 import static android.support.test.InstrumentationRegistry.getTargetContext;
-
 import static com.google.common.truth.Truth.assertThat;
-
 import static org.junit.Assert.assertTrue;
 
 import android.app.Activity;
@@ -39,6 +37,7 @@
 import android.support.test.uiautomator.UiObject;
 import android.support.test.uiautomator.UiSelector;
 import android.text.format.DateUtils;
+import android.view.WindowManager;
 
 import com.android.internal.widget.LockPatternUtils;
 
@@ -93,7 +92,9 @@
             // WHEN ChooseLockGeneric is launched with no extras.
             mChooseLockGenericActivityRule.launchActivity(null /* No extras */);
             // THEN ConfirmLockPassword.InternalActivity is shown.
-            assertThat(getCurrentActivity())
+            final Activity activity = getCurrentActivity();
+            assertThat(isSecureWindow(activity)).isTrue();
+            assertThat(activity)
                     .isInstanceOf(ConfirmLockPassword.InternalActivity.class);
         } finally {
             finishAllAppTasks();
@@ -110,7 +111,9 @@
             // WHEN ChooseLockGeneric is launched with extras to by-pass lock password confirmation.
             mChooseLockGenericActivityRule.launchActivity(PHISHING_ATTACK_INTENT);
             // THEN ConfirmLockPassword.InternalActivity is still shown.
-            assertThat(getCurrentActivity())
+            final Activity activity = getCurrentActivity();
+            assertThat(isSecureWindow(activity)).isTrue();
+            assertThat(activity)
                     .isInstanceOf(ConfirmLockPassword.InternalActivity.class);
         } finally {
             finishAllAppTasks();
@@ -217,4 +220,9 @@
         mDevice.pressEnter();
         mDevice.waitForIdle();
     }
+
+    private boolean isSecureWindow(Activity activity) {
+        return (activity.getWindow().getAttributes().flags & WindowManager.LayoutParams.FLAG_SECURE)
+                != 0;
+    }
 }