diff --git a/src/com/android/settings/password/ChooseLockPassword.java b/src/com/android/settings/password/ChooseLockPassword.java index 0aea8108e3b..84e150ae8d6 100644 --- a/src/com/android/settings/password/ChooseLockPassword.java +++ b/src/com/android/settings/password/ChooseLockPassword.java @@ -356,6 +356,7 @@ public class ChooseLockPassword extends SettingsActivity { fingerprintBackupMessage .setText(R.string.setup_lock_settings_picker_fingerprint_message); } + mLayout.setIcon(getActivity().getDrawable(R.drawable.ic_fingerprint_header)); } mIsAlphaMode = DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC == mRequestedQuality diff --git a/src/com/android/settings/password/ChooseLockPattern.java b/src/com/android/settings/password/ChooseLockPattern.java index d1964b49871..9d0072961d6 100644 --- a/src/com/android/settings/password/ChooseLockPattern.java +++ b/src/com/android/settings/password/ChooseLockPattern.java @@ -400,6 +400,7 @@ public class ChooseLockPattern extends SettingsActivity { private ChooseLockSettingsHelper mChooseLockSettingsHelper; private SaveAndFinishWorker mSaveAndFinishWorker; private int mUserId; + private boolean mForFingerprint; private static final String KEY_UI_STAGE = "uiStage"; private static final String KEY_PATTERN_CHOICE = "chosenPattern"; @@ -429,6 +430,8 @@ public class ChooseLockPattern extends SettingsActivity { false, 0, LockPatternUtils.stringToPattern(current), current, mUserId); } mHideDrawer = getActivity().getIntent().getBooleanExtra(EXTRA_HIDE_DRAWER, false); + mForFingerprint = intent.getBooleanExtra( + ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, false); } @Override @@ -437,6 +440,9 @@ public class ChooseLockPattern extends SettingsActivity { final GlifLayout layout = (GlifLayout) inflater.inflate( R.layout.choose_lock_pattern, container, false); layout.setHeaderText(getActivity().getTitle()); + if (mForFingerprint) { + layout.setIcon(getActivity().getDrawable(R.drawable.ic_fingerprint_header)); + } return layout; } diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java index 74eeaf1e5ca..fe1f939caa9 100644 --- a/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java +++ b/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java @@ -22,20 +22,38 @@ import static org.robolectric.RuntimeEnvironment.application; import android.app.admin.DevicePolicyManager; import android.content.Intent; +import android.os.UserHandle; import com.android.internal.widget.LockPatternUtils; -import com.android.settings.testutils.SettingsRobolectricTestRunner; +import com.android.settings.R; import com.android.settings.TestConfig; +import com.android.settings.password.ChooseLockPassword.ChooseLockPasswordFragment; import com.android.settings.password.ChooseLockPassword.IntentBuilder; +import com.android.settings.testutils.SettingsRobolectricTestRunner; +import com.android.settings.testutils.shadow.SettingsShadowResources; +import com.android.settings.testutils.shadow.ShadowDynamicIndexableContentMonitor; +import com.android.settings.testutils.shadow.ShadowEventLogWriter; +import com.android.settings.testutils.shadow.ShadowUtils; +import com.android.setupwizardlib.GlifLayout; import org.junit.Test; import org.junit.runner.RunWith; +import org.robolectric.Robolectric; +import org.robolectric.Shadows; import org.robolectric.annotation.Config; +import org.robolectric.shadows.ShadowDrawable; @RunWith(SettingsRobolectricTestRunner.class) @Config( manifest = TestConfig.MANIFEST_PATH, - sdk = TestConfig.SDK_VERSION) + sdk = TestConfig.SDK_VERSION, + shadows = { + SettingsShadowResources.class, + SettingsShadowResources.SettingsShadowTheme.class, + ShadowDynamicIndexableContentMonitor.class, + ShadowEventLogWriter.class, + ShadowUtils.class + }) public class ChooseLockPasswordTest { @Test @@ -95,4 +113,30 @@ public class ChooseLockPasswordTest { .named("EXTRA_USER_ID") .isEqualTo(123); } + + @Test + public void assertThat_chooseLockIconChanged_WhenFingerprintExtraSet() { + ShadowDrawable drawable = setActivityAndGetIconDrawable(true); + assertThat(drawable.getCreatedFromResId()).isEqualTo(R.drawable.ic_fingerprint_header); + } + + @Test + public void assertThat_chooseLockIconNotChanged_WhenFingerprintExtraSet() { + ShadowDrawable drawable = setActivityAndGetIconDrawable(false); + assertThat(drawable.getCreatedFromResId()).isNotEqualTo(R.drawable.ic_fingerprint_header); + } + + private ShadowDrawable setActivityAndGetIconDrawable(boolean addFingerprintExtra) { + ChooseLockPassword passwordActivity = + Robolectric.buildActivity( + ChooseLockPassword.class, + new IntentBuilder(application) + .setUserId(UserHandle.myUserId()) + .setForFingerprint(addFingerprintExtra) + .build()) + .setup().get(); + ChooseLockPasswordFragment fragment = (ChooseLockPasswordFragment) + passwordActivity.getFragmentManager().findFragmentById(R.id.main_content); + return Shadows.shadowOf(((GlifLayout) fragment.getView()).getIcon()); + } } diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java index fa09884818d..b2380496ae1 100644 --- a/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java +++ b/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java @@ -21,19 +21,25 @@ import static com.google.common.truth.Truth.assertThat; import static org.robolectric.RuntimeEnvironment.application; import android.content.Intent; +import android.os.UserHandle; -import com.android.settings.testutils.SettingsRobolectricTestRunner; +import com.android.settings.R; import com.android.settings.TestConfig; +import com.android.settings.password.ChooseLockPattern.ChooseLockPatternFragment; import com.android.settings.password.ChooseLockPattern.IntentBuilder; +import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.SettingsShadowResources; import com.android.settings.testutils.shadow.ShadowDynamicIndexableContentMonitor; import com.android.settings.testutils.shadow.ShadowEventLogWriter; import com.android.settings.testutils.shadow.ShadowUtils; +import com.android.setupwizardlib.GlifLayout; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.Robolectric; +import org.robolectric.Shadows; import org.robolectric.annotation.Config; +import org.robolectric.shadows.ShadowDrawable; @RunWith(SettingsRobolectricTestRunner.class) @Config( @@ -95,4 +101,23 @@ public class ChooseLockPatternTest { .named("EXTRA_USER_ID") .isEqualTo(123); } + + @Test + public void assertThat_chooseLockIconChanged_WhenFingerprintExtraSet() { + ChooseLockPattern activity = createActivity(true); + ChooseLockPatternFragment fragment = (ChooseLockPatternFragment) + activity.getFragmentManager().findFragmentById(R.id.main_content); + ShadowDrawable drawable = Shadows.shadowOf(((GlifLayout) fragment.getView()).getIcon()); + assertThat(drawable.getCreatedFromResId()).isEqualTo(R.drawable.ic_fingerprint_header); + } + + private ChooseLockPattern createActivity(boolean addFingerprintExtra) { + return Robolectric.buildActivity( + ChooseLockPattern.class, + new IntentBuilder(application) + .setUserId(UserHandle.myUserId()) + .setForFingerprint(addFingerprintExtra) + .build()) + .setup().get(); + } }