Seperate FingerprintEnrollmentActivity to another InternalActivity and
SetupActivity. InternalActivity is used for FingerprintSettings.
SetupActivity is used for setupwizard flow.
Bug: 284248001
Test: atest FingerprintEnrollmentActivityTest
Test: atest for biometrics/biometrics2 in unit tests
Test: settingRoboTest for biometrics
Change-Id: I9fb5dc34300060b9ccf857a3335b81a5d4bf5c7b
Create a mechanism to allow OEM config posture guidance with
'config_face_enroll_guidance_page', and customize the config
'config_face_enroll_supported_posture' with standard postures
0 : DEVICE_POSTURE_UNKNOWN
1 : DEVICE_POSTURE_CLOSED
2 : DEVICE_POSTURE_HALF_OPENED
3 : DEVICE_POSTURE_OPENED
4 : DEVICE_POSTURE_FLIPPED
For example, if we set 1 for the device, then device only
allow to enroll face in closed(folded) state, if device do
not in the allow state, we will prompt specific guidance
page activity defined in config_face_enroll_guidance_page.
At this stage , we only integrate 2 states OPENED/CLOSED through
ScreenSizeFoldProvider and register for onFoldUpdated() callback
- isFold(DEVICE_POSTURE_CLOSED): finish posture guidance
- !isFold(DEVICE_POSTURE_OPENED): launch posture guidance
- onActivityResult : reset mOnGuidanceShown false
1. Fix A11y lottie animation bug
2. Impl FoldProvider.FoldCallback
3. Register callback to ScreenSizeFoldProvider
4. Integrate back stack, skip, cancel events
- Back key : RESULT_CANCELED
- Skip btn : RESULT_SKIP
- Posture changed : RESULT_FINISHED
5. Set single instance for relative activities
6. FaceEnrollFoldPage listen for onConfigurationChanged()
7. Add empty face_posture_guidance_lottie.json for overlay
Test: atest SettingsGoogleUnitTests
Test: m -j SettingsGoogleRoboTests RunSettingsGoogleRoboTests
Test: m RunSettingsRoboTests ROBOTEST_FILTER= \
"com.android.settings.biometrics.face.FaceEnrollEducationTest"
Test: m RunSettingsRoboTests ROBOTEST_FILTER= \
"com.android.settings.biometrics.face.FaceEnrollIntroductionTest"
Test: Manual launch security settings face enroll, unfold device
and observe posture guidance showing fullscreen on top
Test: Fold device ensure the posture guidance activity finish
Bug: 261141826
Fixes: 231908496
Change-Id: Ib9f43f82f7d19f3f187c2f6f8984e76cd843afbc
Merged-In: Ib9f43f82f7d19f3f187c2f6f8984e76cd843afbc
Since the SetupChooseLockPattern include header icon
header title, header sub-title, pattern state description,
LockPatternView and FooterBar, there was a limited room
for LockPatternView especially in the confirm steps which
both header title and pattern description occupy 2 lines space.
Hance the PatternView size used to inconsistence in-between
1st draw and 2nd confirm draw, besides it's visual looks
jumping and small on some device which have smaller display.
This solution includes 3 changes:
1. Organized the pattern view message to leverage
header sub-title view, then we can resever more space.
(Set minHeight=2 for sub-title)
2. Set screen_lock_options button visibilty to GONE when
the stage in 2nd confirmation.(Previously it's INVISIBLE
and reserve additional space)
3. Let LockPatternView align bottom of FrameLayout to prevent
the view juming and flicker.
4. Clean up unused forAnyBiometric flag and code.
5. GlifLayout.getDescriptionTextView() == mHeaderView
Need setDescriptionText() to make the view from GONE -> VISIBLE
6. Polish the stage flow and ensure IntroductionStage show
correct message
7. Add ChooseLockPattern into embeded activity white list
Force show ChooseLockPattern in fullscreen in case the Pattern
view truncated in `NeedToConfirmStage` where the title showing
2 lines and push pattern view down, and get bad UX in the
device which integrate a shorter display.
8. Add test cases for all stage and polish legacy test code.
Test: make RunSettingsRoboTests ROBOTEST_FILTER= \
"com.android.settings.password.SetupChooseLockPatternTest"
Test: make RunSettingsRoboTests ROBOTEST_FILTER= \
"com.android.settings.password.ChooseLockPatternTest"
Bug: 249974175
Bug: 260027850
Change-Id: I868af9b14ba99af5d78a05f6c2a570ccc07aea15
Since the SetupChooseLockPattern include header icon
header title, header sub-title, pattern state description,
LockPatternView and FooterBar, there was a limited room
for LockPatternView especially in the confirm steps which
both header title and pattern description occupy 2 lines space.
Hance the PatternView size used to inconsistence in-between
1st draw and 2nd confirm draw, besides it's visual looks
jumping and small on some device which have smaller display.
This solution includes 3 changes:
1. Organized the pattern view message to leverage
header sub-title view, then we can resever more space.
(Set minHeight=2 for sub-title)
2. Set screen_lock_options button visibilty to GONE when
the stage in 2nd confirmation.(Previously it's INVISIBLE
and reserve additional space)
3. Let LockPatternView align bottom of FrameLayout to prevent
the view juming and flicker.
4. Clean up unused forAnyBiometric flag and code.
5. GlifLayout.getDescriptionTextView() == mHeaderView
Need setDescriptionText() to make the view from GONE -> VISIBLE
6. Polish the stage flow and ensure IntroductionStage show
correct message
7. Add ChooseLockPattern into embeded activity white list
Force show ChooseLockPattern in fullscreen in case the Pattern
view truncated in `NeedToConfirmStage` where the title showing
2 lines and push pattern view down, and get bad UX in the
device which integrate a shorter display.
8. Add test cases for all stage and polish legacy test code.
Test: make RunSettingsRoboTests ROBOTEST_FILTER= \
"com.android.settings.password.SetupChooseLockPatternTest"
Test: make RunSettingsRoboTests ROBOTEST_FILTER= \
"com.android.settings.password.ChooseLockPatternTest"
Bug: 249974175
Bug: 260027850
Change-Id: I868af9b14ba99af5d78a05f6c2a570ccc07aea15
Create a mechanism to allow OEM config posture guidance with
'config_face_enroll_guidance_page', and customize the config
'config_face_enroll_supported_posture' with standard postures
0 : DEVICE_POSTURE_UNKNOWN
1 : DEVICE_POSTURE_CLOSED
2 : DEVICE_POSTURE_HALF_OPENED
3 : DEVICE_POSTURE_OPENED
4 : DEVICE_POSTURE_FLIPPED
For example, if we set 1 for the device, then device only
allow to enroll face in closed(folded) state, if device do
not in the allow state, we will prompt specific guidance
page activity defined in config_face_enroll_guidance_page.
At this stage , we only integrate 2 states OPENED/CLOSED through
ScreenSizeFoldProvider and register for onFoldUpdated() callback
- isFold(DEVICE_POSTURE_CLOSED): finish posture guidance
- !isFold(DEVICE_POSTURE_OPENED): launch posture guidance
- onActivityResult : reset mOnGuidanceShown false
1. Fix A11y lottie animation bug
2. Impl FoldProvider.FoldCallback
3. Register callback to ScreenSizeFoldProvider
4. Integrate back stack, skip, cancel events
- Back key : RESULT_CANCELED
- Skip btn : RESULT_SKIP
- Posture changed : RESULT_FINISHED
5. Set single instance for relative activities
6. FaceEnrollFoldPage listen for onConfigurationChanged()
7. Add empty face_posture_guidance_lottie.json for overlay
Test: atest SettingsGoogleUnitTests
Test: m -j SettingsGoogleRoboTests RunSettingsGoogleRoboTests
Test: m RunSettingsRoboTests ROBOTEST_FILTER= \
"com.android.settings.biometrics.face.FaceEnrollEducationTest"
Test: m RunSettingsRoboTests ROBOTEST_FILTER= \
"com.android.settings.biometrics.face.FaceEnrollIntroductionTest"
Test: Manual launch security settings face enroll, unfold device
and observe posture guidance showing fullscreen on top
Test: Fold device ensure the posture guidance activity finish
Bug: 261141826
Fixes: 231908496
Change-Id: Ib9f43f82f7d19f3f187c2f6f8984e76cd843afbc
SplitPlaceholderRule#isSticky determines whether the placeholder
will show on top in a smaller window size after it first appeared
in a split with sufficient minimum width.
This change will show Settings homepage while users rotate
device to portrait mode and show Settings 1-pane UI.
Bug: 256115335
Test: manual visual
1. Set font size and display size to large.
2. Launch Setting app in landscape and rotate to portrait.
Change-Id: Ie955f8b8db3bbe42dba6300608774582ef150590
Introducing MVVM architecture & fragments to biometric settings.
Here, we modify the first page of FingerprintEnrollIntroduction to use
new MVVM with Fragment architecture.
And with this new architecture, unit test and screen order will be
easier to be written or changed.
Bug: 236072782
Test: atest FingerprintEnrollmentViewModelTest AutoCredentialViewModelTest
FingerprintEnrollIntroViewModelTest FingerprintRepositoryTest
Change-Id: Icf12c91625db86c2c99081a0108203e607e77f74
Since the deep link mechanism uses a trampoline activity to redirect the
target activity, and the targeting activity is launched in a separate
task, there will be two transitions played, where one is the splash
screen with the trampoline acitvity and another one is the task
transition. This makes the UX weird.
To avoid this, this CL tries to make the targeting activity launch in
the same task as the trampoline acitivity by removing the taskAffinity,
so there won't be a task transition.
Fix: 215275940
Test: Create a settings shortcut on the home screen and launch it.
Change-Id: I7621ab9f1132acbf619495801a3b985c5c3b1b5d
By design, we want to show/hide back button for 2nd
layer page when it's in two pane mode.
Test: Manual test
Bug: 219000314
Change-Id: I14d8d7ee08280d5ce80c0b59e1e91d077f0b6d09
This allows the new avatar picker to open as a full screen activity
on tablet, rather than being embedded in the right-hand pane.
Bug: 215134398
Test: manual, opened avatar picker on tablet
Change-Id: Ide8f81643e90c90850ad93ec802bb557e260baed
This new config will be overlayed in titan devices to update the split
ratio to 30/70
Bug: 215707431
Test: locally on device
Change-Id: I7bd193d7516939f5c4d434cd3333456c20e53a91
- Create TopLevelHighlightMixin to handle highlight actions and simplify
TopLevelSettings
- Fix the error highlight and the flicker after screen rotation
- Postpone creating the fragment until it's needed to accelerate the
initialization and to fix the search highlight function breakage after
toggling light/dark mode
- Register activity embedding rules only once for injection and
wallpaper
- Do not highlight Tips & support since it's full screen
- Refactor ActivityEmbeddingRulesController
Bug: 207316936
Test: manual, robotest build pass
Change-Id: If322ec180b03ee123987c70779a25c6a570d9faf
Prior to this cl, if user opens settings app
in single-pane first and navigates to
the search page, then rotate the device,
user observed the search page was still shown
with full screen.
Because we didn't register correct split rule,
it causes the abormal behavior on two-pane mode.
In order to register correct rule, we also need
to assign correct component name while opening the
search page.
Fix: 206896763
Test: Rebuilt apk and verify the behavior
Change-Id: I7343467aa716d71da63f2ad0a034dc6c1b7fd415
Since the fingerprint registration sometimes has a hardware dependency,
to bring a better UX, make the flow full screen on large screen devices.
Bug: 197717071
Test: Try to register a new fingerprint and see the pages are full
screen.
Change-Id: I5dcb720a8b6a58bd9fc67ecae35f730c20a2c4d3
- Use a synchronous API to make SettingsActivity start deep link intent
in onCreate
- Change SettingsHomepageActivity from an alias to a real activity
- Clean up redundant codes
Fix: 206585572
Test: Manual, robotest build pass
Change-Id: Idf42c026f593bb5801a13cae250d1523030b7092
1. Add a receiver to monitor the search state
2. Shoe/hide the menu highlight in the listener
3. Highlight the menu entry in SearchResultTrampoline
4. Enable/disable the receiver in SettingsInitialize
Bug: 205781792
Test: manual, robotest
Change-Id: Ia04901f504172f4f0c7b4b2ea7eda5f3713f676d
Bug: 204829538
Test: Open Settings in landscape in two panes, rotate to portrait to stack, rotate back to split
Change-Id: I5790962051d0b01902f3b50e958848eff7cf7334
Setting app should set SplitPairRule for all the alias of
SettingsHomepageActivity to handle all the different
launch cases.
Bug: 204156913
Bug: 204399375
Test: manual
1. Launch settings in unfold screen
2. Fold screen
3. Launch wallpaper app
4. Unfold screen
Change-Id: I3ad33a750ef19390bc8dc3fb4dc6f1c80630d57f
We should keep consistent split rule for wallpaper and other home menu
item. So, we create this cl to register the split rule for wallpaper.
Also, I do some minor refactoring in this cl for reusing existing
method and better code quality.
Test: Go to wallpaper, and click back key. App can close.
Fix: 204406425
Fix: 204364572
Change-Id: Ia7de9483b351d1121cc26c4af1cb8a89ad0a16bc
- add a standalone home activity for slice deep link.
- add EXTRA_IS_FROM_SLICE to control the slice deep link flow.
- Intent#parseUri fails if the intent data schema is set.
Add EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_DATA to relay the
data schema.
Bug: 201397123
Test: manual, robotest
1. Say 'Enable NFC'/'Enable Bluetooth'to Google assistant.
2. Click the the NFC/BT Slice.
Change-Id: Ia3216956328c32b2109cb2d70ad1105327661f26
Settings app registers SubSettings SplitPairRule with clearTop
true, it will finish Settings app if users click back button on
a SubSettings page.
This change registers SubSettings SplitPairRule with clearTop
true when users click a SubSettings item in Settings home menu.
And this change registers SubSettings SplitPairRule with clearTop
false when users click a SubSettings item in search result.
Bug: 204501750
Test: manual
1. Settings -> Search settings -> search a SubSettings item
(e.g., Battery)
2. Click the searched item.
3. Click back button.
Change-Id: I6e1862de528e971137ae7087de608bbdd79096b2
Set alwaysExpand and SearchActivity will show in full screen.
Bug: 196923591
Test: manual
Settings -> Search settings
Change-Id: I4174753bce15232342fa69d0845225a95d757782
- Set both secondary ComponentName and secondary Intent action
in SplitPairFilter when registering SplitPairRule for deep link.
- Set ComponentName to the Intent which DeepLinkHomepageActivity
uses to start the deep link page.
This change setup Intent and SplitPairRule to have both
Intent action and ComponentName. It fixes matching problem.
Bug: 201627196
Bug: 199888089
Test: manual
[Unfolded] Long press home (workspace) -> Pop-up menu ->
Tap 'Wallpaper & style' -> Launch Settings in the left as
list and 'Wallpaper & style' in the right as detail.
Change-Id: I8cc8cef911ce0d7d05f332eb86f77f8d2543827f
Updating to the latest version of the library
that's added in the topic.
Bug: 199676595
Test: Build, install and test Settings
Change-Id: Ia08314a93c4b5263e2fb6c06a5b517a74e9e3745
SettingsHomepageActivity may be launched by different alias,
this change sets placeholder for all these alias to ensure
placeholder is present.
Bug: 199363383
Test: manual
1. Click Settings icon button in quick setting panel.
2. Launch Settings app deep link, then move it to background,
and the launch Settings app.
Change-Id: I9ba6dbc5cfa2bac51bf53bb21f8983193ba053b6
This change supports deep link to Settings app internal pages
and external pages outside Settings app.
Apps need android.permission.ALLOW_TWO_PANES_DEEP_LINK_IN_SETTINGS
to send the intent of Settings#ACTION_SETTINGS_LARGE_SCREEN_DEEP_LINK.
Settings app will startActivity for the intent from
Settings#EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_URI.
Bug: 197048599
Test: build pass
Change-Id: Idaf4a8be4603c1308f16fb4e378266c1e52acb40
This reverts commit 07037dbc3f.
Reason for revert: <Issue already was fixed in ag/15743576 and ag/15743577>
Bug: 197716926
Change-Id: I72b98f8feb513f34e88e735efd578a8e3d9a1963
This reverts commit a12a0d1eb2.
Reason for revert: See a build error in git_sc-v2-dev-plus-aosp/aosp_crosshatch-userdebug
Bug: 198722766
Change-Id: Ibf812bf92595f57409e3c6d9cda6a1dfa4a8c72c