Commit Graph

47 Commits

Author SHA1 Message Date
Ajay Nadathur
be2246bee7 Add 'clear' button to pin/password lock screen
bug: 62904466
Test: Manually tested, added functional tests
Change-Id: I5f5555d99b47550a8fef6995222d12155b4072a9
2017-08-03 17:46:51 +00:00
Ajay Nadathur
044485b850 Merge "Use fingerprint icons during setupwizard flow" into oc-dr1-dev
am: f5ebc6f7ed

Change-Id: Ia91197e1d6ee74fd890887330da1eaeb932cd5cb
2017-07-26 22:02:33 +00:00
Ajay Nadathur
7af28ecb66 Use fingerprint icons during setupwizard flow
Use fingerprint icon when lock screens are loaded on
fingerprint setup's behalf.

bug: 63809908
Test: Manually tested and verified. Also added robolectric tests
Change-Id: I773a1eec2466e7ab626cc3330f5ce987a21b048f
2017-07-24 11:45:13 -07:00
Tarandeep Singh
f29b32b4ce Merge "Show keypad while setting PIN in setup wizard" into oc-dr1-dev am: 0288cf34f4
am: c61fc4a6bc

Change-Id: I7dc293be5cd7028131e3bb5f7f81d515a4231cc5
2017-07-15 02:11:42 +00:00
TreeHugger Robot
0288cf34f4 Merge "Show keypad while setting PIN in setup wizard" into oc-dr1-dev 2017-07-15 01:59:39 +00:00
Tarandeep Singh
b0bcbed372 Show keypad while setting PIN in setup wizard
Currently The activity not requesting showSoftInput() and hence keypad
doesn't show up.
Activity.onResume(), we should call ImeAwareEditText.scheduleSoftInput()
to request schedule ShowSoftInput() when EditText gains focus.

Fixes: 63582564
Test: Manually launch com.google.android.setupwizard/.SetupWizardTestActivity

Change-Id: Ib75ba0f361b8b46c3b717cc1ffb864726958ed82
2017-07-14 13:42:11 -07:00
TreeHugger Robot
becd4e689c Merge "Fix PIN/password lock UI update when locked out." 2017-07-14 18:25:03 +00:00
Charles He
170801b6f8 Fix PIN/password lock UI update when locked out.
The ConfirmLockPassword screen (responsible for both PIN and password
locks) should not accept any input during the lock-out period after
consecutive incorrect unlock attempts. However, this is broken if the
activity is resumed from a paused state (e.g. from Recents).

In this CL, we clean up the logic around updating the UI controls, which
fixes the issue above and also hopefully simplifies potential future
work.

Bug: 63277910
Test: make RunSettingsRoboTests
Test: manual, both unified and separate work challenge
Change-Id: I752a5911d4445bf0caeea299ca3eb182e1defc62
2017-07-13 11:44:08 +01:00
Ajay Nadathur
00dda696cd Merge "Do not show options if screen lock types is empty" into oc-dr1-dev am: 0bde6dcb18
am: 3d627974d6

Change-Id: Ib062bcdfc23008dab14622e4741fca6dc30e5950
2017-07-12 18:11:47 +00:00
Ajay Nadathur
17d66bea42 Do not show options if screen lock types is empty
Bug: 63311251
Test: Manually tested on device
Change-Id: Ia56a0791b89635efb4f8305f39b586b8054271cf
2017-07-11 18:09:49 -07:00
Maurice Lam
ac4a473e72 Merge "Hide screen lock options button in confirm lock" into oc-dr1-dev am: 540d92a7e9
am: ace9759446

Change-Id: Ib134acb1856b83eacd1c1d57e7e7215961d5ec6d
2017-07-11 18:31:30 +00:00
Charles He
4c96d9b203 Add special lock screen prompt strings for strong auth.
Due to incorrect strings, we temporarily disabled the prompt strings for
strong auth and instead used the generic ones as a short-term fix. In
this CL, we correct the strong auth prompt strings and add them back to
the lock screen UI. The new strings are in line with those in keyguard.

Bug: 36511626
Test: manual
Test: make RunSettingsRoboTests
Change-Id: Ifba689db37cc7d331eb1a774814f6b6235977ff9
2017-07-11 10:49:59 +01:00
Maurice Lam
62c0c3c324 Hide screen lock options button in confirm lock
Hide the screen lock options button in the confirmation stage of
SetupChooseLockPassword, so the user cannot skip out of that screen
while the screen lock is being saved.

Test: Manual
Bug: 63526104
Change-Id: I8ee8938f3ddcd9f0ff3b1812fcae667eddaf09ab
2017-07-10 18:15:10 -07:00
TreeHugger Robot
4545d636ec Merge "Use config_headlineFontFamily for password screens." into oc-dr1-dev 2017-07-07 02:02:51 +00:00
TreeHugger Robot
8218511fb7 Merge "Hide skip button when setting backup lock screen" into oc-dr1-dev 2017-07-06 22:08:51 +00:00
Andrew Sapperstein
ccbb4cfc2c Use config_headlineFontFamily for password screens.
These screens are used whenever setting or confirming the
lockscreen PIN or password. Set them to a consistent textSize (24sp)
and a consistent fontFamily.

Would have set the fontFamily in the style, but unfortunately
setInputType is called on the TextViews after inflation which blows
away the fontFamily. Instead, we set it in code right after that
call.

Change-Id: I77c3f94e2b1ce6d1f19697394c5caa09aac423b0
Fixes: 62873478
Test: manual
2017-07-06 14:30:28 -07:00
Charles He
c619ad77bb Merge "Disable incorrect strong auth prompt strings." into oc-dr1-dev 2017-07-03 15:32:09 +00:00
Charles He
701ac5cbee Disable incorrect strong auth prompt strings.
The prompt strings on the confirm credentials screen (pin, password,
pattern) are incorrect. They currently say strong auth is "required
after device restarts". But instead they should be "required for
additional security" because strong auth can be enforced not only after
device or profile restarts, but also after profile key eviction, for
example.

Unfortunately, we've already missed the window for string changes.
Therefore, as an alternative, we use generic prompt strings in this CL,
to avoid conveying the incorrect (and misleading) information. We'll
follow up with another CL in master with a proper string change to fix
the issue.

Bug: 36511626
Test: manual
Test: make SettingsRoboTests
Change-Id: I44f84420b88bb4933ad0afa6e8032af465de0cd3
2017-07-03 09:42:20 +01:00
Maurice Lam
9990f39722 Read theme for lock screen flows
Move the applyThemeResource calls up from the setup wizard specific
subclasses up to the settings classes so that it will get GLIF v2
theme on devices that request it.

Test: Manual
Bug: 62906814
Change-Id: I6ff4ff8d9ed3e6090b35b4ae7197e5d01f5a61f8
2017-06-28 15:06:09 -07:00
Maurice Lam
562e539516 Hide skip button when setting backup lock screen
Test: Manual
Bug: 62896253
Change-Id: If16de0b4276b55101f35543bbbf107a36ad7a8e9
2017-06-27 17:38:06 -07:00
Maurice Lam
fbfca43e6e Merge "Rename buttons in lock screen setup" into oc-dr1-dev 2017-06-27 01:10:49 +00:00
Maurice Lam
c57b19d80c Rename buttons in lock screen setup
- "Continue" in choose lock flows are renamed to "Next"
- "Done" in fingerprint enroll finish screen is renamed to "Next"
  during setup flow.

Test: Manual
Bug: 62839648
Change-Id: I3ea77b759b654d7c1da1f7b545781c9dfd74caa3
2017-06-23 19:15:06 -07:00
Maurice Lam
d793590678 Add fingerprint backup message
Test: Manual
Bug: 62844631
Change-Id: I7ce5fd4033c9f37f7aa170750edc7ffe0b583fcf
2017-06-23 11:33:41 -07:00
Ajay Nadathur
a5f7392d51 Add missing 'pin' screen lock option
bug: 62206837
Test: Manual verified; Existing tests pass
Change-Id: I65985427cb012668ee23bedaf7253bec7c83fe75
2017-06-19 17:23:55 -07:00
Maurice Lam
846172564e Make confirm lock screen use the right theme
Test: cd tests/robotests && mma
Bug: 62348472
Change-Id: Ie05c2e6adba8450a1092f0fefcad6b003398de7d
2017-06-16 13:02:36 -07:00
Maurice Lam
4c930fc2d5 Allow skipping PIN setup screen
So that setup wizard can show PIN option by default.

Test: Added Robolectric and instrumentation tests
Bug: 38509560
Change-Id: Id72744dd444b9b026ca5f28f230bae3bec254b2f
(cherry picked from commit 0f897d79f6)
2017-06-15 20:23:21 +00:00
Tarandeep Singh
4803267106 Replace showSoftInput with ImeAwareEditText.scheduleShowSoftInput
Both View focus (which is triggered by View.requestFocus()) and IME focus
(which is internally handled inside InputMethodManager), are implemented
as delayed tasks on the UI thread. The goal here is to make sure that
InputMethodManager.showSoftInput() always gets called only after the target
EditText gained IME focus.
This requires some tricks, but is basically a solved problem with
ImeAwareEditText introduced by
I182b05d3ff59fb3b4732d60d0d5a464f0e0e0235. Here we can just reuse it.

Note that ConfirmLockPassword & ChooseLockPassword are the only ones
using ScrollToParentEditText. Latter doesn't call IMM.showSoftInput().

Fixes: 62542157
Test: Verified keyboard still shows-up on the ConfirmLock screen.

Change-Id: I892d639f3cc5d43db553b682d5278b8ce2fe72da
2017-06-12 17:24:39 -07:00
Tarandeep Singh
86b8f4460d Fix keyboard not launching on screen lock settings.
calling requestFocus() on EditText fixes the issue.

Bug: 62344628
Test: manual
Change-Id: If8321cb646dca5882d5a44bd1ec2f66f0f4ec5aa
2017-06-12 19:38:03 +00:00
Maurice Lam
b49526ee28 Show fingerprint text in backup screen lock
When setting up fingerprint's backup screen lock, show a different
header text that says
"To use fingerprint, set {PIN/pattern/password}" instead of
"Choose your {PIN/pattern/password}".

Test: Manual. Existing tests pass
Bug: 62187833
Change-Id: If1084e64b99291a0eda63c174793b5a091ab4bae
2017-06-05 18:22:14 +00:00
Adrian Roos
052095a7d7 Merge "Credential FRP: Add ACTION_CONFIRM_FRP_CREDENTIAL to ConfirmCredential" 2017-05-31 04:33:34 +00:00
Adrian Roos
5a9a3cde62 Credential FRP: Add ACTION_CONFIRM_FRP_CREDENTIAL to ConfirmCredential
Bug: 36814845
Test: adb shell settings put global device_provisioned 0 && adb shell am start -a android.app.action.CONFIRM_FRP_CREDENTIAL
Change-Id: Id6ce6bc5ebd9c9e2a88790cc800678aff50e580f
2017-05-30 18:25:18 -07:00
Maurice Lam
8df7173043 Change header in choose lock password
Instead of a separate headerText view, change the header in the
GlifLayout directly.

Test: Manual. Existing tests pass
Bug: 38180862
Change-Id: I02d692870f5e2230ccae87a5ac2aee4def8f61af
2017-05-26 01:00:41 +00:00
Charles He
0b7dfb03c2 Merge "Make failed ConfirmCredential attempts count towards wipe" 2017-05-25 12:35:43 +00:00
Maurice Lam
35c9abd4af Add icons to choose lock dialog
- Add icons to items in choose lock dialog
- Add title to the dialog
- Update the font size and color to match specs

Test: Manual. Existing tests pass
Bug: 38394440
Change-Id: Ie7ed9944b71fa5ca408ec6898f49cbd36865a1dd
2017-05-24 18:57:48 -07:00
Charles He
641c9fc23a Make failed ConfirmCredential attempts count towards wipe
Previously, failed ConfirmDeviceCredential attempts only counted towards the
wipe limit if it is used as a separate work challenge.

In this CL, we additionally make these failed attempts count towards the total
failures in the following scenarios:
  1) when unified work challenge is enabled
  2) for the primary user (e.g. when a wipe limit is set by a DO)
  3) for secondary users

Bug: 27238008
Test: manual, by entering wrong credentials multiple times
Test: make SettingsRoboTests
Change-Id: Ie5a099bb3fd46245c13ccf4c8f91c4d935412a4e
2017-05-23 18:04:52 +01:00
TreeHugger Robot
821c83e749 Merge "Default setup wizard to use PIN" 2017-05-18 08:43:24 +00:00
Charles He
80c3a16e92 Merge "Properly remove fingerprints when removing device lock." into oc-dev am: 98229bdf32
am: af36129ae9

Change-Id: Iffc4f16ac3301bc0fbe9b4d8a1c88b3e71ce2373
2017-05-17 13:12:00 +00:00
Maurice Lam
edb3944984 Default setup wizard to use PIN
- Added "Screen lock options" button in PIN screen, controlled by
  extra EXTRA_SHOW_OPTIONS_BUTTON, which will create a dialog to ask
  the user to choose another screen lock type.
- Extracted ScreenLockType enum and ChooseLockGenericController that
  can be shared by ChooseLockGeneric and the dialog
  ChooseLockTypeDialogFragment.
- The intent extra EXTRA_SHOW_OPTIONS_BUTTON will be set if
  ChooseLockGeneric screen starts ChooseLockPassword /
  ChooseLockPattern without asking the user. (Although the extra is
  ignored by ChooseLockPattern currently)
- Fix layout alignment for the password entry field to remove the
  extra 4dp padding on the sides.

Test: cd tests/robotests && mma
Bug: 35442933
Bug: 38002299
Change-Id: I877fbe08a0c05bb97175e1cbf0260ea6dbda22e2
2017-05-15 21:12:23 -07:00
Maurice Lam
2eb170cd6f Clean up choose lock intent creation
Consolidated the many variants of ChooseLock*.createIntent, so that
it will take the same set of arguments.

Also modified SetupChooseLock*.createIntent to modifyIntentForSetup,
which will take the intent created by ChooseLock* and modify it for
use with setup.

Test: cd tests/robotests && mma
Change-Id: I5ff033f459c33ec9980872a536b3996d89f2bbbb
2017-05-12 15:35:20 -07:00
Maurice Lam
e1976ac302 Check for sidecar null-ness before removing
Test: cd tests/robotests && mma
Bug: 36681116
Change-Id: Id48113502c538b607d92700d3e58943614cfc150
2017-05-10 17:17:44 -07:00
Tony Mak
e0405fc4f2 Use Activity.getActivityToken to align with mr2
Context.getActivityToken is introduced since O.
To align with MR2 and avoid unnecessary merge conflict,
pass the activity token from activity to controller.

Test: 1. make RunSettingsRoboTests
      2. Manual Test
      	a. Start SET_NEW_PASSWORD intent in user 0, set password.
         	User 0 password is set.
      	b. Start SET_NEW_PASSWORD intent in work profile, set password.
         	work profile password is set.

Bug: 32959373
Change-Id: I8577752d446a7c395ad30417f8c0c832f951d7b3
2016-12-14 02:57:14 +00:00
Tony Mak
8f41b9b665 Fix DPM.ACTION_SET_NEW_PASSWORD
Problem:
SetNewPasswordActivity is the new entrance for
ACTION_SET_NEW_PASSWORD. And it starts ChooseLockGeneric with the
fingerprint extras. ChooseLockGeneric infers which user is starting it
and determine which user is setting password. However, it now always
think that it is current user as it is always SetNewPasswordActivity
in current user starting it.

Solution: Resolve the user id in SetNewPasswordActivity and forward it
to ChooseLockGeneric. SetNewPasswordActivity needs to know the user id
anyway in order to have the fingerprint checking in the correct user id.

Test: 1. make RunSettingsRoboTests
      2. Manual Test
      	a. Start SET_NEW_PASSWORD intent in user 0, set password.
         	User 0 password is set.
      	b. Start SET_NEW_PASSWORD intent in work profile, set password.
         	work profile password is set.
        c. SET_PROFILE_PARENT_NEW_PASSWORD is always setting parent
           password.
        d. If fingerprint is disabled, both intent should not show
           fingerprint option
        e. DO sync auth flow with google.com account, fingerprint option
           is shown.

Change-Id: I2f73d01ab11e91b337beb90c05bbcb857dfd40dc
Fix: 32959373
2016-11-23 11:36:18 +00:00
Udam Saini
d6b1c666c5 Can launch into the lock screen with setup wizard style
The trampoline currently always uses the settings style for set action
new password. When called during setup wizard, it should launch the
setup wizard style.

Test: Added robotests for launching activity and copying setup wizard
extras. Also manually tested with an application when device is
provisioned and not provisioned.

bug:32575389
Change-Id: I5763eb87b63a46b05cd200bb73b15bdc24c8bd3b
2016-11-02 11:49:09 -07:00
Jeff Sharkey
ab50807d1e Offer a null FignerprintManager.
Settings likes null.

Test: builds
Bug: 32060380
Change-Id: I5ba19bccfd48916d4e581518928a6aee19e84a77
2016-10-11 14:30:19 -06:00
Steven Ng
4fdcec71dc 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
2016-09-26 22:13:08 +01:00
Tony Mak
9ba765b875 Hide redundant restrictions
Change-Id: Id9b8ec6f045632a87092b4dccef5f7ff73a327cc
Fix: 30109035
2016-08-02 17:09:53 +01:00
Tony Mak
0bbcdccdbf Visualize password requirements and their fulfillment
1. Aggregate policies and generate the requirements
2. When user modifies the password, check is each requirement fulfilled
   Update the view accordingly.

Change-Id: I962ed3b81ce844006be1024a493e94ce52a3fdec
Fix: 24900754
2016-07-12 11:19:45 +01:00