Commit Graph

52 Commits

Author SHA1 Message Date
Jason Chiu
e427cc6752 Search experience improvement for large screen
- 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
2021-11-03 18:44:01 +08:00
Jason Chiu
e1ec69fa1a Merge "[Large screen] Make slice deep linking to Settings show in 2-pane" into sc-v2-dev 2021-11-01 02:10:21 +00:00
Arc Wang
a63e9c625d [Large screen] Make slice deep linking to Settings show in 2-pane
- 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
2021-10-31 20:12:27 +08:00
Arc Wang
54998b7bfe [Large screen] Fix searched Subsettings back navigation bug
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
2021-10-29 17:45:40 +08:00
Tsung-Mao Fang
54b9d60783 Create an interface to access the two pane state
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
2021-10-25 15:43:17 +08:00
Arc Wang
8b2dd65738 Improve scalability of Settings deep link API
Avoid using 'two pane' and 'large screen' because
they are implementation details exposure.

Bug: 201662312
Test: build pass
Change-Id: Id3555f734ff11e31d2f4db0479331c4f27e9e715
2021-10-12 21:31:54 +08:00
Jason Chiu
29a09e55ba Revert "Revert "Support highlightable Settings homepage menu for 2-pane""
This reverts commit 096c090b80.

Reason for revert: crash is fixed in this change

Bug: 202510128
Test: manual, build
Change-Id: Ifff8d58cfdcf43e123b11dee308665b2617cb4b3
2021-10-12 09:32:07 +00:00
Greg Kaiser
1ab7ad3e40 Merge "Revert "Support highlightable Settings homepage menu for 2-pane"" into sc-v2-dev 2021-10-08 14:48:14 +00:00
Greg Kaiser
096c090b80 Revert "Support highlightable Settings homepage menu for 2-pane"
This reverts commit 9037ceabd3.

Reason for revert: Presumed cause of b/202510128

Change-Id: I0daaab95d9bc57229c0c8c916cbe3ada7aafb6fa
2021-10-08 14:29:06 +00:00
Jason Chiu
9b1f593773 Merge "Support highlightable Settings homepage menu for 2-pane" into sc-v2-dev 2021-10-08 07:52:45 +00:00
Jason Chiu
9037ceabd3 Support highlightable Settings homepage menu for 2-pane
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
2021-10-08 12:52:52 +08:00
Arc Wang
dcc46cf136 [Large screen] Fix SplitPaitRule not match for deep link problem
- 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
2021-10-07 17:44:24 +08:00
Arc Wang
4dd3f11349 Fix not able to add Settings shortcut widget problem
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
2021-09-23 06:54:36 +00:00
TreeHugger Robot
4223ee98ea Merge "Merge intent extra to deep link intent target for large screen devices" into sc-v2-dev 2021-09-23 03:19:09 +00:00
Arc Wang
e4084028b3 Merge intent extra to deep link intent target for large screen devices
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
2021-09-23 02:05:55 +00:00
Arc Wang
7ffd6d8186 Fix sometimes deep link does not show in 2-pane
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
2021-09-22 10:12:53 +00:00
Arc Wang
fdfac783ab Add android:configChanges for SettingsHomepageActivity
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
2021-09-15 12:13:58 +08:00
Arc Wang
597784e455 Set 2-pane placeholder for all alias of SettingsHomepageActivity
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
2021-09-09 15:59:01 +08:00
Arc Wang
22ce392b91 2 panes deep link for large screen devices
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
2021-09-09 13:04:31 +08:00
Jason Chiu
3ab404c6ba Merge "Support category changed mechanism in homepage" into sc-dev 2021-06-18 09:25:46 +00:00
Jason Chiu
c713c3e8ea Support category changed mechanism in homepage
- Homepage cannot referesh UI whenever an injected component is changed
- Extract categories related codes to a mixin

Test: manual, robotest
Fixes: 179792445
Change-Id: I1c13c541ce07b9c36fe984a035623985b5603560
2021-06-18 16:00:29 +08:00
Yi-Ling Chuang
b684a8dbdf Improve the animation while opening search
Remove the exit transition on the homepage.

Fixes: 189390497
Test: robotest and launch search seeing the y-axis transition
Change-Id: Ia791757e0fef51eeefc7442e04369016a6200f84
2021-06-17 17:26:43 +08:00
Yanting Yang
be4c5f078f Remove silky flag from homepage for official release
Remove the silky condition and clean up redundant files.

Bug: 183670633
Test: robotests & visual with turning on/off silky home
Change-Id: I9259108534935ed8551748b922098dd52043afc1
2021-05-14 17:52:53 +08:00
Alex Stetson
aff80d1e14 Use shared model for non-system overlay toggle
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
2021-05-06 08:28:19 -07:00
Yi-Ling Chuang
58813f7b6c Apply settings page transition
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
2021-04-28 17:29:49 +08:00
Jason Chiu
c37dd71260 Settings homepage redesign
- Support new suggestion design
- Search bar relayout
- Move avatar icon to the top right corner

Test: robotest
Bug: 178068045

Change-Id: I07f1577488d6d1827ee07d55db6759f02d655d5f
2021-03-24 18:53:27 +08:00
Jason Chiu
530bee333b Fix the scrolling problems in homepage
- 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
2021-02-05 02:52:43 +00:00
Jason Chiu
b56ea7e9e3 Adjust homepage styles and layouts
- 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
2021-01-22 13:27:22 +00:00
Jason Chiu
bd854ccd10 Support contextual suggestion
- 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
2020-12-27 01:37:30 +08:00
Yi-Ling Chuang
985825edbf Hide the contextual home architecture.
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
2020-10-12 19:17:05 +08:00
Hiroki Sato
8870dcb421 Fix keyboard navigation work in Settings home page
Bug: 156196960
Bug: 156565546
Test: manually confirmed tab or arrow key moves input focus.
Change-Id: Ic2eb6395b490c97c8d82722ce1ba3a79d535ade2
2020-06-05 14:42:34 +09:00
Sunny Shao
647e49e7cf Add Tapjacking Protection for SettingsHomepageActivity
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
2019-08-01 23:36:12 +08:00
Fan Zhang
b4b7725937 Revert "Revert "Make subsettings display edge-to-edge""
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
2019-05-14 13:48:12 -07:00
Fan Zhang
9e98b8cf0f Revert "Make subsettings display edge-to-edge"
This reverts commit c2a85a374d.

Bug: 132672399
Bug: 132182711
Test: n/a

Reason for revert: b/132672399

Change-Id: Icb34ae5b16b7a32215fe2c1a5f0d0d028c91b2ca
2019-05-14 16:31:08 +00:00
Fan Zhang
c2a85a374d Make subsettings display edge-to-edge
Fixes: 132182711
Test: visual
Change-Id: I3b0635cba359f74d463c2360323d80c5c9533228
2019-05-13 10:07:13 -07:00
Fan Zhang
3e14383a28 Display settings homepage content fully edge-to-edge
This is needed to support fully gesture navigation.

Bug: 132182711
Test: visual
Change-Id: Ifaf15ecec73b974356355a74e73754f95b84ad3e
2019-05-08 11:43:58 -07:00
Jason Chiu
b335e96d2a Micro cleanup and refactoring
- remove unused dimen resources
- remove unused and refactor codes

Test: make RunSettingsRoboTests -j
Change-Id: Ic2a5b16323667741d048e20e3db8da3fb4dc348a
2019-04-03 13:52:46 +08:00
Fan Zhang
d482da51e5 Disable avatar and contextual cards on low ram devices.
Fixes: 124127763
Test: robotest & manually inspected hprof
Change-Id: I8d328b782a9b1871b76edf433d2378d06face14a
2019-03-13 14:04:35 -07:00
Fan Zhang
4df9bfaa3e Remove feature flag for contextual home.
Fixes: 118444000
Test: rebuild
Change-Id: I4b42e22bd93c2d79bacbd40b28912b4e6808325a
2019-02-22 15:40:49 -08:00
Mill Chen
23452861e5 Add fancy animation for IA fragment
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
2019-02-22 16:56:14 +08:00
TreeHugger Robot
d89332b8c8 Merge "Add referrer when launching search intent." 2019-01-30 18:57:28 +00:00
Fan Zhang
beedd3abe5 Add referrer when launching search intent.
Bug: 123294739
Test: robotests
Change-Id: I600abf1d764e828d52f3b8d35ad24cdc94dfba01
2019-01-29 14:10:05 -08:00
Sunny Shao
4ddecb00ef Fix padding problem between search bar and homepage cards
Get the statusbar height dynamically to fix this problem in notch mode.

Change-Id: I4ca0427fc2556f1fb5f868118c5207fdfa035c59
Fixes: 123215804
Test: robotest
2019-01-29 13:56:40 +08:00
Fan Zhang
39d9d7ce8b Clean up switchToFragment call.
This will make logging where search is launched from slightly easier.

Bug: 123294739
Test: manual
Change-Id: I62a804cdf6b8a5fa8ae68dcf9e2b56cc8358afb7
2019-01-23 16:43:55 -08:00
tmfang
af517d51cc Make status bar become 80% of white in homepage.
Test: visual
Change-Id: I005b49306e4c397d9f1fc5062da721709f303a1d
Fixes: 116346521
2019-01-03 11:44:43 +08:00
Sunny Shao
6dc1cc2a77 Added the icon displayed on no account in search bar
Mofidied the search_bar layout and added this icon in the right side of the search_bar.
Added the hasAccount api in AvatarViewMixin and display this icon when there is no any account in device.
Added the test case of the AvatarViewMixin.

Bug: 117509285
Test: robotest
Change-Id: I6ceaa457af4fb20acd0211ca840df5b530c47e0f
2018-11-05 10:52:11 +08:00
Fan Zhang
0c7c59f1b9 Make android.settings.SETTINGS intent go into homepage.
Change-Id: Ib7453a79a473410c44bdcf06019446cedd34f837
Fixes: 117281845
Test: robotests
2018-10-28 15:59:24 -07:00
Fan Zhang
5e6e6a14f2 Move all contextual card related classes.
... from homepage to contextualcards.

Test: rebuild
Change-Id: Id7889566ce1e7257eb699d963ae996906fdb58ff
2018-10-26 10:02:04 -07:00
Emily Chuang
b97bfb0885 Fix a bug where cards overlap when rotating the screen
Check if a certain fragment has been added before. If it's added, then
just show it instead of re-adding it again.

Bug: 118344247
Test: visual
Change-Id: I039a3a7372e163c6bcda386d2aea99e6f8c8e9b1
2018-10-24 19:42:17 +08:00
Raff Tsai
db55661271 Change homepage layout
- merge PersonalSettingsFragment and TopLevelSettings together

Bug: 118224579
Test: manual
Change-Id: Ieee50a22babb25023e2a1767793e220862a38363
2018-10-23 19:37:19 +08:00