Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e3c2e51f authored by Fan Zhang's avatar Fan Zhang
Browse files

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
parent 94c52029
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -63,7 +63,7 @@ public abstract class ConfirmDeviceCredentialBaseActivity extends SettingsActivi
            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);
+12 −4
Original line number Diff line number Diff line
@@ -18,9 +18,7 @@ package com.android.settings;

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.UiDevice;
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 @@ public class ChooseLockGenericTest {
            // 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 @@ public class ChooseLockGenericTest {
            // 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 @@ public class ChooseLockGenericTest {
        mDevice.pressEnter();
        mDevice.waitForIdle();
    }

    private boolean isSecureWindow(Activity activity) {
        return (activity.getWindow().getAttributes().flags & WindowManager.LayoutParams.FLAG_SECURE)
                != 0;
    }
}