Provide fingerprint options for SET_NEW_PASSWORD intent

1) Added a trampoline activity to display SET_NEW_PASSWORD intent.
2) On devices that have fingerprint sensor and have no enrolled fingerprint,
   ChooseLockGeneric handles the SET_NEW_PASSWORD intent by providing
   fingerprint + {PIN/PATTERN/PASSWORD} and skip fingerprint options.

Test: See below
1) Auto
   make RunSettingsRoboTests
2) Manual
   a) Fingerprint + pattern
      i) $ adb shell am start -a android.app.action.SET_NEW_PASSWORD
      ii) Click Pixel Imprint + Pattern.
      iii) Set a pattern lock.
      iv) Can enroll a fingerprint.
   b) Pattern
      i) $ adb shell am start -a android.app.action.SET_NEW_PASSWORD
      ii) Click Continue without Pixel Imprint
      iii) A list of unlock options, without fingerprint option, is shown.
      vi) Select and enroll a pattern lock
   c) Has an existing password
      i) $ adb shell am start -a android.app.action.SET_NEW_PASSWORD
      ii) Setting app asks for password input.
      iii) Enter password and click "Continue without Pixel imprint".
      vi) No password is asked. A list of unlock options, without fingerprint option, is shown.
      v) Select and enroll a pattern lock
   d) Work profile
      i) Create a work profile
      ii) adb shell am start --user x -a android.app.action.SET_NEW_PASSWORD. X is the work profile user id.
      iii) Click Pixel Imprint + Pattern.
      iv) Set a pattern lock.
      v) Can enroll a fingerprint.

Bug: 23017051
Change-Id: I6384bbffb72a5d3a83972da7474532746e4d06b9
This commit is contained in:
Steven Ng
2016-09-26 22:13:08 +01:00
parent 505287caeb
commit 4fdcec71dc
10 changed files with 440 additions and 13 deletions

View File

@@ -1102,6 +1102,12 @@
<!-- Title for preference that guides the user through creating a backup unlock password for fingerprint [CHAR LIMIT=45]-->
<string name="fingerprint_unlock_set_unlock_password">Fingerprint + Password</string>
<!-- Title for preference that guides the user to skip fingerprint setup [CHAR LIMIT=60]-->
<string name="fingerprint_unlock_skip_fingerprint">Continue without fingerprint</string>
<!-- Message shown in screen lock picker while setting up the new screen lock with fingerprint option. [CHAR LIMIT=NONE]-->
<string name="fingerprint_unlock_title">You can unlock your phone using your fingerprint. For security, this option requires a backup screen lock.</string>
<!-- Summary for preference that has been disabled by because of the DevicePolicyAdmin, or because device encryption is enabled, or because there are credentials in the credential storage [CHAR LIMIT=50] -->
<string name="unlock_set_unlock_disabled_summary">Disabled by administrator, encryption policy, or credential storage</string>

View File

@@ -439,4 +439,10 @@
<item name="android:paddingEnd">56dp</item>
</style>
<style name="FingerprintHeaderStyle" parent="android:style/TextAppearance.Material.Subhead">
<item name="android:paddingTop">16dp</item>
<item name="android:textColor">@color/primary_dark_material_light</item>
<item name="android:lineSpacingMultiplier">1.2</item>
</style>
</resources>