diff --git a/res/layout/choose_lock_pattern_common.xml b/res/layout/choose_lock_pattern_common.xml index 761a724f79b..2dd8cd576de 100644 --- a/res/layout/choose_lock_pattern_common.xml +++ b/res/layout/choose_lock_pattern_common.xml @@ -36,16 +36,6 @@ android:paddingLeft="0dp" android:paddingRight="0dp"> - - 0 + && WizardManagerHelper.isAnySetupWizard(getIntent())) { + mPassThroughExtrasFromChosenLockInSuw = data.getExtras(); + } + Log.d(TAG, "onActivityResult(requestCode=" + requestCode + ", resultCode=" + resultCode + ")"); // single enrollment is handled entirely by the launched activity @@ -416,7 +429,7 @@ public class BiometricEnrollActivity extends InstrumentedActivity { } } else { Log.d(TAG, "Unknown or cancelled parental consent"); - setResult(RESULT_CANCELED); + setResult(RESULT_CANCELED, newResultIntent()); finish(); } break; @@ -452,7 +465,7 @@ public class BiometricEnrollActivity extends InstrumentedActivity { launchFingerprintOnlyEnroll(); } else { Log.d(TAG, "Unknown result for set/choose lock: " + resultCode); - setResult(resultCode); + setResult(resultCode, newResultIntent()); finish(); } break; @@ -480,25 +493,37 @@ public class BiometricEnrollActivity extends InstrumentedActivity { finish(); } } else { - setResult(resultCode); + setResult(resultCode, newResultIntent()); finish(); } } + @NonNull private Intent newResultIntent() { final Intent intent = new Intent(); - final Bundle consentStatus = mParentalOptions.deepCopy(); - intent.putExtra(EXTRA_PARENTAL_CONSENT_STATUS, consentStatus); - Log.v(TAG, "Result consent status: " + consentStatus); + if (mParentalOptionsRequired && mParentalOptions != null) { + final Bundle consentStatus = mParentalOptions.deepCopy(); + intent.putExtra(EXTRA_PARENTAL_CONSENT_STATUS, consentStatus); + Log.v(TAG, "Result consent status: " + consentStatus); + } + if (mPassThroughExtrasFromChosenLockInSuw != null) { + intent.putExtras(mPassThroughExtrasFromChosenLockInSuw); + } return intent; } private static boolean isSuccessfulConfirmOrChooseCredential(int requestCode, int resultCode) { - final boolean okChoose = requestCode == REQUEST_CHOOSE_LOCK + return isSuccessfulChooseCredential(requestCode, resultCode) + || isSuccessfulConfirmCredential(requestCode, resultCode); + } + + private static boolean isSuccessfulChooseCredential(int requestCode, int resultCode) { + return requestCode == REQUEST_CHOOSE_LOCK && resultCode == ChooseLockPattern.RESULT_FINISHED; - final boolean okConfirm = requestCode == REQUEST_CONFIRM_LOCK - && resultCode == RESULT_OK; - return okChoose || okConfirm; + } + + private static boolean isSuccessfulConfirmCredential(int requestCode, int resultCode) { + return requestCode == REQUEST_CONFIRM_LOCK && resultCode == RESULT_OK; } @Override diff --git a/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java b/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java index af25ecd8e28..b31396142e3 100644 --- a/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java +++ b/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java @@ -16,21 +16,16 @@ package com.android.settings.biometrics.fingerprint; -import android.app.Activity; import android.app.KeyguardManager; import android.app.settings.SettingsEnums; import android.content.Intent; import android.hardware.fingerprint.FingerprintManager; -import android.os.Bundle; -import android.os.UserHandle; import android.view.View; -import com.android.internal.widget.LockPatternUtils; import com.android.settings.SetupWizardUtils; import com.android.settings.Utils; import com.android.settings.biometrics.BiometricUtils; import com.android.settings.password.ChooseLockSettingsHelper; -import com.android.settings.password.SetupChooseLockGeneric; import com.android.settings.password.SetupSkipDialog; public class SetupFingerprintEnrollIntroduction extends FingerprintEnrollIntroduction { @@ -40,24 +35,6 @@ public class SetupFingerprintEnrollIntroduction extends FingerprintEnrollIntrodu private static final String EXTRA_FINGERPRINT_ENROLLED_COUNT = "fingerprint_enrolled_count"; private static final String KEY_LOCK_SCREEN_PRESENT = "wasLockScreenPresent"; - private boolean mAlreadyHadLockScreenSetup = false; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - if (savedInstanceState == null) { - mAlreadyHadLockScreenSetup = isKeyguardSecure(); - } else { - mAlreadyHadLockScreenSetup = savedInstanceState.getBoolean( - KEY_LOCK_SCREEN_PRESENT, false); - } - } - - @Override - protected void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - outState.putBoolean(KEY_LOCK_SCREEN_PRESENT, mAlreadyHadLockScreenSetup); - } @Override protected Intent getEnrollingIntent() { @@ -85,12 +62,6 @@ public class SetupFingerprintEnrollIntroduction extends FingerprintEnrollIntrodu } } if (requestCode == BIOMETRIC_FIND_SENSOR_REQUEST && isKeyguardSecure()) { - // if lock was already present, do not return intent data since it must have been - // reported in previous attempts - if (!mAlreadyHadLockScreenSetup) { - data = getMetricIntent(data); - } - // Report fingerprint count if user adding a new fingerprint if (resultCode == RESULT_FINISHED) { data = setFingerprintCount(data); @@ -127,18 +98,6 @@ public class SetupFingerprintEnrollIntroduction extends FingerprintEnrollIntrodu super.onActivityResult(requestCode, resultCode, data); } - private Intent getMetricIntent(Intent data) { - if (data == null) { - data = new Intent(); - } - LockPatternUtils lockPatternUtils = new LockPatternUtils(this); - data.putExtra(SetupChooseLockGeneric. - SetupChooseLockGenericFragment.EXTRA_PASSWORD_QUALITY, - lockPatternUtils.getKeyguardStoredPasswordQuality(UserHandle.myUserId())); - - return data; - } - private Intent setFingerprintCount(Intent data) { if (data == null) { data = new Intent(); @@ -161,8 +120,7 @@ public class SetupFingerprintEnrollIntroduction extends FingerprintEnrollIntrodu if (!BiometricUtils.tryStartingNextBiometricEnroll( this, ENROLL_NEXT_BIOMETRIC_REQUEST, "cancel")) { resultCode = RESULT_SKIP; - data = mAlreadyHadLockScreenSetup ? null : getMetricIntent(null); - setResult(resultCode, data); + setResult(resultCode); finish(); return; } @@ -176,18 +134,6 @@ public class SetupFingerprintEnrollIntroduction extends FingerprintEnrollIntrodu // User has explicitly canceled enroll. Don't restart it automatically. } - /** - * Propagate lock screen metrics if the user goes back from the fingerprint setup screen - * after having added lock screen to his device. - */ - @Override - public void onBackPressed() { - if (!mAlreadyHadLockScreenSetup && isKeyguardSecure()) { - setResult(Activity.RESULT_CANCELED, getMetricIntent(null)); - } - super.onBackPressed(); - } - private boolean isKeyguardSecure() { return getSystemService(KeyguardManager.class).isKeyguardSecure(); } diff --git a/src/com/android/settings/development/StayAwakePreferenceController.java b/src/com/android/settings/development/StayAwakePreferenceController.java index 25a92b260bc..9ed0ef88826 100644 --- a/src/com/android/settings/development/StayAwakePreferenceController.java +++ b/src/com/android/settings/development/StayAwakePreferenceController.java @@ -50,7 +50,7 @@ public class StayAwakePreferenceController extends DeveloperOptionsPreferenceCon @VisibleForTesting static final int SETTING_VALUE_ON = BatteryManager.BATTERY_PLUGGED_AC | BatteryManager.BATTERY_PLUGGED_USB - | BatteryManager.BATTERY_PLUGGED_WIRELESS; + | BatteryManager.BATTERY_PLUGGED_WIRELESS | BatteryManager.BATTERY_PLUGGED_DOCK; @VisibleForTesting SettingsObserver mSettingsObserver; diff --git a/src/com/android/settings/password/SetupChooseLockPattern.java b/src/com/android/settings/password/SetupChooseLockPattern.java index 7151c6d89cc..fd925ecfba6 100644 --- a/src/com/android/settings/password/SetupChooseLockPattern.java +++ b/src/com/android/settings/password/SetupChooseLockPattern.java @@ -143,7 +143,8 @@ public class SetupChooseLockPattern extends ChooseLockPattern { } final GlifLayout layout = getActivity().findViewById(R.id.setup_wizard_layout); - layout.setDescriptionText(""); + layout.setDescriptionText( + getString(R.string.lockpassword_choose_your_pattern_description)); } @Override diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java index e3b23ac293d..2aeda7144a8 100644 --- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java +++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java @@ -34,7 +34,6 @@ import android.widget.Button; import com.android.settings.R; import com.android.settings.biometrics.BiometricEnrollBase; import com.android.settings.biometrics.BiometricEnrollIntroduction; -import com.android.settings.password.SetupChooseLockGeneric.SetupChooseLockGenericFragment; import com.android.settings.password.SetupSkipDialog; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.shadow.ShadowFingerprintManager; @@ -160,8 +159,6 @@ public class SetupFingerprintEnrollIntroductionTest { ShadowActivity shadowActivity = Shadows.shadowOf(activity); assertThat(shadowActivity.getResultIntent()).isNotNull(); - assertThat(shadowActivity.getResultIntent().hasExtra( - SetupChooseLockGenericFragment.EXTRA_PASSWORD_QUALITY)).isTrue(); } @Test @@ -191,8 +188,6 @@ public class SetupFingerprintEnrollIntroductionTest { ShadowActivity shadowActivity = Shadows.shadowOf(activity); assertThat(shadowActivity.getResultIntent()).isNotNull(); - assertThat(shadowActivity.getResultIntent().hasExtra( - SetupChooseLockGenericFragment.EXTRA_PASSWORD_QUALITY)).isTrue(); } @Test @@ -218,8 +213,6 @@ public class SetupFingerprintEnrollIntroductionTest { BiometricEnrollBase.RESULT_FINISHED, null); ShadowActivity shadowActivity = Shadows.shadowOf(activity); assertThat(shadowActivity.getResultIntent()).isNotNull(); - assertThat(shadowActivity.getResultIntent().hasExtra( - SetupChooseLockGenericFragment.EXTRA_PASSWORD_QUALITY)).isFalse(); } @Test @@ -260,8 +253,6 @@ public class SetupFingerprintEnrollIntroductionTest { ShadowActivity shadowActivity = Shadows.shadowOf(activity); IntentForResult startedActivity = shadowActivity.getNextStartedActivityForResult(); assertThat(startedActivity).isNotNull(); - assertThat(startedActivity.intent.hasExtra( - SetupChooseLockGenericFragment.EXTRA_PASSWORD_QUALITY)).isFalse(); } private ShadowKeyguardManager getShadowKeyguardManager() { diff --git a/tests/robotests/src/com/android/settings/password/SetupChooseLockPatternTest.java b/tests/robotests/src/com/android/settings/password/SetupChooseLockPatternTest.java index 53e68d97018..e01e0235af3 100644 --- a/tests/robotests/src/com/android/settings/password/SetupChooseLockPatternTest.java +++ b/tests/robotests/src/com/android/settings/password/SetupChooseLockPatternTest.java @@ -27,6 +27,7 @@ import android.content.pm.PackageManager; import android.os.UserHandle; import android.view.View; import android.widget.Button; +import android.widget.TextView; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.FragmentActivity; @@ -192,6 +193,18 @@ public class SetupChooseLockPatternTest { .isEqualTo(application.getString(R.string.lockpattern_retry_button_text)); } + @Test + public void createActivity_patternDescription_shouldBeShown() { + PartnerCustomizationLayout layout = mActivity.findViewById(R.id.setup_wizard_layout); + + final TextView patternDescription = + layout.findViewById(R.id.sud_layout_subtitle); + + assertThat(patternDescription.getVisibility()).isEqualTo(View.VISIBLE); + assertThat(patternDescription.getText()).isEqualTo( + application.getString(R.string.lockpassword_choose_your_pattern_description)); + } + private ChooseLockPatternFragment findFragment(FragmentActivity activity) { return (ChooseLockPatternFragment) activity.getSupportFragmentManager().findFragmentById(R.id.main_content);