Merge "Fixed remote validation shows SetupRedaction" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
1a8c84dfb3
@@ -64,6 +64,7 @@ import com.android.internal.widget.LockPatternUtils;
|
|||||||
import com.android.internal.widget.LockscreenCredential;
|
import com.android.internal.widget.LockscreenCredential;
|
||||||
import com.android.internal.widget.TextViewInputDisabler;
|
import com.android.internal.widget.TextViewInputDisabler;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.SetupRedactionInterstitial;
|
||||||
import com.android.settingslib.animation.AppearAnimationUtils;
|
import com.android.settingslib.animation.AppearAnimationUtils;
|
||||||
import com.android.settingslib.animation.DisappearAnimationUtils;
|
import com.android.settingslib.animation.DisappearAnimationUtils;
|
||||||
|
|
||||||
@@ -723,6 +724,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity {
|
|||||||
Intent result = new Intent();
|
Intent result = new Intent();
|
||||||
if (mRemoteValidation && containsGatekeeperPasswordHandle(resultData)) {
|
if (mRemoteValidation && containsGatekeeperPasswordHandle(resultData)) {
|
||||||
result.putExtra(EXTRA_KEY_GK_PW_HANDLE, getGatekeeperPasswordHandle(resultData));
|
result.putExtra(EXTRA_KEY_GK_PW_HANDLE, getGatekeeperPasswordHandle(resultData));
|
||||||
|
SetupRedactionInterstitial.setEnabled(getContext(), true);
|
||||||
}
|
}
|
||||||
mCredentialCheckResultTracker.setResult(/* matched= */ true, result,
|
mCredentialCheckResultTracker.setResult(/* matched= */ true, result,
|
||||||
/* timeoutMs= */ 0, mEffectiveUserId);
|
/* timeoutMs= */ 0, mEffectiveUserId);
|
||||||
|
@@ -54,6 +54,7 @@ import com.android.internal.widget.LockPatternView;
|
|||||||
import com.android.internal.widget.LockPatternView.Cell;
|
import com.android.internal.widget.LockPatternView.Cell;
|
||||||
import com.android.internal.widget.LockscreenCredential;
|
import com.android.internal.widget.LockscreenCredential;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.SetupRedactionInterstitial;
|
||||||
import com.android.settingslib.animation.AppearAnimationCreator;
|
import com.android.settingslib.animation.AppearAnimationCreator;
|
||||||
import com.android.settingslib.animation.AppearAnimationUtils;
|
import com.android.settingslib.animation.AppearAnimationUtils;
|
||||||
import com.android.settingslib.animation.DisappearAnimationUtils;
|
import com.android.settingslib.animation.DisappearAnimationUtils;
|
||||||
@@ -751,6 +752,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity {
|
|||||||
Intent result = new Intent();
|
Intent result = new Intent();
|
||||||
if (mRemoteValidation && containsGatekeeperPasswordHandle(resultData)) {
|
if (mRemoteValidation && containsGatekeeperPasswordHandle(resultData)) {
|
||||||
result.putExtra(EXTRA_KEY_GK_PW_HANDLE, getGatekeeperPasswordHandle(resultData));
|
result.putExtra(EXTRA_KEY_GK_PW_HANDLE, getGatekeeperPasswordHandle(resultData));
|
||||||
|
SetupRedactionInterstitial.setEnabled(getContext(), true);
|
||||||
}
|
}
|
||||||
mCredentialCheckResultTracker.setResult(/* matched= */ true, result,
|
mCredentialCheckResultTracker.setResult(/* matched= */ true, result,
|
||||||
/* timeoutMs= */ 0, mEffectiveUserId);
|
/* timeoutMs= */ 0, mEffectiveUserId);
|
||||||
|
@@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
package com.android.settings.password;
|
package com.android.settings.password;
|
||||||
|
|
||||||
|
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
|
||||||
|
|
||||||
import static com.android.settings.password.ConfirmLockPassword.ConfirmLockPasswordFragment;
|
import static com.android.settings.password.ConfirmLockPassword.ConfirmLockPasswordFragment;
|
||||||
import static com.android.settings.password.TestUtils.GUESS_INVALID_RESULT;
|
import static com.android.settings.password.TestUtils.GUESS_INVALID_RESULT;
|
||||||
import static com.android.settings.password.TestUtils.GUESS_VALID_RESULT;
|
import static com.android.settings.password.TestUtils.GUESS_VALID_RESULT;
|
||||||
@@ -42,6 +44,7 @@ import static org.mockito.Mockito.verifyNoInteractions;
|
|||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.app.KeyguardManager;
|
import android.app.KeyguardManager;
|
||||||
import android.app.admin.ManagedSubscriptionsPolicy;
|
import android.app.admin.ManagedSubscriptionsPolicy;
|
||||||
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
@@ -55,6 +58,7 @@ import androidx.test.core.app.ApplicationProvider;
|
|||||||
|
|
||||||
import com.android.internal.widget.LockPatternUtils;
|
import com.android.internal.widget.LockPatternUtils;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.SetupRedactionInterstitial;
|
||||||
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
|
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
|
||||||
import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
|
import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
|
||||||
import com.android.settings.testutils.shadow.ShadowUserManager;
|
import com.android.settings.testutils.shadow.ShadowUserManager;
|
||||||
@@ -305,6 +309,32 @@ public class ConfirmLockPasswordTest {
|
|||||||
assertThat(mLockPatternUtils.isSecure(fragment.mEffectiveUserId)).isFalse();
|
assertThat(mLockPatternUtils.isSecure(fragment.mEffectiveUserId)).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onChosenLockSaveFinished_setsRedactionInterstitial() throws Exception {
|
||||||
|
// This test verifies that the RedactionInterstitial is available. This is the screen
|
||||||
|
// responsible for allowing the user to show sensitive lockscreen content. This
|
||||||
|
// also allows the Settings tile for RedactionInterstitial to appear in the "anything else"
|
||||||
|
// page during SUW.
|
||||||
|
final ConfirmDeviceCredentialBaseActivity activity =
|
||||||
|
buildConfirmDeviceCredentialBaseActivity(
|
||||||
|
ConfirmLockPassword.class,
|
||||||
|
createRemoteLockscreenValidationIntent(
|
||||||
|
KeyguardManager.PASSWORD, VALID_REMAINING_ATTEMPTS));
|
||||||
|
final ConfirmLockPasswordFragment fragment =
|
||||||
|
(ConfirmLockPasswordFragment) getConfirmDeviceCredentialBaseFragment(activity);
|
||||||
|
final Intent intent = new Intent();
|
||||||
|
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, 1L);
|
||||||
|
|
||||||
|
fragment.onChosenLockSaveFinished(true, intent);
|
||||||
|
|
||||||
|
final ComponentName componentName =
|
||||||
|
new ComponentName(mContext, SetupRedactionInterstitial.class);
|
||||||
|
final int isEnabled = mContext.getPackageManager()
|
||||||
|
.getComponentEnabledSetting(componentName);
|
||||||
|
|
||||||
|
assertThat(isEnabled).isEqualTo(COMPONENT_ENABLED_STATE_ENABLED);
|
||||||
|
}
|
||||||
|
|
||||||
private void triggerHandleNext(
|
private void triggerHandleNext(
|
||||||
ConfirmLockPasswordFragment fragment, ImeAwareEditText passwordEntry) {
|
ConfirmLockPasswordFragment fragment, ImeAwareEditText passwordEntry) {
|
||||||
passwordEntry.setText("Password");
|
passwordEntry.setText("Password");
|
||||||
|
@@ -16,6 +16,9 @@
|
|||||||
|
|
||||||
package com.android.settings.password;
|
package com.android.settings.password;
|
||||||
|
|
||||||
|
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
|
||||||
|
|
||||||
|
import static com.android.settings.password.ConfirmLockPattern.ConfirmLockPatternFragment;
|
||||||
import static com.android.settings.password.TestUtils.GUESS_INVALID_RESULT;
|
import static com.android.settings.password.TestUtils.GUESS_INVALID_RESULT;
|
||||||
import static com.android.settings.password.TestUtils.GUESS_VALID_RESULT;
|
import static com.android.settings.password.TestUtils.GUESS_VALID_RESULT;
|
||||||
import static com.android.settings.password.TestUtils.LOCKOUT_RESULT;
|
import static com.android.settings.password.TestUtils.LOCKOUT_RESULT;
|
||||||
@@ -39,6 +42,7 @@ import static org.mockito.Mockito.verifyNoInteractions;
|
|||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.app.KeyguardManager;
|
import android.app.KeyguardManager;
|
||||||
import android.app.admin.ManagedSubscriptionsPolicy;
|
import android.app.admin.ManagedSubscriptionsPolicy;
|
||||||
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
@@ -51,6 +55,7 @@ import androidx.test.core.app.ApplicationProvider;
|
|||||||
import com.android.internal.widget.LockPatternUtils;
|
import com.android.internal.widget.LockPatternUtils;
|
||||||
import com.android.internal.widget.LockPatternView;
|
import com.android.internal.widget.LockPatternView;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.SetupRedactionInterstitial;
|
||||||
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
|
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
|
||||||
import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
|
import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
|
||||||
import com.android.settings.testutils.shadow.ShadowUserManager;
|
import com.android.settings.testutils.shadow.ShadowUserManager;
|
||||||
@@ -284,6 +289,32 @@ public class ConfirmLockPatternTest {
|
|||||||
assertThat(mLockPatternUtils.isSecure(fragment.mEffectiveUserId)).isFalse();
|
assertThat(mLockPatternUtils.isSecure(fragment.mEffectiveUserId)).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onChosenLockSaveFinished_setsRedactionInterstitial() throws Exception {
|
||||||
|
// This test verifies that the RedactionInterstitial is available. This is the screen
|
||||||
|
// responsible for allowing the user to show sensitive lockscreen content. This
|
||||||
|
// also allows the Settings tile for RedactionInterstitial to appear in the "anything else"
|
||||||
|
// page during SUW.
|
||||||
|
final ConfirmDeviceCredentialBaseActivity activity =
|
||||||
|
buildConfirmDeviceCredentialBaseActivity(
|
||||||
|
ConfirmLockPattern.class,
|
||||||
|
createRemoteLockscreenValidationIntent(
|
||||||
|
KeyguardManager.PATTERN, VALID_REMAINING_ATTEMPTS));
|
||||||
|
final ConfirmLockPatternFragment fragment = (ConfirmLockPatternFragment)
|
||||||
|
getConfirmDeviceCredentialBaseFragment(activity);
|
||||||
|
final Intent intent = new Intent();
|
||||||
|
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, 1L);
|
||||||
|
|
||||||
|
fragment.onChosenLockSaveFinished(true, intent);
|
||||||
|
|
||||||
|
final ComponentName componentName =
|
||||||
|
new ComponentName(mContext, SetupRedactionInterstitial.class);
|
||||||
|
final int isEnabled = mContext.getPackageManager()
|
||||||
|
.getComponentEnabledSetting(componentName);
|
||||||
|
|
||||||
|
assertThat(isEnabled).isEqualTo(COMPONENT_ENABLED_STATE_ENABLED);
|
||||||
|
}
|
||||||
|
|
||||||
private void triggerOnPatternDetected(LockPatternView lockPatternView) {
|
private void triggerOnPatternDetected(LockPatternView lockPatternView) {
|
||||||
List<LockPatternView.Cell> pattern = List.of(LockPatternView.Cell.of(0, 0));
|
List<LockPatternView.Cell> pattern = List.of(LockPatternView.Cell.of(0, 0));
|
||||||
lockPatternView.setPattern(LockPatternView.DisplayMode.Correct, pattern);
|
lockPatternView.setPattern(LockPatternView.DisplayMode.Correct, pattern);
|
||||||
|
Reference in New Issue
Block a user