Commit Graph

308 Commits

Author SHA1 Message Date
Joshua Mccloskey
f970bbf68b Merge "Fixed talkback issue on confirm lock password." 2019-09-06 20:59:28 +00:00
joshmccloskey
50aea6e66b Fixed talkback issue on confirm lock password.
Fixes: 132156012
Test: Verified with BiometricPromptDemo that talkback now
announces the correct password type for PIN/Pattern/Pass.

Change-Id: I3a04fe691140abba40396f95a601f863d87ee394
2019-09-06 11:32:25 -07:00
TreeHugger Robot
7b808faefc Merge "Set the content description of pin/password boxes" 2019-09-06 01:21:06 +00:00
Christopher Tate
9efc5ab929 Track framework changes to crashApplication API
Bug: 128649910
Test: manual
Test: atest OsHostTests#testForegroundServiceBadNotification
Change-Id: Ia613372360f8b32f6ad3b7d2092e7cb27f067fbc
2019-08-28 16:48:04 -07:00
joshmccloskey
fc397f7406 Set the content description of pin/password boxes
Fixes: 79711253
Test: Talkback announces the correct string correctly upon
using either flow.

Change-Id: I01c4e308b8ef9d501f1f5d37e716956a12bea6dc
2019-08-27 12:01:30 -07:00
Sunny Shao
1bebe19101 Use FooterPreference in xml explicitly
Removed the FooterPreferenceMixin from the ChooseLockGeneric page.

Fixes: 139269907
Test: manual test
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.password
Change-Id: I86e294015354c0a6a6311441892a770503382d1f
2019-08-13 20:08:54 +08:00
Kevin Chyn
bdebaf4396 Add ability to finish() ConfirmDeviceCredential if it loses foreground am: e27a304b97
am: 7baab69bdc

Change-Id: I46b98ccd554566433c1d11272677894960fd2d16
2019-07-26 18:26:47 -07:00
Kevin Chyn
10fe104f06 Add ability to finish() ConfirmDeviceCredential if it loses foreground
am: e27a304b97

Change-Id: Idcc2dab10c42016f0f440cbf495974bf3ee1ba94
2019-07-26 18:13:32 -07:00
Kevin Chyn
e27a304b97 Add ability to finish() ConfirmDeviceCredential if it loses foreground
If user enters face settings but does not enter the password, then
turns off the screen, it's possible the challenge is invalidated. Instead,
we should finish() the device credential screen as well as FaceSettings.

This prevents
1) The user from being prompted for credential with lack of context
2) Credential returning a HAT that wraps an invalidated challenge

The user will be returned to the security settings screen, where they
have more context and can decide if they want to enter face settings again.

Fixes: 138273242

Test: 1) Open face settings, do not enter password
      2) Press power button
      3) Unlock keyguard
      4) User is not presented with credential screen
Test: Go through SUW, turning on/off the screen at various security
      screens. Able to enroll successfully

Change-Id: I3c3d4600138012821bb0eea7d2927df00011cdb0
2019-07-26 16:42:14 -07:00
Kevin Chyn
75517cb6a8 Merge "Do not request cancel authentication unless currently authenticating" into qt-r1-dev am: ba4fad160d
am: 6d549437af

Change-Id: If055528ab0d92318fc552c2396465cecd8e5acea
2019-07-26 12:45:44 -07:00
Kevin Chyn
6fdc3745c3 Merge "Do not request cancel authentication unless currently authenticating" into qt-r1-dev
am: ba4fad160d

Change-Id: Iea3b2552097a1decd9dc106e3a31d71d772ab1d6
2019-07-26 12:35:33 -07:00
Kevin Chyn
0a33d62a17 Do not request cancel authentication unless currently authenticating
Currently we always send cancel() if ConfirmDeviceCredentialActivity
goes into the background. However, if the biometric state is no longer
authenticating, requesting cancel() in this state will result in an
inconsistent state between BiometricService/client and
ConfirmDeviceCredentials.

BiometricService/client will receive the ERROR_CANCELED message incorrectly,
while ConfirmDeviceCredential is showing / pending user password. When
the password is entered, its result is ignored.

The correct behavior is for ConfirmDeviceCredentialActivity to invoke
cancel() only if it's still authenticating. Otherwise BiometricService
and its client will receive ERROR_CANCELED, instead of the actual password
auth result.

Bug: 138279856

Test: BiometricPromptDemo, enable device credential fallback, get into
      lockout state, successfully enter password. API result is
      success instead of "canceled" now.

Change-Id: I6521e896d0402fe856dc85476f51149c9b3084a8
2019-07-26 11:20:10 -07:00
Curtis Belmonte
209c049dca Fix work account setup lock screen content for face auth
am: 5604585930

Change-Id: Id6044f31b68d7b36a40b165be639bc58cc0e8b33
2019-07-08 17:10:55 -07:00
Curtis Belmonte
5604585930 Fix work account setup lock screen content for face auth
For devices which provide biometric authentication options, such as
fingerprint or face, we should be showing different content on the lock
setup screen during the corp account setup wizard. Namely, the title
should read "Choose screen lock", and the "Not now" option should be
changed to "Continue without [auth method]". However, we currently only
check for whether fingerprint authentication is available, leading to
incorrect text for devices with face authentication.

This CL fixes the issue by changing the introducing a private method to
check for any biometric authentication (currently just mForFingerprint ||
mForFace). It then uses this method in place of the existing
mForFingerprint checks in SetupChooseLockGeneric.

Test: On a device with fingerprint auth and one with face auth:
1. Set a work profile with TestDPC and add some password quality requirement
2. adb shell settings put global device_provisioned
3. adb shell am start -a android.app.action.SET_NEW_PARENT_PROFILE_PASSWORD
4. Verify that the correct content is now shown (screenshot/xZPVtpa3j3Z)
5. Verify that setting lock with and without biometric auth still works

Fixes: 136556653

Change-Id: I46d3c964f05986aa97cc8ed77fe0ac125337ddd0
2019-07-08 19:03:56 +00:00
Alex Kershaw
0f9426a8b5 Merge "Don't display footer text when calling app is DPC." into qt-dev am: 993446a68e
am: e19ede22a2

Change-Id: Ia9a653d6ce5c6a9164d044e7860e866a76817ee9
2019-05-21 12:20:01 -07:00
Alex Kershaw
29d2bff7e1 Don't display footer text when calling app is DPC.
If the calling app has admin rights (DA/DO/PO), don't display footer
text that the calling app is 'recommending' that a password is set.

Fixes: 131888973
Test: atest com.android.settings.password.SetNewPasswordActivityTest --verbose
Test: atest com.android.settings.password.ChooseLockGenericTest --verbose
Test: manual
Change-Id: I32785d33e6425416fc1dbba24540ece8917b58f3
2019-05-20 12:19:22 +00:00
Colin Cross
807e861105 Use if instead of switch for resources
Converting to Soong will move some code from directly compiled
into the app to compiled into an Android library and then
shared between the app and the tests.  This will cause resource
IDs in the library to become non-final, which means they can
no longer be used in case statements.  Convert affect case
statements to if blocks.

Test: m RunSettingsRoboTests
Change-Id: I25742a374f06d3fa4decbfc0d223a350acc50881
2019-05-13 13:42:01 -07:00
Fan Zhang
9db66a562c Clean up before making all setting page render edge-to-edge
These classes are casting view to LinearLayout unnecessarily. Later we
might change the root view away from LinearLayout. The cast will cause
crash.

Bug: 132182711
Test: go through SUW.
Change-Id: Iea31882f8edea0c87ef8e95b4da9b6bffa8ea7d0
2019-05-10 21:27:05 +00:00
Pasty Chang
d6f9ec122d Merge "Update the fingerprint skip dialog" into qt-dev 2019-04-25 06:12:19 +00:00
Pasty Chang
393492438b Merge "Change to show generic lock screen before setup fingerprint or face" into qt-dev 2019-04-25 06:12:19 +00:00
pastychang
5145dc1529 Update the fingerprint skip dialog
Test: atest
Bug: 124028212
Change-Id: I1a1151c231862ef21b302317f0f105de1a79eac7
2019-04-25 02:16:23 +00:00
joshmccloskey
6b30136edf Fixed Infinite loop method call.
Test: Verified that setupwizard flow no longer causes infinite loop.
Fixes: 131106091
Change-Id: I0777fefa08063c62f7ef8cbbc252e219efa98f24
2019-04-25 00:42:31 +00:00
joshmccloskey
a104d290de Updated ConfirmDeviceCredential strings
Test: Verified with BiometricPromptdemo that pin/pattern/pass
show up correctly.
Fixes: 129797243
Change-Id: Ib075d6742f7e2ad03e491132ae9506dce67558fc
2019-04-16 14:19:29 -07:00
Kevin Chyn
79f49b4626 Merge "Launch correct enrollment activity from ChooseLock" into qt-dev 2019-04-14 04:03:54 +00:00
Kevin Chyn
5ab064f343 Launch correct enrollment activity from ChooseLock
Test: no noticable difference when setting up fingeprint work profile

Fixes: 130397083
Change-Id: I34be5262cc52052ce25a188f19bbcc13f938ac92
2019-04-13 08:17:38 +00:00
pastychang
fa68ec4f56 Set suw description textview to fixed id
Heavy theme supports to costomize description text style. Modify it to fixed id
that can be customized by partner resource.

Heavy theme screenshot: https://screenshot.googleplex.com/TL4M7wmTaPg
Set fixed id screenshot: https://screenshot.googleplex.com/CA6QHoNTQBZ

Test: atest
Bug: 121988926
Change-Id: I8882acd49e7d57f24afa9dd6f3e9abfd06556053
2019-04-12 09:20:12 +00:00
Kevin Chyn
3c2d168026 Merge "ConfirmDeviceCredential should respond to cancel when launched through BP" into qt-dev 2019-04-10 08:34:34 +00:00
pastychang
7a083f8f2f Change to show generic lock screen before setup fingerprint or face
Bug: 121235656
Test: atest
Change-Id: Ib2a4c7382334433a56225f5338896f70b752071d
2019-04-09 02:33:17 +00:00
cnchen
caf122bcb6 Fix fingerprint screens from "Anything else" screen not applying Stencil theme
Bug: 129788677
Test: RunSettingsRoboTests, manual test intent extra data has been passed
Change-Id: Icfae54061e5d87a8ba9c95263d840c456aac5bcb
2019-04-08 03:45:59 +00:00
Kevin Chyn
eeca918ac7 ConfirmDeviceCredential should respond to cancel when launched through BP
Fixes: 128747871

Test: BiometricPrompt launched by ConfirmDeviceCredential is canceled
Test: ConfirmLock* can also now be canceled
Test: No effect on non-biometric related paths

Change-Id: I237de136e63d523fece87fad7a93f4ecd66d800b
2019-04-04 17:22:23 +00:00
Maurice Lam
e7cad18394 Add log about ChooseLockGeneric refusing to start
Test: Manual
Bug: 129445834
Change-Id: I4fd034a3c3d1c004144d4b49c0ce14e7aa89fcba
2019-03-29 10:58:54 -07:00
Maurice Lam
9c2fae83a3 Fix fingerprint icon on pattern screen
Test: atest [...]/ChooseLockPatternTest.java
Bug: 129342100
Change-Id: I4e670b6265fe4a77ecbd8ede9a703fa0762f7504
2019-03-26 18:50:21 -07:00
TreeHugger Robot
6029cf9677 Merge "Do no crash when profile is deleted" 2019-03-25 14:27:28 +00:00
Rubin Xu
654a78b56e Do no crash when profile is deleted
Catch the exception and finish the activity.

Change-Id: I45deec32fd49119ab7943a941158bca82b63c432
Fix: 122823738
Test: manual
2019-03-22 15:06:56 +00:00
Irina Dumitrescu
4b96dc3ec7 Fail the screen lock flow if the old password has already changed.
Test: atest RunSettingsRoboTests
Bug: 120039091
Change-Id: Ib0860ccbc1ba84a2ac8dafcf3cf33f6ddf160e4c
2019-03-22 11:49:00 +00:00
Rubin Xu
e0efe27f03 Force LSKF in ConfirmCredential UI when pending escrow token exists
Escrow tokens can only be activated by user confirming their LSKF,
while ConfirmCredential allows both LSKF and biometrics by default.
By requiring LSKF, it simplifies the DPC's flow of requesting the user
to activate a pending escrow token.

This change tweaks the ConfirmCredential UI to skip biometrics if pending
token exists.

Bug: 127377026
Bug: 76084679
Bug: 79547502
Test: manual
Change-Id: Iee9b2d57d7f4de98e225b3aeff7cc35cc8e3d36a
2019-03-18 17:20:26 +00:00
bernardchau
46ccd797ac Update screen lock complexity permission to password complexity
This is to match the method name "getPasswordComplexity" as requested by API review feedback

Bug: 128030136
Test: N/A
Change-Id: Ia4ce1b0ceb581608615364b41a05ca71142ef2b7
2019-03-11 16:39:08 +00:00
Kevin Chyn
37293d59d3 Update Settings with BiometricPrompt API update
Bug: 126190552
Test: Builds
Change-Id: I4b99a59982c1d23be7e49940a271f7652c51d480
2019-03-05 18:29:36 +08:00
Rich Cannings
b27c4308a2 Refactor passwords/pins/patterns to byte[]
Relating to packages/apps/Settings

Bug: 120484642
Test: manual - test setting and unlocking passwords/pins/patterns.
      automated - 20 of about 500 tests fail due to fragile synthetic
      password test code.

Change-Id: Idec8338d141c185bef67ade12035fdb2fa9d17ea
2019-02-26 14:46:12 -08:00
Lenka Trochtova
bb8e81770b Settings UI fix for missing secure lock screen feature.
Bug: 123737250
Bug: 111072170
Bug: 111071972
Test: manual both with and without the feature flag
Test: make RunSettingsRoboTests

Change-Id: Iacefa95dce85d860633315e074cbf2772691cfdd
2019-02-25 10:18:35 +00:00
Kevin Chyn
200162b06a Use BiometricPrompt description field for CC description instead
The description field handles longer strings more gracefully

Fixes: 124001277

Test: 1) Open Wi-Fi picker
      2) Select gear on the connected network
      3) Select share button
      4) On BiometricPrompt, text is not cropped

Change-Id: I945830a137a0dc203bba04728b507ceff020dfdc
2019-02-14 17:43:45 -08:00
Bernard Chau
b3adb9068e Updated permission name according to API review
Fix: 123661671
Test: N/A
Change-Id: Ia06c4ede8b9379e84a87454dbca8ba361a4f49b4
2019-02-08 15:58:19 +00:00
TreeHugger Robot
d9d6acf1fd Merge "Logging SetNewPasswordActivity events" 2019-02-08 13:59:19 +00:00
Kevin Chyn
e264bf3f66 Retrieve effectiveUserId after userId is set/re-set
Fixes: 123502937

Test: Followed steps in comment #1 of the first bug above
      Note that the test should be done with unified lock disabled, e.g.
      have separate pin/pattern/pass for owner and work profile

Change-Id: I01d66a8a1d3ed1811497c2acb7db6158d99727a0
2019-02-06 11:23:27 -08:00
Bernard Chau
00870bff0d Logging SetNewPasswordActivity events
Every launch of the activity with either ACTION_SET_NEW_PASSWORD
or ACTION_SET_NEW_PARENT_PROFILE_PASSWORD is logged, regardless
of whether extra EXTRA_PASSWORD_COMPLEXITY is used or whether
the caller has the required permisssion or not
- action: ACTION_SET_NEW_PASSWORD or
ACTION_SET_NEW_PARENT_PROFILE_PASSWORD
- pageId: SET_NEW_PASSWORD_ACTIVITY
- key: calling app package name
- value: raw value of intent extra EXTRA_PASSWORD_COMPLEXITY, or
Integer.MIN_VALUE if it does not exist

Bug: 120840632
Test: atest packages/apps/Settings/tests/robotests/src/com/android/settings/password/PasswordUtilsTest.java
      atest packages/apps/Settings/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java
Change-Id: I57dc55110f7f284ddad7d3fc971d1f2298b46cbd
2019-02-01 13:03:40 +00:00
TreeHugger Robot
2fd04a9fb5 Merge "ConfirmDeviceCredential should default to setRequireConfirmation(true)" 2019-01-30 04:49:37 +00:00
Kevin Chyn
440afb8868 ConfirmDeviceCredential should default to setRequireConfirmation(true)
If the value is unset, we should maintain the same default behavior
as BiometricPrompt, which is to dfeault to requiring confirmation.

Fixes: 123598496

Test: manual
Change-Id: Icaf27d184e0aea5eee077b8ec14bca27fd0ddad3
2019-01-29 18:35:53 -08:00
Fan Zhang
c3fd289969 Remove dead code.
Bug: n/a
Test: rebuild
Change-Id: I71f8d9d99bbff1186e8df518ec8d27db3447ffbe
2019-01-29 16:27:31 -08:00
Kevin Chyn
e56df8877a CDCA is plumbed through BP
CDCA can be invoked with a bundle extra originating from BiometricService.
This allows us to add/forward new BP builder options to CDCA without having
duplicate API each time.

Bug: 111461540
Test: test app, receives correct callbacks
Test: CDC still works

Change-Id: Ia2080d161abba87949338176b34cdf440ed4ed53
2019-01-25 18:13:38 -08:00
Kevin Chyn
29aaf60ace Revert "Plumb setRequireConfirmation to CC"
This reverts commit 56c745c38e.

Reason for revert: Adding functionality differently

Change-Id: Iadc276ff32b9bef4ea3d7dc6dc051dcfc943e134
2019-01-25 17:49:31 -08:00