Loading src/com/android/settings/password/ChooseLockPassword.java +2 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.view.inputmethod.EditorInfo; import android.widget.LinearLayout; import android.widget.TextView; Loading Loading @@ -176,6 +177,7 @@ public class ChooseLockPassword extends SettingsActivity { setTitle(msg); findViewById(R.id.content_parent).setFitsSystemWindows(false); getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE); } public static class ChooseLockPasswordFragment extends InstrumentedFragment Loading src/com/android/settings/password/ChooseLockPattern.java +2 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.view.ViewGroup; import android.view.WindowManager; import android.widget.LinearLayout; import android.widget.ScrollView; import android.view.WindowManager; import android.widget.TextView; import androidx.fragment.app.Fragment; Loading Loading @@ -166,6 +167,7 @@ public class ChooseLockPattern extends SettingsActivity { setTitle(msg); findViewById(R.id.content_parent).setFitsSystemWindows(false); getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE); } @Override Loading src/com/android/settings/users/EditUserPhotoController.java +5 −4 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.content.Context; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; Loading Loading @@ -280,13 +281,13 @@ public class EditUserPhotoController { } private boolean startSystemActivityForResult(Intent intent, int code) { ActivityInfo info = intent.resolveActivityInfo(mContext.getPackageManager(), PackageManager.MATCH_SYSTEM_ONLY); if (info == null) { List<ResolveInfo> resolveInfos = mContext.getPackageManager() .queryIntentActivities(intent, PackageManager.MATCH_SYSTEM_ONLY); if (resolveInfos.isEmpty()) { Log.w(TAG, "No system package activity could be found for code " + code); return false; } intent.setPackage(info.packageName); intent.setPackage(resolveInfos.get(0).activityInfo.packageName); mFragment.startActivityForResult(intent, code); return true; } Loading tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java +16 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_NUMERIC; import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX; import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_SOMETHING; import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED; import static android.view.WindowManager.LayoutParams.FLAG_SECURE; import static com.android.internal.widget.LockPatternUtils.PASSWORD_TYPE_KEY; import static com.android.settings.password.ChooseLockGeneric.CONFIRM_CREDENTIALS; Loading Loading @@ -146,6 +147,21 @@ public class ChooseLockPasswordTest { assertThat(intent.hasExtra(EXTRA_KEY_REQUESTED_MIN_COMPLEXITY)).isFalse(); } @Test public void activity_shouldHaveSecureFlag() { PasswordPolicy policy = new PasswordPolicy(); policy.quality = PASSWORD_QUALITY_ALPHABETIC; policy.length = 10; Intent intent = createIntentForPasswordValidation( /* minMetrics */ policy.getMinMetrics(), /* minComplexity= */ PASSWORD_COMPLEXITY_NONE, /* passwordType= */ PASSWORD_QUALITY_ALPHABETIC); ChooseLockPassword activity = buildChooseLockPasswordActivity(intent); final int flags = activity.getWindow().getAttributes().flags; assertThat(flags & FLAG_SECURE).isEqualTo(FLAG_SECURE); } @Test public void processAndValidatePasswordRequirements_noMinPasswordComplexity() { mShadowDpm.setPasswordQuality(PASSWORD_QUALITY_ALPHABETIC); Loading tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java +10 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.settings.password; import static android.view.WindowManager.LayoutParams.FLAG_SECURE; import static com.google.common.truth.Truth.assertThat; import static org.robolectric.RuntimeEnvironment.application; Loading Loading @@ -111,6 +113,14 @@ public class ChooseLockPatternTest { assertThat(iconView.getVisibility()).isEqualTo(View.GONE); } @Test public void activity_shouldHaveSecureFlag() { final ChooseLockPattern activity = Robolectric.buildActivity( ChooseLockPattern.class, new IntentBuilder(application).build()).setup().get(); final int flags = activity.getWindow().getAttributes().flags; assertThat(flags & FLAG_SECURE).isEqualTo(FLAG_SECURE); } private ChooseLockPattern createActivity(boolean addFingerprintExtra) { return Robolectric.buildActivity( ChooseLockPattern.class, Loading Loading
src/com/android/settings/password/ChooseLockPassword.java +2 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.view.inputmethod.EditorInfo; import android.widget.LinearLayout; import android.widget.TextView; Loading Loading @@ -176,6 +177,7 @@ public class ChooseLockPassword extends SettingsActivity { setTitle(msg); findViewById(R.id.content_parent).setFitsSystemWindows(false); getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE); } public static class ChooseLockPasswordFragment extends InstrumentedFragment Loading
src/com/android/settings/password/ChooseLockPattern.java +2 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.view.ViewGroup; import android.view.WindowManager; import android.widget.LinearLayout; import android.widget.ScrollView; import android.view.WindowManager; import android.widget.TextView; import androidx.fragment.app.Fragment; Loading Loading @@ -166,6 +167,7 @@ public class ChooseLockPattern extends SettingsActivity { setTitle(msg); findViewById(R.id.content_parent).setFitsSystemWindows(false); getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE); } @Override Loading
src/com/android/settings/users/EditUserPhotoController.java +5 −4 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.content.Context; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; Loading Loading @@ -280,13 +281,13 @@ public class EditUserPhotoController { } private boolean startSystemActivityForResult(Intent intent, int code) { ActivityInfo info = intent.resolveActivityInfo(mContext.getPackageManager(), PackageManager.MATCH_SYSTEM_ONLY); if (info == null) { List<ResolveInfo> resolveInfos = mContext.getPackageManager() .queryIntentActivities(intent, PackageManager.MATCH_SYSTEM_ONLY); if (resolveInfos.isEmpty()) { Log.w(TAG, "No system package activity could be found for code " + code); return false; } intent.setPackage(info.packageName); intent.setPackage(resolveInfos.get(0).activityInfo.packageName); mFragment.startActivityForResult(intent, code); return true; } Loading
tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java +16 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_NUMERIC; import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX; import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_SOMETHING; import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED; import static android.view.WindowManager.LayoutParams.FLAG_SECURE; import static com.android.internal.widget.LockPatternUtils.PASSWORD_TYPE_KEY; import static com.android.settings.password.ChooseLockGeneric.CONFIRM_CREDENTIALS; Loading Loading @@ -146,6 +147,21 @@ public class ChooseLockPasswordTest { assertThat(intent.hasExtra(EXTRA_KEY_REQUESTED_MIN_COMPLEXITY)).isFalse(); } @Test public void activity_shouldHaveSecureFlag() { PasswordPolicy policy = new PasswordPolicy(); policy.quality = PASSWORD_QUALITY_ALPHABETIC; policy.length = 10; Intent intent = createIntentForPasswordValidation( /* minMetrics */ policy.getMinMetrics(), /* minComplexity= */ PASSWORD_COMPLEXITY_NONE, /* passwordType= */ PASSWORD_QUALITY_ALPHABETIC); ChooseLockPassword activity = buildChooseLockPasswordActivity(intent); final int flags = activity.getWindow().getAttributes().flags; assertThat(flags & FLAG_SECURE).isEqualTo(FLAG_SECURE); } @Test public void processAndValidatePasswordRequirements_noMinPasswordComplexity() { mShadowDpm.setPasswordQuality(PASSWORD_QUALITY_ALPHABETIC); Loading
tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java +10 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.settings.password; import static android.view.WindowManager.LayoutParams.FLAG_SECURE; import static com.google.common.truth.Truth.assertThat; import static org.robolectric.RuntimeEnvironment.application; Loading Loading @@ -111,6 +113,14 @@ public class ChooseLockPatternTest { assertThat(iconView.getVisibility()).isEqualTo(View.GONE); } @Test public void activity_shouldHaveSecureFlag() { final ChooseLockPattern activity = Robolectric.buildActivity( ChooseLockPattern.class, new IntentBuilder(application).build()).setup().get(); final int flags = activity.getWindow().getAttributes().flags; assertThat(flags & FLAG_SECURE).isEqualTo(FLAG_SECURE); } private ChooseLockPattern createActivity(boolean addFingerprintExtra) { return Robolectric.buildActivity( ChooseLockPattern.class, Loading