Commit Graph

76 Commits

Author SHA1 Message Date
Jason Chiu
26588fc2e5 Fix the work profile's deep link problem
- Settings shows the work Homepage while starting the work profile's
  icon, which is not allowed.
- Clicking work apps' App info plays an unsmooth window transition
  animation.

Fix: 233296965
Test: manual, robotest
Change-Id: I3d12f6c59692c4a4cc718ea7022b60be50235abb
2022-05-20 12:05:32 +08:00
Jason Chiu
44aab7c55f Merge "Refine the homepage app bar layout" into tm-dev 2022-05-16 02:01:20 +00:00
Jason Chiu
8847c3186a Refine the homepage app bar layout
- Polish the app bar mask on homepage
- Move the Suggestion card to the position below the search box

Fix: 224435133
Fix: 230284145
Test: robotest, visual

Change-Id: I0a4fd86230fb773a28ca1d9799f3c631a81a11cb
2022-05-13 09:37:00 +00:00
Jason Chiu
1b1c07afc4 Support the managed profile deep links for large screen
Homepage is not allowed to be started as a non-primary user.

In the managed profile deep link case, we create a bridge to start the
homepage as the primary user, and then start the target page as the
given managed user.

Bug: 222447112
Test: manual, robotest
Change-Id: I07dbec3b7eaff983f9860480a0a2f7b0e6f1fb43
2022-05-13 17:00:45 +08:00
Tsung-Mao Fang
f4514b9fbf Fine tune background color for dual pane in homepage
Follow the spec and change the background color.

Test: See the screen
Bug: 223329504
Change-Id: Ibcbf0e898ae949e1354f5af810a2347eba42b508
2022-04-01 13:35:17 +08:00
Jason Chiu
680fce3acd Refine layouts for large screen
- Support dynamic paddings depending on app's screen width
- Add round corners to homepage ripple effect to improve the transition
  of being highlighted
- Add an interface to support dynamic split layout for suggestion cards

Bug: 223300824
Test: robotest, manual
Change-Id: Iaca6b4fd3f7369179416ef084a800d7eb2ee4640
2022-03-30 04:54:30 +00:00
Jason Chiu
177573c892 Enhance Settings deep link transition
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
2022-03-24 12:42:01 +08:00
Jason Chiu
764e7fbc44 Prevent scrolling after the homepage recreating
- Only apply the layout transition when contextual home is enabled
- Do not scroll for highlighting when the homepage is recreated and
  never scrolled

Fix: 222238012
Bug: 222473415
Test: robotest, manual
Change-Id: I490c3f8dbca63a5250bae01555592b7795c90af2
2022-03-14 15:13:08 +08:00
Tsung-Mao Fang
32c1fc76d8 Fix unable to scroll to the bottom page
We should set padding for root view instead of margin.

Test: Verify the behavior is correct in single pane
and two panes mode.
Fix: 221422906

Change-Id: I17a63be6e536ffcf39744b2e98dc1ea2723ebf1d
2022-03-01 11:51:03 +00:00
Tsung-Mao Fang
39c8905f4c Fix incorrect colored bar when task bar is hidden
Set backgorund color on content id view instead of homepage view.
Also setup edge to edge for the homepage.

Fix: 215440529
Test: See correct ui on the two pane mode and regular phone.
Change-Id: I2d5988a489410e9620137bd6cf9607768787d4fc
2022-02-23 10:41:14 +00:00
Tsung-Mao Fang
13a76eb84e Update new API for checking the embedding status
Test: Make sure behavior is correct as it was in
search flow, higlight flow, regular settings flow, split screen flow.
Bug: 204399167

Change-Id: I7fc29c8cdbfc6682963591f4ff805070bea4ca22
2022-01-12 15:00:07 +08:00
Jason Chiu
11d3b19c51 Fix the highlight error after unfolding the device
Unfolding a device generates mutiple lifecycle events and resets the
highlight key.

Check if there's only one activity in the task and then perform the
reset.

Fix: 209016927
Test: manual
Change-Id: I49988fa913270d35a04436777433b7669afb72df
2021-12-10 22:37:22 +08:00
Jason Chiu
8c559c2788 Fix the highlight error and remove the empty card
Fix: 209918251
Test: manual
Change-Id: I2a5afceea18cd4e1009114091433a2da22ac105e
2021-12-09 15:09:09 +08:00
Jason Chiu
627fd3928c Improve the cold start performance
The performance regressed since the previous change that hide the
homepage view from using View.GONE to View.INVISIBLE

This change only initializes the list views in the invisible homepage
view to prevent a scroll flicker when scrolling is needed.

Test: manual
Bug: 206555277
Bug: 205823792
Change-Id: I8f173b135cfa1d27a1362d5fa8e3f338e2428ad2
2021-12-03 17:12:08 +08:00
Jason Chiu
a305c23f5e Revise homepage highlight mechanism
- 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
2021-12-03 12:04:48 +08:00
Tsung-Mao Fang
395ea90b83 Update background color for two-pane mode
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
2021-12-01 16:39:09 +08:00
Charles Chen
a8c97980a6 Fix different behaviors of deeplink in one/two pane
Test: manual - Reproducible steps mentioned in bug
fixes: 207740082
Change-Id: I1163e38c177307ccac8798eb649271d0466ab1c8
2021-11-26 07:54:42 +00:00
Tsung-Mao Fang
251e326d21 Redesign homepage layout for two-pane mode.
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
2021-11-18 21:07:26 +08:00
Jason Chiu
a3b21cf017 Start deep link page synchronously in SettingsActivity
- 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
2021-11-18 12:20:08 +08:00
Jason Chiu
3af73364ba Support highlighting the menu entry for Search results
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
2021-11-11 14:33:26 +08:00
TreeHugger Robot
244df10d90 Merge "Fine tune the homepage scrolling behavior" into sc-v2-dev 2021-11-05 11:22:49 +00:00
Jason Chiu
ae5327d4bb Fine tune the homepage scrolling behavior
Scroll to the highlight position before showing homepage.

Bug: 199017944
Bug: 204946469
Test: visual
Change-Id: I11708f42180a3af22855ac7b5f53460f737ed208
2021-11-05 18:21:59 +08:00
Arc Wang
488f79cab5 [Large screen] SplitListener may not provide correct information
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
2021-11-05 11:07:33 +08:00
Arc Wang
e80b74de3a [Large screen] Check if it's in 2-pane before 2-pane deep link flow
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
2021-11-04 17:20:17 +08:00
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