Commit Graph

115 Commits

Author SHA1 Message Date
Kevin Chyn
871e55fc54 Move Fingerprint settings to biometrics/fingerprint
Bug: 110589286

Test: make -j56 RunSettingsRoboTests
Test: adb shell am start -a android.settings.FINGERPRINT_ENROLL still works
Test: adb shell am start -a android.settings.FINGERPRINT_SETUP still works
Change-Id: If33b557137cae7b57e4a0e906ee95032bc589436
2018-06-25 16:51:16 -07:00
Kevin Chyn
fde790bf2c Update Fingerprint references in Settings
Bug: 110387294

Test: builds
Change-Id: Iac9647949b7e51229cc0bb391ee83a641e0bfcdc
2018-06-25 16:17:24 -07:00
Fan Zhang
c7162cd24d Reorder and clean up imports.
Test: rebuild
Change-Id: I178485c84ae7146f991fd77b6d7504b029942a68
2018-06-18 15:45:09 -07:00
Doris Ling
06d264de19 Fix crash in ChooseLockGenericFragment.
- in onActivityResult(), the intent data can be null. Check for non null
intent data before trying to read the extra string from the intent.

Change-Id: I14c42725a7885a84688ae39fde63e30ad0536001
Fixes: 109675331
Test: make RunSettingsRoboTests
2018-06-12 16:39:09 -07:00
Pavel Grafov
5c9bbc1777 Micro-cleanup in password settings
Removed unused constant and member that was set and retained across instances
but never actually used.

Test: manual, set password
Bug: 30558331
Change-Id: I575bf1f0508b9441b220641715e9ca7372d9b32c
2018-05-18 17:03:20 +01:00
Pavel Grafov
5f139101e2 Simplify password length constraints checking
Currently minimum password length policy is queried twice:
1. When constructiong the intent in
   ChooseLockGenericFragment.getIntentForUnlockMethod and then
   passed into setPasswordLengthRange in getLockPasswordIntent
2. in ChooseLockPasswordFragment.processPasswordRequirements via
   LockPatternUtils.getRequestedMinimumPasswordLength().

These two values are then combined in processPasswordRequirements
using Math.max(), which doesn't make sense since it is the same
value.
With this CL it is only queried once in processPasswordRequirements.

+ cleaned up code filling in unused list.
+ removed unused extras, since they are never set anywhere.

Bug: 30558331
Test: atest ChooseLockPasswordTest
Test: atest SetupChooseLockPasswordTest
Test: atest ChooseLockGenericTest
Test: manual, set password policy and change password.

Change-Id: Ifc4946d5b3b26131da01178fa9c827de7a52c7c6
2018-05-14 12:09:15 +01:00
android-build-team Robot
579300b00c Merge "Show Option of "Screen lock options" on SUW pattern screen page" 2018-05-09 19:09:08 +00:00
pastychang
aea3e0b205 Show Option of "Screen lock options" on SUW pattern screen page
Add more check for stages of Patern input. Make sure that button "Screen lock options" is visiable.

Test: atest SetupChooseLockPatternTest
Bug: 76431549
Change-Id: Iec7d0eb4a3c16ebd2a504fbbc6de465c341ca43a
2018-05-04 17:31:41 +08:00
prochinwang
ae8fdff1af Using plurals to define for min length of string
When a number of min length of a string is singular,
the definition of <plurals> can show a localization with a correct
grammar for singular.

Bug: http://b/78537276
Test: Manual
Change-Id: Ic5d94078f1c80a81a37ff7c11d5d5e106a764bed
2018-05-03 06:35:15 +00:00
Maurice Lam
cd26201845 Merge "Hide cancel button in Confirm Lock Pattern" into pi-dev am: fd45210510
am: 160ffd6c4c

Change-Id: Ie21d2b916927cd200eaf1195647dd983ac7594c4
2018-04-26 16:30:58 -07:00
Maurice Lam
0283372fc2 Hide cancel button in Confirm Lock Pattern
Test: Manual
Bug: 77790615
Bug: 77565685
Change-Id: Ic3a12d169be037376f040dd1129678e814760091
2018-04-25 19:57:24 -07:00
Rubin Xu
032bdf4f84 Merge "Switch to new checkPasswordHistory method" into pi-dev am: 4a1b84e613
am: 399675408d

Change-Id: I53198b254e2e93aee0ab8a7e980e46bd20745e05
2018-04-24 06:33:31 -07:00
Aurimas Liutikas
e0069d332d Migrate Settings to androidx.
Test: make Settings
Bug: 76692459
Change-Id: I941dea40562170649bf056e675cc32e5163c0e39
2018-04-20 12:52:29 -07:00
Rubin Xu
c33e2a1cef Switch to new checkPasswordHistory method
This is part of the fix that upgrades the hashing of password history
to a more secure design.

Bug: 32826058
Test: manual
Change-Id: Ib022c8db1f7b63f75b69d0177fa5f6be528a83c5
2018-04-20 18:09:59 +01:00
Rubin Xu
359a6b5c06 Do not set separate challenge flag before clearing lock
This step is redundant since clearLock() would set the flag internally anyway.
In fact setting the flag before calling clearLock() is wrong since it will
lead LockSettingsService.setLockCredential() to think that the target profile
does not have a unified challenge, causing it to use an incorrect existing
credential for password change, leading to untrusted credential change.

Bug: 77892111
Test: Create profile; set separate empty work challenge; observe no crash
Change-Id: I4d76b20706a796654f9389f31ae8c46d51d7adac
2018-04-11 11:43:18 +01:00
Fan Zhang
1b9b1a2311 Remove FingerprintManagerWrapper
No longer needed after robolectric migration

Bug: 76167422
Test: robotests
Change-Id: I922cde8ac3667081a512cf899af86f68b24485a6
2018-03-30 16:30:31 -07:00
Rubin Xu
9d2edcbcbf Remove password blacklist check
Bug: 73750934
Test: compiles
Change-Id: Ic6c40255333d171dc55df479dd6c0004371551b7
2018-03-29 17:26:01 +01:00
Rubin Xu
b0a35de10b Merge "Confirm parent user's credential when setting lock for profile" into pi-dev 2018-03-29 08:35:46 +00:00
Rubin Xu
c548977ea1 Confirm parent user's credential when setting lock for profile
When a DPC fires ACTION_SET_NEW_PASSWORD to set a work challenge
for an existing work profile with unified challenge, require the
user to confirm exisiting device lock first. This is not only for
increased security, but also a functionality requirement: the
system can only re-derive the current work profile password needed
by the password change after a fresh confirm credential operation.

Test: Add device lock, create work profile, then execute:
      adb shell su 1010000 am start --user 10 -a android.app.action.SET_NEW_PASSWORD
      Verify the device is prompting for current password.
Bug: 65910682
Change-Id: Ib4b4c88c1551cfff626f707d5f3182160a1ec46c
2018-03-28 16:03:01 +01:00
Vishwath Mohan
670c252429 Disable pattern fading during the setup flow.
This CL disables fading the pattern during the pattern setup flow.

Test: The pattern fades everywhere but during the pattern setup flow.
Bug: 72798512
Change-Id: I959270cf39bc35080cce21777f0e168373406a17
2018-03-27 19:47:08 +00:00
Rubin Xu
35f3d2fbac Block simple numeric passwords in ChooseLockPassword
Fix the previously-missing case where the user elects to set
a password (instead of PIN), but still sets a numeric password
that contains repeated sequence which should be blocked by admin
policy.

Bug: 72039850
Test: Set NUMERIC_COMPLEX password quality, then attempt to
      enroll a repeating numeric PIN as lockscreen *password*
Change-Id: I7c7525716b37a5330147b899b80026ca71c3ce0c
2018-03-26 16:07:01 +01:00
TreeHugger Robot
59b25d0043 Merge "Separate skip and clear button in pattern screen" into pi-dev 2018-03-24 05:46:35 +00:00
Jyun LuoLai
644c707590 Merge "Fix PATTERN UI to align PIN&PASSWORD screen" into pi-dev 2018-03-23 00:56:00 +00:00
Maurice Lam
3e3b8a9618 Make GLIF theme default for confirm lock screen
Use GLIF theme as the default for confirm lock screen, even for
"external" launches of the screen. Renamed the theme from "internal"
to "normal" to reflect this change.
Dark theme code will be cleaned up later.

Test: Existing tests pass
Bug: 62573742
Change-Id: I86958eb3a440d7274807f1cf453c3e53c16c23e7
2018-03-21 18:21:04 -07:00
Maurice Lam
e13e319e0c Separate skip and clear button in pattern screen
So that the action performed is always the same as what the button
label says.

Test: m -j RunSettingsRoboTests
Bug: 72197171
Change-Id: Ia2a02b630a86874d002e462e41fdf676c2d27203
2018-03-21 14:06:07 -07:00
Jyun LuoLai
11960ce2ce Fix PATTERN UI to align PIN&PASSWORD screen
Change-Id: I475e90ab11a9821fc21623dcfdd3854914a7eb04
Fixes: 69002501
Test: Manual test & make RunSettingsRoboTests
2018-03-21 09:36:50 +08:00
Maurice Lam
4723abfe26 Hide options button when user starts entering pattern
Test: cd tests/robotests && mma
Bug: 72409245
Change-Id: I82ab8822f13bc8bf8b74bc67f6d4d3a9fd2cc0c8
(cherry picked from commit ad554244b6)
2018-03-08 18:59:29 +00:00
Kevin Chyn
405a426a36 ChooseLockPassword should not show "confirm" until min length is met
Fixes: 70561465

Test: manual test with setting pin/pw
Change-Id: I545202f508fa7b1a73b9a2e66a8f8216deba7555
2018-02-28 17:52:34 -08:00
Kevin Chyn
d7b4b1b951 ChooseLockPassword shows wrong string when confirmed password is wrong
Fixes: 70561469

Test: try to setup a password/pin, but type in a wrong pw/pin
      when confirming. the button should stay as "confirm" instead of
      reverting to "next"

Change-Id: Iea570c2d869b9d561b26046d30d08f40abca0c93
2018-02-28 17:28:15 -08:00
Maurice Lam
212dd952a1 Improve pattern layout for tiiiny screens
On small screens < sw400dp,
- Don't show icon
- Don't show "Screen lock options" button

Test: cd tests/robotests && mma
Bug: 72764729
Change-Id: I8d9863d43c877fcc18f504d91d3183760b3fafc2
2018-02-15 12:19:09 -08:00
Doris Ling
72489725c6 Change superclass to InstrumentedFragment.
- for fragments that do not implement the preference screen, change them
to inherit from InstrumentedFragment instead.

Change-Id: I791c2634024bd2c248efea955be5c680180d735c
Fixes: 68277111
Test: make RunSettingsRoboTests
2018-02-02 13:41:16 -08:00
Fan Zhang
73dc479ab5 Remove security settings v1 code
Change-Id: I958ed1588009b91f64cd8ecb98208e72a891903e
Fixes: 32953042
Test: robotests
2018-01-29 13:17:05 -08:00
Ajay Nadathur
7b1d96a345 Skip option missing on pattern lock screen
- Skip present during suw/deferred + non-fingerprint flow
- Skip hidden when opened from settings
- Skip hidden during suw/deferred when trying to setup up fingerprint

Test: Manually verified, robolectric tests updated
bug: 71763670
Change-Id: Ie3aac68a6d04c7727320af83532640580248bd47
2018-01-11 14:30:12 -08:00
Ajay Nadathur
b14b996dbf Propagate extras when switching between choose lock activities
bug: 71715828
Test: Manually tested, added robolectric test
Change-Id: Ide18c94f52fe896aee0636ef702cd808b7d88638
2018-01-10 14:10:54 -08:00
Ajay Nadathur
a63075f0eb Merge "Show 'screen lock options' on all lock screen types" 2018-01-05 21:19:14 +00:00
Ajay Nadathur
a1314df69c Show 'screen lock options' on all lock screen types
bug: 66239135
Test: Manually tested and verified, robo tests updated
Change-Id: I42ae63661b5d5061fea848e2c1e8a0c8943864e4
2018-01-05 11:03:31 -08:00
Jeff Sharkey
05d1b4c00e Merge "Unlock all users before moving or migrating." 2018-01-04 22:25:01 +00:00
Jeff Sharkey
219ec91e1a Unlock all users before moving or migrating.
When moving apps or shared storage between storage media on FBE
devices, we need all users to be unlocked to successfully move
the data.  This change asks the user to enter the credentials for
any locked users as part of the moving/migration wizard flows.

To do this we relax Utils.enforceSameOwner() to let us prompt for the
credentials of unrelated users, but we carefully only extend this
capability to callers interacting with the "internal" activities,
which require the MANAGE_USERS permission.

Test: builds, boots, users are unlocked before moving
Bug: 29923055, 25861755
Change-Id: Ifaeb2557c4f8c4354e1d380eaa0e413768ee239f
2017-12-19 15:07:05 -07:00
Alexandru-Andrei Rotaru
aeb3e4473b Check password blacklist when setting credential
If the password is valid by all other checks, see if it is present on
the blacklist and disallow it if it is.

Test: set a password blacklist, try and set a blacklisted password and
see an explanation, set a non-blacklisted password successfully.
Test: make ROBOTEST_FILTER=ChooseLockPasswordTest RunSettingsRoboTests

Bug: 63578054
Fix: 65659151
Change-Id: Id155b824ad4b5839c23b6f5fd3fdfdcfc78c3df1
2017-12-18 13:34:21 +00:00
Fan Zhang
e0b0e9f902 Refactor help menu stuff into a controller
This is a clean up to action bar menu item pattern, we will use the same
pattern to build search icon on all pages in a later change.

Bug: 68814716
Test: robotests
Change-Id: Iedd3ec263e8ccb63ed75ec7a95b28c00878b1de4
2017-11-29 15:51:04 -08:00
Fan Zhang
a681094e8a Convert SecuritySubSetting into DashboardFragment
Bug: 32953042
Test: robotests
Change-Id: Iecdb0a42695644ff8aa095bcd49b5ccb16aa46d4
2017-11-06 17:26:25 -08:00
TreeHugger Robot
10d0518fa3 Merge "Update confirm button label" 2017-10-30 19:09:34 +00:00
Doris Ling
ed4685fafb Update activity titles for fragments without preference screen.
1. Move getPreferenceScreenResId() from individual subclass to
InstrumentedPreferenceFragment.

2. Removed InstrumentedPreferenceFragment.getTitle() and let the
preference fragments that do not have preference screen set the activity
title directly instead.

3. Removed OptionsMenuFragment as all it does is call
setHasOptionMenu().
- changed subclasses of OptionsMenuFragment to extend from
InstrumentedPreferenceFragment directly.
- none of the exisitng subclasses actually implements the option menu
related methods to provide any option menu. So, the setHasOptionMenu()
call is not added to the subclasses.

4. Update Languages preference title.
- launch the fragment from the preference controller instead of from the
default handling, as we need the title res id at launch time to get it
work properly when retrieving the title from back stack.

Bug: 64564191
Test: blaze-bin/screenshots/android/i18nscreenshots/i18nscreenshots
Change-Id: Ibecdcab32cbaed8bf604ec5ebe0a926b4e489a7d
2017-10-26 12:01:06 -07:00
Maurice Lam
ac8024ef44 Update confirm button label
Test: Existing tests pass
Bug: 65123475
Change-Id: Ib730507db54fe2bab881fa040ead737c6736ee1a
2017-10-18 16:16:35 -07:00
Pavel Grafov
24ff765731 Preserve old password when handling SET_NEW_PASSWORD. am: 40e187b364
am: 51f15da8e6

Change-Id: I9b46697d14579ab8aedfffcdfd14ddc02cad5cf0
2017-10-17 17:35:30 +00:00
Pavel Grafov
40e187b364 Preserve old password when handling SET_NEW_PASSWORD.
Currently the only way mUserPassword can be set is when it comes
from onActivityResult. This way when the user chooses "Continue
without Pixel Imprint", and we switch ChooseLockGeneric->InternalActivity,
mUserPassword becomes null (it is not preserved in intent extras).
And then this null is used in getLockPasswordIntent which causes the issue.

Another issues is that when the user chooses to use fingerprint,
mHasChallenge is set to true and password is not forwarded to
ChooseLock(Password|Pattern). I changed the intent builders so that both
old password and challenge can be sent at the same time, so the password
is not lost when fingerprint is set.

Bug: 67672081
Test: cd packages/apps/Settings/tests/robotests/ && mma
Test: manual, adb shell am start -a android.app.action.SET_NEW_PASSWORD,
      tried setting pin/password with and without fingerprint.
Test: manual, tried to change lock via Settings -> Security&Location
Test: manual, set pin + fingerprint in Setup Wizard, FBE and FDE devices
Test: manual, set pin + added account, used pin to unlock FRP in SUW
Change-Id: I38d56d84f95c63fef24c2aa1a031d629f22756a1
2017-10-17 13:19:35 +01:00
Fan Zhang
31f699c281 Move code from SuggestionChecks to FeatureProvider
This is step one to deprecate SuggestionChecks. Moving logic into
SuggestionFeatureProvider allows potential logic override and improves
testability.

Also moved isSuggestionComplete tests to corresponding activity/pref
controller test.

Bug: 65065268
Test: robotests
Change-Id: I2071d30fc58bb84acad2083ca03cfcf7d41f10cb
2017-09-29 11:36:16 -07:00
TreeHugger Robot
4314866a22 Merge "Update strings for pattern screens" 2017-09-19 03:57:59 +00:00
Doris Ling
dee1a22c45 Consolidate all wrappers used for testing.
- Add the wrapper package and move all wrappers to the wrapper package.
- Get rid of some wrapper interface/impl implementation and have a
wrapper class directly.

Bug: 65634579
Test: make RunSettingsRoboTests
Change-Id: Ic757d8f7bacfa7a034c7e692205bc1dc4b0e1de1
2017-09-14 18:24:49 -07:00
TreeHugger Robot
a15ec6d888 Merge "Removed unused use of setting launch stack id." 2017-09-14 15:44:14 +00:00