- 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
Update background color for status bar and
homepage background programically.
Also, we update the backgroud color for highlight items.
Test: Rebuilt apk and see the screen.
Bug: 195293058
Change-Id: Id100f8c9c7fc02c43420afcca07a703a14ec2312
In a high level, I created two versions of app bar layout.
One for single pane design, another for two-pane design.
Then, app initilizes two different layouts in the beginning,
we simply show/hide one version while app is receiving the
configuration changes update.
Test: Rebuilt apk and observed the screen.
Bug: 195293058
Change-Id: Icd19ea02ab1be4e964701b22ae9e20c9e00d3c0d
- 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
Scroll to the highlight position before showing homepage.
Bug: 199017944
Bug: 204946469
Test: visual
Change-Id: I11708f42180a3af22855ac7b5f53460f737ed208
SettingsActivity may send Settings 2-pane deep link Intent to
SettingsHomepageActivity if split callback tells that there is no
SplitInfo.
Wallpaper app sends deep link Intent to SettingsHomepageActivity,
and then SettingsHomepageActivity starts Wallpaper app page.
The flow should be 2-pane organized but the split callback tells
that splitInfos is empty.
This change checks if the Intent is from SettingsHomepageActivity
to prevent the Intent loop by the bug.
Bug: 205206004
Test: manual
Long click Launcher -> Wallpaper & style
Change-Id: I6b9d76c136238e556384e891ae1700ae7c1bb41f
The callback of SplitStateObserver.SplitStateListener can have one
or more active splits when there is already 2-pane in Activity stack.
This change prevent unnecessary 2-pane deep link flow if the Activity
is already in 2-pane activity stack.
This solution does not work if the Activity was started in a new task.
(e.g., Intent.FLAG_ACTIVITY_NEW_TASK, launchMode singleTask).
Bug: 201379454
Bug: 201620626
Bug: 204398432
Bug: 204397936
Bug: 197609195
Bug: 197609197
Bug: 204501179
Bug: 204959335
Bug: 204845334
Test: manual
1. Settings -> Apps > Default apps > Opening links.
2. Click back button should back to Default apps page.
Change-Id: I04aaceed47a8f2754a4e17c53b49252f61e0a1d1
- Support fragment and direct link in SearchResultTrampoline
- Start activity for SI case and start deep link trampoline for others
- Disable menu highlight whenever the search bar is clicked
- Don't overwrite SettingsApplication's homepage activity in
SliceDeepLinkHomepageActivity
- Scroll to highlighted menu entry after homepage is loaded to prevent
UI overlapping
Bug: 201724410
Test: manual, robotest build pass
Change-Id: I5115d17d829e85036000da2e80f0e5b0598c733f
- 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
Create an new interface in the embedding provider,
this interface tells if settings app is in two pane or not.
To access the activity in the content provider, we need to store
the activity reference in the app application layer.
Test: See if two pane state is correct.
Bug: 203763572
Change-Id: Iae2245b84af2683d932f1900df9959dad98370d7
Avoid using 'two pane' and 'large screen' because
they are implementation details exposure.
Bug: 201662312
Test: build pass
Change-Id: Id3555f734ff11e31d2f4db0479331c4f27e9e715
This reverts commit 096c090b80.
Reason for revert: crash is fixed in this change
Bug: 202510128
Test: manual, build
Change-Id: Ifff8d58cfdcf43e123b11dee308665b2617cb4b3
1. Add a preference group adapter to perform highlighting
2. Add a class for mapping highlighable menu keys and preference keys
3. Add an API to determine if the screen is in split mode
Bug: 199017944
Test: manual, build
Change-Id: I8e3fe5fb96480a31ee0f3b3afb6ad78999d3d2bc
- 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
After users select a shortcut item in CreateShortcutActivity,
launchers need to get result from CreateShortcutActivity.
For large screen devices, Settings deep link will start
DeepLinkHomepageActivity and then DeepLinkHomepageActivity
starts the deep link page. The CreateShortcutActivity result
deos not forward to launcher and there is no shortcut added.
This change uses Intent.FLAG_ACTIVITY_FORWARD_RESULT to
forward result from CreateShortcutActivity to launcher.
Bug: 200889769
Test: manual
Long click launcher -> Widget -> Settings ->
select an item and check if it adds a short on launcher.
Change-Id: Idd5fc642be5c1fb2f747316c3ddcd9b7f0b33852
Sender of deep link intent may want to send intent extra data to the
deep link target Activity by merging intent extra.
Bug: 197048599
Bug: 197926040
Test: manual
1. Click quick Setting 'Internet button'.
2. Click the gear button of a connected Wi-Fi.
3. Observe if the Wi-Fi detail page shows the connected Wi-Fi.
Change-Id: I32040ee21a747cae710df2e12a8f5b66aff086fa
Settings.ACTION_SETTINGS_LARGE_SCREEN_DEEP_LINK starts
the activity-alias 'DeepLinkHomepageActivity', however,
if Settings app first time (from application cteation) starts
from the activity-alias 'Settings', framework will uses
'Settings' instead of DeepLinkHomepageActivity to match pair
rule. User will see full screen deep link for this case.
This change registers deep link pair rule for both the
activity-alias 'Settings' and 'DeepLinkHomepageActivity'.
Bug: 200131691
Test: manual
1. Launch Settings from launcher.
2. Launch Settings from Settings shortcut widget.
3. Observe if the shortcut page shows in 2-pane.
Change-Id: Ice9d09f3545a02603f529d5d19e621ae82302004
When resuming Settings app of large screen devices,
SettingsHomepageActivity will be re-created for
Activity resized. It produces unnecessary Activity
destroy and re-create.
This change prevents SettingsHomepageActivity from
configuration changes for screenSize|screenLayout.
Bug: 198361315
Test: manual
1. Launch Settings app by a Settings shortcut widget.
2. Move Settings app to background.
3. Click Settings shortcut widget again.
Observe if SettingsHomepageActivity re-creates.
Change-Id: I4d71330f6a1760768ba4443e192f66b0a2cbb6bf
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
Remove the exit transition on the homepage.
Fixes: 189390497
Test: robotest and launch search seeing the y-axis transition
Change-Id: Ia791757e0fef51eeefc7442e04369016a6200f84
Remove the silky condition and clean up redundant files.
Bug: 183670633
Test: robotests & visual with turning on/off silky home
Change-Id: I9259108534935ed8551748b922098dd52043afc1
Allows settings applications on other platforms to re-use values by
migrating to Settings.secure and moving HideNonSystemOverlayMixin to
SettingsLib.
Bug: 184967544
Test: atest SettingsUnitTests
Change-Id: If9aaeca29ebb8b481d75622934503e368d7435d3
This change applies Shared X-Axis transition across settings pages. For
injected settings, the injected apps have to also apply the same
transition to take effect.
Fixes: 177479937
Test: robotests and navigate through settings pages
Change-Id: I6241860766f5969428faf9a5b3730a7614fdcd92
- Support new suggestion design
- Search bar relayout
- Move avatar icon to the top right corner
Test: robotest
Bug: 178068045
Change-Id: I07f1577488d6d1827ee07d55db6759f02d655d5f
- Remove the deprecated API and parameter usages of setting system ui
visibility, which make the app bar scrolling behavior abnormal when
the navigation bar is enabled.
- Remove the duplicate navigationBarColor of the homepage theme since
Theme.Settings has configured it.
- Remove the unused scroll flags in search bar layout since its parent
is no longer AppBarLayout.
Test: visual, robotest
Fixes: 178497625
Fixes: 179122861
Change-Id: I91537cff4f3d98e4bc31e6e42d23895df312fbd4
- Fine tune the header text size and position
- Fix the header overlapping problem on the homepage and collapsing
toolbar pages when configuration changes by adding android:id.
- New AppBarScrollingViewBehavior for the homepage to avoid manually
offsetting the IA
- Correct the formula of counting search box height
Test: robotest, manual
Fixes: 177967923
Fixes: 177968564
Change-Id: Id3ed44f4296fa2a19d6890b009d3881a5c140bbd
- add a suggestion layout
- add an interface to get fragment in suggestion feature provider
- remove the first preference category of homepage IA to align its top
with the bottom of the search box
Bug: 173768418
Test: robotest
Change-Id: I784e3eef29ca474c4c89f07b916c6500fabbf7d4
The contextual home will default to being disabled in Android S.
Changing the feature flag could reenable it.
Fixes: 168179764
Test: launch Settings and don't see contextual cards
Change-Id: I9591b50c4fe882c8605a71490f56aef4156b3e80
Add/remove the SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS flag into/from
SettingsHomepageActivity and SettingsPanelActivity with lifecycle.
Bug: 138442483
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.homepage
make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.panel
manual test
Change-Id: I72f9a947f57f74a8c09127d6c39173594c248ddc
This reverts commit 9e98b8cf0f.
We have to set clipToPadding false on scrollView to make it extend below
navbar. But the side effect is it stops clipping to padding. So it
overlaps with sibling views. In this case anything pinned on top of
screen (switchbar, pinned header for most UIs, and preview indicator for
font size page).
To fix them:
1. in preview pages, just revert back to clipTo*. Their UI doesn't scroll
so it they don't need to special clip flag to begin with.
2. For pinned to top headers, we need to change the "z-order" by setting
elevation and make sure background is not transparent.
Fixes: 132182711
Fixes: 132672399
Test: visually on normal screen, font size scree, wifi main setting UI,
wifi data usage screen
Reason for revert: Rollforward with fix.
Change-Id: Ib6f7c4167b9a680a336f2a7310d82340094d3aac
The animation of IA fragment is very choppy on expanding or collapsing
conditionals. So adding LayoutTransition for IA fragment makes the
animation more smoothly.
Bug: 123536786
Bug: 123537499
Test: visual, robotests
Change-Id: I731db8556ac392c9ab98bd292498ccf6c87295fb