Loading src/com/android/settings/biometrics/BiometricEnrollIntroduction.java +8 −6 Original line number Diff line number Diff line Loading @@ -229,13 +229,15 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase } // Show secondary button once scroll is completed. if (!scrollNeeded) { if (!enrollmentCompleted) { getSecondaryFooterButton().setVisibility(View.VISIBLE); } mHasScrolledToBottom = true; } getSecondaryFooterButton().setVisibility( !scrollNeeded && !enrollmentCompleted ? View.VISIBLE : View.INVISIBLE); mHasScrolledToBottom = !scrollNeeded; }); final boolean isScrollNeeded = requireScrollMixin.isScrollingRequired(); final boolean enrollmentCompleted = checkMaxEnrolled() != 0; getSecondaryFooterButton().setVisibility( !isScrollNeeded && !enrollmentCompleted ? View.VISIBLE : View.INVISIBLE); } @Override Loading tests/robotests/src/com/android/settings/biometrics/face/FaceEnrollIntroductionTest.java +35 −1 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ import com.google.android.setupcompat.template.FooterBarMixin; import com.google.android.setupcompat.template.FooterButton; import com.google.android.setupcompat.util.WizardManagerHelper; import com.google.android.setupdesign.GlifLayout; import com.google.android.setupdesign.template.RequireScrollMixin; import com.google.android.setupdesign.view.BottomScrollView; import org.junit.After; Loading Loading @@ -137,6 +138,11 @@ public class FaceEnrollIntroductionTest { return mRecreateCount; } @Override protected void onResume() { super.onResume(); } @Override public void recreate() { mRecreateCount++; Loading Loading @@ -424,11 +430,39 @@ public class FaceEnrollIntroductionTest { } @Test public void testFaceEnrollIntroduction_notShowFooterSecondaryButton() { public void testFaceEnrollIntroduction_footerSecondaryButtonWhenCanEnroll() { setupActivity(); FooterBarMixin footer = getGlifLayout(mActivity).getMixin(FooterBarMixin.class); FooterButton footerButton = footer.getSecondaryButton(); final RequireScrollMixin requireScrollMixin = getGlifLayout(mActivity).getMixin( RequireScrollMixin.class); assertThat(footerButton.getVisibility()).isEqualTo( requireScrollMixin.isScrollingRequired() ? View.INVISIBLE : View.VISIBLE); requireScrollMixin.getOnRequireScrollStateChangedListener().onRequireScrollStateChanged( false); assertThat(footerButton.getVisibility()).isEqualTo(View.VISIBLE); } @Test public void testFaceEnrollIntroduction_footerSecondaryButtonWhenMaxEnroll() { setFaceManagerToHave(1 /* numEnrollments */); final Intent intent = new Intent(); intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, new byte[0]); mController = Robolectric.buildActivity(TestFaceEnrollIntroduction.class, intent); mActivity = (TestFaceEnrollIntroduction) mController.get(); mController.create(); FooterBarMixin footer = getGlifLayout(mActivity).getMixin(FooterBarMixin.class); FooterButton footerButton = footer.getSecondaryButton(); final RequireScrollMixin requireScrollMixin = getGlifLayout(mActivity).getMixin( RequireScrollMixin.class); assertThat(footerButton.getVisibility()).isEqualTo(View.INVISIBLE); requireScrollMixin.getOnRequireScrollStateChangedListener().onRequireScrollStateChanged( false); assertThat(footerButton.getVisibility()).isEqualTo(View.INVISIBLE); } Loading tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroductionTest.java +56 −16 Original line number Diff line number Diff line Loading @@ -183,14 +183,6 @@ public class FingerprintEnrollIntroductionTest { int result = mFingerprintEnrollIntroduction.checkMaxEnrolled(); assertThat(result).isEqualTo(0); final RequireScrollMixin requireScrollMixin = ((GlifLayout) mFingerprintEnrollIntroduction.findViewById( R.id.setup_wizard_layout)).getMixin(RequireScrollMixin.class); requireScrollMixin.getOnRequireScrollStateChangedListener().onRequireScrollStateChanged( false); Assert.assertEquals(View.VISIBLE, mFingerprintEnrollIntroduction.getSecondaryFooterButton().getVisibility()); } @Test Loading @@ -206,14 +198,6 @@ public class FingerprintEnrollIntroductionTest { int result = mFingerprintEnrollIntroduction.checkMaxEnrolled(); assertThat(result).isEqualTo(R.string.fingerprint_intro_error_max); final RequireScrollMixin requireScrollMixin = ((GlifLayout) mFingerprintEnrollIntroduction.findViewById( R.id.setup_wizard_layout)).getMixin(RequireScrollMixin.class); requireScrollMixin.getOnRequireScrollStateChangedListener().onRequireScrollStateChanged( false); Assert.assertEquals(View.INVISIBLE, mFingerprintEnrollIntroduction.getSecondaryFooterButton().getVisibility()); } @Test Loading Loading @@ -321,6 +305,57 @@ public class FingerprintEnrollIntroductionTest { .isEqualTo(FingerprintEnrollOptions.ENROLL_REASON_SETTINGS); } @Test public void intro_CheckNoThanksButtonWhenCanEnroll() { // This code path should depend on suw_max_fingerprints_enrollable versus // FingerprintManager.getSensorProperties...maxEnrollmentsPerUser() Resources resources = mock(Resources.class); when(resources.getInteger(anyInt())).thenReturn(5); when(mContext.getResources()).thenReturn(resources); setupFingerprintEnrollIntroWith(newFirstSuwIntent()); setFingerprintManagerToHave(0 /* numEnrollments */); final RequireScrollMixin requireScrollMixin = ((GlifLayout) mFingerprintEnrollIntroduction.findViewById( R.id.setup_wizard_layout)).getMixin(RequireScrollMixin.class); Assert.assertEquals( requireScrollMixin.isScrollingRequired() ? View.INVISIBLE : View.VISIBLE, mFingerprintEnrollIntroduction.getSecondaryFooterButton().getVisibility()); requireScrollMixin.getOnRequireScrollStateChangedListener().onRequireScrollStateChanged( false); Assert.assertEquals(View.VISIBLE, mFingerprintEnrollIntroduction.getSecondaryFooterButton().getVisibility()); } @Test public void intro_CheckNoThanksButtonWhenMaxEnroll() { // This code path should depend on suw_max_fingerprints_enrollable versus // FingerprintManager.getSensorProperties...maxEnrollmentsPerUser() Resources resources = mock(Resources.class); when(mContext.getResources()).thenReturn(resources); when(resources.getInteger(anyInt())).thenReturn(1); setupFingerprintEnrollIntroWith(newFirstSuwIntent()); setFingerprintManagerToHave(1 /* numEnrollments */); final RequireScrollMixin requireScrollMixin = ((GlifLayout) mFingerprintEnrollIntroduction.findViewById( R.id.setup_wizard_layout)).getMixin(RequireScrollMixin.class); mFingerprintEnrollIntroduction.onResume(); Assert.assertEquals(View.INVISIBLE, mFingerprintEnrollIntroduction.getSecondaryFooterButton().getVisibility()); requireScrollMixin.getOnRequireScrollStateChangedListener().onRequireScrollStateChanged( false); Assert.assertEquals(View.INVISIBLE, mFingerprintEnrollIntroduction.getSecondaryFooterButton().getVisibility()); } private Intent newTokenOnlyIntent() { return new Intent() .putExtra(EXTRA_KEY_CHALLENGE_TOKEN, new byte[] { 1 }); Loading Loading @@ -365,6 +400,11 @@ public class FingerprintEnrollIntroductionTest { public int mNewSensorId; public long mNewChallenge; @Override protected void onResume() { super.onResume(); } @Nullable public byte[] getTokenField() { return mToken; Loading Loading
src/com/android/settings/biometrics/BiometricEnrollIntroduction.java +8 −6 Original line number Diff line number Diff line Loading @@ -229,13 +229,15 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase } // Show secondary button once scroll is completed. if (!scrollNeeded) { if (!enrollmentCompleted) { getSecondaryFooterButton().setVisibility(View.VISIBLE); } mHasScrolledToBottom = true; } getSecondaryFooterButton().setVisibility( !scrollNeeded && !enrollmentCompleted ? View.VISIBLE : View.INVISIBLE); mHasScrolledToBottom = !scrollNeeded; }); final boolean isScrollNeeded = requireScrollMixin.isScrollingRequired(); final boolean enrollmentCompleted = checkMaxEnrolled() != 0; getSecondaryFooterButton().setVisibility( !isScrollNeeded && !enrollmentCompleted ? View.VISIBLE : View.INVISIBLE); } @Override Loading
tests/robotests/src/com/android/settings/biometrics/face/FaceEnrollIntroductionTest.java +35 −1 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ import com.google.android.setupcompat.template.FooterBarMixin; import com.google.android.setupcompat.template.FooterButton; import com.google.android.setupcompat.util.WizardManagerHelper; import com.google.android.setupdesign.GlifLayout; import com.google.android.setupdesign.template.RequireScrollMixin; import com.google.android.setupdesign.view.BottomScrollView; import org.junit.After; Loading Loading @@ -137,6 +138,11 @@ public class FaceEnrollIntroductionTest { return mRecreateCount; } @Override protected void onResume() { super.onResume(); } @Override public void recreate() { mRecreateCount++; Loading Loading @@ -424,11 +430,39 @@ public class FaceEnrollIntroductionTest { } @Test public void testFaceEnrollIntroduction_notShowFooterSecondaryButton() { public void testFaceEnrollIntroduction_footerSecondaryButtonWhenCanEnroll() { setupActivity(); FooterBarMixin footer = getGlifLayout(mActivity).getMixin(FooterBarMixin.class); FooterButton footerButton = footer.getSecondaryButton(); final RequireScrollMixin requireScrollMixin = getGlifLayout(mActivity).getMixin( RequireScrollMixin.class); assertThat(footerButton.getVisibility()).isEqualTo( requireScrollMixin.isScrollingRequired() ? View.INVISIBLE : View.VISIBLE); requireScrollMixin.getOnRequireScrollStateChangedListener().onRequireScrollStateChanged( false); assertThat(footerButton.getVisibility()).isEqualTo(View.VISIBLE); } @Test public void testFaceEnrollIntroduction_footerSecondaryButtonWhenMaxEnroll() { setFaceManagerToHave(1 /* numEnrollments */); final Intent intent = new Intent(); intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, new byte[0]); mController = Robolectric.buildActivity(TestFaceEnrollIntroduction.class, intent); mActivity = (TestFaceEnrollIntroduction) mController.get(); mController.create(); FooterBarMixin footer = getGlifLayout(mActivity).getMixin(FooterBarMixin.class); FooterButton footerButton = footer.getSecondaryButton(); final RequireScrollMixin requireScrollMixin = getGlifLayout(mActivity).getMixin( RequireScrollMixin.class); assertThat(footerButton.getVisibility()).isEqualTo(View.INVISIBLE); requireScrollMixin.getOnRequireScrollStateChangedListener().onRequireScrollStateChanged( false); assertThat(footerButton.getVisibility()).isEqualTo(View.INVISIBLE); } Loading
tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroductionTest.java +56 −16 Original line number Diff line number Diff line Loading @@ -183,14 +183,6 @@ public class FingerprintEnrollIntroductionTest { int result = mFingerprintEnrollIntroduction.checkMaxEnrolled(); assertThat(result).isEqualTo(0); final RequireScrollMixin requireScrollMixin = ((GlifLayout) mFingerprintEnrollIntroduction.findViewById( R.id.setup_wizard_layout)).getMixin(RequireScrollMixin.class); requireScrollMixin.getOnRequireScrollStateChangedListener().onRequireScrollStateChanged( false); Assert.assertEquals(View.VISIBLE, mFingerprintEnrollIntroduction.getSecondaryFooterButton().getVisibility()); } @Test Loading @@ -206,14 +198,6 @@ public class FingerprintEnrollIntroductionTest { int result = mFingerprintEnrollIntroduction.checkMaxEnrolled(); assertThat(result).isEqualTo(R.string.fingerprint_intro_error_max); final RequireScrollMixin requireScrollMixin = ((GlifLayout) mFingerprintEnrollIntroduction.findViewById( R.id.setup_wizard_layout)).getMixin(RequireScrollMixin.class); requireScrollMixin.getOnRequireScrollStateChangedListener().onRequireScrollStateChanged( false); Assert.assertEquals(View.INVISIBLE, mFingerprintEnrollIntroduction.getSecondaryFooterButton().getVisibility()); } @Test Loading Loading @@ -321,6 +305,57 @@ public class FingerprintEnrollIntroductionTest { .isEqualTo(FingerprintEnrollOptions.ENROLL_REASON_SETTINGS); } @Test public void intro_CheckNoThanksButtonWhenCanEnroll() { // This code path should depend on suw_max_fingerprints_enrollable versus // FingerprintManager.getSensorProperties...maxEnrollmentsPerUser() Resources resources = mock(Resources.class); when(resources.getInteger(anyInt())).thenReturn(5); when(mContext.getResources()).thenReturn(resources); setupFingerprintEnrollIntroWith(newFirstSuwIntent()); setFingerprintManagerToHave(0 /* numEnrollments */); final RequireScrollMixin requireScrollMixin = ((GlifLayout) mFingerprintEnrollIntroduction.findViewById( R.id.setup_wizard_layout)).getMixin(RequireScrollMixin.class); Assert.assertEquals( requireScrollMixin.isScrollingRequired() ? View.INVISIBLE : View.VISIBLE, mFingerprintEnrollIntroduction.getSecondaryFooterButton().getVisibility()); requireScrollMixin.getOnRequireScrollStateChangedListener().onRequireScrollStateChanged( false); Assert.assertEquals(View.VISIBLE, mFingerprintEnrollIntroduction.getSecondaryFooterButton().getVisibility()); } @Test public void intro_CheckNoThanksButtonWhenMaxEnroll() { // This code path should depend on suw_max_fingerprints_enrollable versus // FingerprintManager.getSensorProperties...maxEnrollmentsPerUser() Resources resources = mock(Resources.class); when(mContext.getResources()).thenReturn(resources); when(resources.getInteger(anyInt())).thenReturn(1); setupFingerprintEnrollIntroWith(newFirstSuwIntent()); setFingerprintManagerToHave(1 /* numEnrollments */); final RequireScrollMixin requireScrollMixin = ((GlifLayout) mFingerprintEnrollIntroduction.findViewById( R.id.setup_wizard_layout)).getMixin(RequireScrollMixin.class); mFingerprintEnrollIntroduction.onResume(); Assert.assertEquals(View.INVISIBLE, mFingerprintEnrollIntroduction.getSecondaryFooterButton().getVisibility()); requireScrollMixin.getOnRequireScrollStateChangedListener().onRequireScrollStateChanged( false); Assert.assertEquals(View.INVISIBLE, mFingerprintEnrollIntroduction.getSecondaryFooterButton().getVisibility()); } private Intent newTokenOnlyIntent() { return new Intent() .putExtra(EXTRA_KEY_CHALLENGE_TOKEN, new byte[] { 1 }); Loading Loading @@ -365,6 +400,11 @@ public class FingerprintEnrollIntroductionTest { public int mNewSensorId; public long mNewChallenge; @Override protected void onResume() { super.onResume(); } @Nullable public byte[] getTokenField() { return mToken; Loading