Commit Graph

588 Commits

Author SHA1 Message Date
Justin Ghan
1cc772d30d Support stylus handwriting in settings search bar
Bug: 270708561
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.search
Change-Id: Iec6d6deb68b834654b2bbc11d96227db5319b0f0
2023-03-08 10:20:44 -08:00
Jason Chiu
79d282bbfb Merge "Revert "Remove FLAG_ACTIVITY_FORWARD_RESULT in 2-pane flow"" 2022-12-14 02:49:17 +00:00
Jason Chiu
8b1e5d9d7d Revert "Remove FLAG_ACTIVITY_FORWARD_RESULT in 2-pane flow"
This reverts commit ea1580f92b.

Reason for revert:
1. Search result trampoline should have that result sent back to the
reply target of the original activity.
2. To leverage the behavior of handheld's deep link case, large
screen's deep link should forward the result.

Change-Id: I55303070e35fc9430063655e0a9a0fd72e0823ac
2022-12-13 08:05:49 +00:00
Stanley Wang
2b8874fa09 Merge "Add new api for search pre-index" 2022-09-05 09:00:36 +00:00
Stanley Wang
1712d57a87 Add new api for search pre-index
Add sendPreIndexIntent api.

Bug: 244521263
Test: manually test and review UI
Change-Id: Ibbe88eeb114b453886693ecb92ebd8ee287f9581
2022-09-01 17:33:17 +08:00
Jason Chiu
2118ea589b Support target intent data relay in SearchResultTrampoline
Bug: 240391954
Test: manual & robotest
Change-Id: I2798839dd03f3f2fd165c8cba86b748aa6257804
2022-08-22 18:16:11 +08:00
Arc Wang
ea1580f92b Remove FLAG_ACTIVITY_FORWARD_RESULT in 2-pane flow
Settings$CreateShortcutActivity does not necessary to be
displayed in 2-pane and it seems no scenario needs the flag
Intent.FLAG_ACTIVITY_FORWARD_RESULT.

Bug: 241346847
Test: build pass
Change-Id: I7a8fca61b453db70233b151711df516649424e3a
2022-08-10 16:14:11 +08:00
xuezaiyue
ac7318419a Move battery usage files to a separate folder.
Bug: 202118250
Test: presubmit
Change-Id: I21aa58ebc02327849ed2161dbbafcdc806c007f2
2022-06-19 05:59:35 +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
94a9c57759 [Large screen] Open the search page in full-screen mode
Bug: 205079744
Test: manual
Change-Id: I3ac663b42fc0538dcb20d53f456b90ea68c9093d
2022-01-24 12:21:58 +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
0e03b12d60 Fix abnormal behavior on search page
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
2021-11-23 16:32:32 +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
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
Tsung-Mao Fang
b3db40a02b Register rule for wallpaper entry
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
2021-11-04 18:48:59 +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
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
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
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
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
407a725278 Use startActivity for android.settings.APP_SEARCH_SETTINGS
The Activity launched by android.settings.APP_SEARCH_SETTINGS
does not setResult. So it's no meaning to use
startActivityForResult for the Intent.

Bug: 196923591
Test: manual
      Settings -> Search settings -> search an item ->
      click back button twice and back to Settings home.
Change-Id: Ia760a301465bb87814326611a1ec2368887f120a
2021-09-30 01:52:48 +00:00
Tsung-Mao Fang
22b50de9f4 Add click tile event for tracking
- Search bar in homepage.
- Avatar icon in homepage.
- More personal safety in Safety & emergency.

Test: Rebuilt rom
Fix: 190341976
Change-Id: I14297211e4b7424f5fdeb46c360b3913101251d7
2021-06-17 17:50:34 +08:00
Yanting Yang
6bf1c3675d Correct breadcrumbs of Wallpaper & style
Remove the sitemap connection between Display and Wallpaper & style,
since we already moved the Wallpaper & style to the homepage.

Bug: 182708819
Test: robotests & visual
Change-Id: Ia069be91177d8fef56248b5343c41a13ef8267a2
2021-05-26 05:43:53 +08:00
Jason Chiu
1ee1911104 Skip indexing dynamic and injected raw data when page search is disabled
Test: robotest
Fixes: 188059978
Change-Id: I99c86ee12c7696123df26c47cfed8c3ddfbdf353
2021-05-20 06:34:08 +00:00
Tsung-Mao Fang
5ec0410e5b Prevent failed dynamic index
In the original design, if a controller in page initializes
failed, then it will impact all the dynamic index mechanism.

In this change, we will only skip controllers in a specfic page.
All other pages which controllers initialize correctly should work
proerly.

Test: See correct dynamic result
Bug: 185325344
Change-Id: I4f959a23635739e1064318ccdddd6d97016dac23
2021-04-14 18:42:46 +08:00
Yu-Han Yang
cdb3551be1 Add "See All" page for Recent Location Access
Screenshots: http://shortn/_UPy8KFSeSj

Bug: 180533061
Test: manual on device
Change-Id: Ib77bc0705835520ed1a2d3b7f662088ed838e53e
2021-03-08 13:27:45 -08:00
Tsung-Mao Fang
902a3469f0 Animate the search bar expansion
Enable the transition between Settings app and Settings Search

Test: Record the transition video and confirm it.
Fix: 175764903
Change-Id: I95125fba17bbf517feee9a10fd828ff8017f7106
2021-01-08 07:48:54 +00:00
Edgar Wang
a8742aa7ab Update language to comply with Android's inclusive language guidance
See https://source.android.com/setup/contribute/respectful-code for reference

Bug: 161896447
Test: robotest & manual
Change-Id: Ia8625091a107fc3fb652d3ba3f75ea3cc1a8d9f5
2020-08-12 11:29:07 +08:00
Edgar Wang
d64488b995 Update language to comply with Android's inclusive language guidance
See https://source.android.com/setup/contribute/respectful-code for reference

Bug: 161896447
Test: robotest & manual
Change-Id: I725783b298e95471272c9fa621c62666bc236d44
2020-08-04 00:33:25 +08:00
Arc Wang
41f23de712 [Wi-Fi] Replace WifiTracker with WifiPickerTracker in WifiSettings
WifiSettings uses WifiTracker in SettingsLib while WifiSettings2
uses WifiPickerTracker in WifiSettingsLib.

1. Remove WifiSettings.
2. Rename WifiSettings2 to WifiSettings.
3. Remove the files only used in the removed WifiSettings.
   (Saved networks files are not included)

Bug: 152571756
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.wifi
      atest WifiSettingsUiTest
Change-Id: I800b434c8049121db115cff87d51e164e4529999
2020-05-14 21:24:57 +08:00
Yanting Yang
bfe16291a3 Fix breadcrumb of search results provided by Settings
Settings Search need Settings to provide custom site map pairs to
build up full breadcrumb for the search results from Gesture Settings
page.

Bug: 147851992
Bug: 151206664
Test: visual and robotests
Change-Id: I4a61e6da48755184954c2c90834578030ffc2e10
2020-04-21 19:11:45 +08:00
Yanting Yang
2483124478 Fix breadcrumb for the search results of Custom restrictions page
Settings Search need Settings to provide the custom site map pairs to
build up the full breadcrumb for the search results of Custom
restrictions page.

Impact search results:
Don't turn on screen
Don't wake for notifications
Hide notification dots on app icons
Hide status bar icons at top of screen
Don't pop notifications on screen
Hide from pull-down shade
Custom restrictions

Bug: 147851992
Bug: 151206664
Test: visual and robotests
Change-Id: I01e359eabcdc362e2a1fde5f3bc4ae5dc6918030
2020-04-15 08:52:05 +08:00
Yanting Yang
b7e1ececea Fix breadcrumb of search results provided by Settings
1. Settings Search need Settings to provide custom site map pairs to
build up full breadcrumb for the search results from below pages.
- PowerUsageAdvanced
- RecentLocationRequestSeeAllFragment
- UsbDetailsFragment
- UserBackupSettingsActivity

2. Update the screen title of Backup raw index data from Settings to
Backup to display correct breadcrumb in Settings Search.

Bug: 147851992
Bug: 151206664
Fixes: 152368059
Test: visual and robotests
Change-Id: Iaebab8d549bba6be7623708f9833349654e7f2a7
2020-04-10 20:56:39 +08:00
Yanting Yang
c54002e192 Add custom site map pairs into SettingsSearchIndexablesProvider
Settings Search need Settings to provide custom site map pairs to build
up full breadcrumb for the search results from ScreenLockSettings,
WallpaperSuggestionActivity and WifiSettings2.

Bug: 147851992
Bug: 151206664
Test: manual test with Settings Search, robotests
Change-Id: Ide6e69b3336af255a388737d46147f2fc2ef9790
2020-03-26 23:04:33 +08:00
Yanting Yang
298a7fe2e5 Remove the index of the homepage category tiles
Do not index the tiles of homepage category since we would like to index
their target activity for search.

Fixes: 151418948
Test: visual
Change-Id: I693534de006b4dbcaf192858e6f7d031bad78fef
2020-03-17 17:55:49 +08:00
Raff Tsai
e7e4dd905a Receive tab info from SettingsIntelligence
Bug: 144673633
Test: manual
Change-Id: Ia28c5a43debbfcc6f6f6d465764adad0977ea319
2019-12-10 11:11:43 +08:00
TreeHugger Robot
c050807cdc Merge changes from topic "query_nonpublic_slices"
* changes:
  Enable Settings Search to query private Slices.
  Add the impl for the ability to query non-public Slices
2019-11-27 11:09:31 +00:00
Jason Chiu
05599b89d2 Make Settings self-injected toggle switch searchable
- only skip ActivityTile
- skip items that has no static title

Bug: 132812768
Test: robotest
Change-Id: Idb3c111966c1dd96e2886aca2c7ead3b57ba119e
2019-11-27 17:11:26 +08:00
Yi-Ling Chuang
15da32c33f Enable Settings Search to query private Slices.
The base Uri is now determined by whether a certain config string is set
or not. When the config is set, Settings Search will then be able to
query private Slices, otherwise we'll just provide public ones.

Bug: 141088937
Test: rebuild
Change-Id: I63b689de4491b664a2d6f88867fbbb9b1da38277
2019-11-26 17:08:50 +08:00
Stanley Wang
a7d314d995 Merge "Add new method to preference controller base for dynamic index." 2019-11-19 09:09:00 +00:00
Stanley Wang
4a08fc1c59 Add new method to preference controller base for dynamic index.
- Add updateDynamicRawDataToIndex method.
- Implement preference controller index in BaseSearchIndexProvider.

Fixes: 144545478
Test: make RunSettingsGoogleRoboTests -j
      make RunSettingsRoboTests ROBOTEST_FILTER=
      com.android.settings.search.BaseSearchIndexProviderTest
Change-Id: Ibb11002227b280102b45d7c0610eae48ecf4c0f3
2019-11-19 14:47:10 +08:00
Raff Tsai
84327f6aa3 Add storage_summary_donut above ProfileSelectStorageFragment
- Modify ProfileSelectFragment to support add preference xml in the
top, and tabLayout below the preferences. Base preference layout is
dummy_preference_screen.xml which contains no preference.
ProfileSelectStorageFragment contains StorageSummaryDonutPreference
above the tabLayout.
- Make StorageSummaryDonutPreferenceController self workable without
StorageDashboardFragment dependence.
- Rename inactive_apps.xml to dummy_preference_screen.xml
- Move ShadowPrivateStorageInfo from LowStorageSliceTest

Bug: 141601408
Test: manual
Change-Id: Ide12840dc81bb104f328e230ecda5d35bba01d7a
2019-11-18 18:18:29 +08:00
Raff Tsai
a1678dade1 Add dynamic injection item to site map
- That will make injection able to build site map

Bug: 143116297
Test: manual
Change-Id: Ic07280519bb7f904a3e80e172b6cb8785b94616f
2019-11-12 17:06:36 +08:00
Stanley Wang
79eaa655ef Refactor SettingsSearchIndexablesProvider.
- Extract the adding raw indexable columns
  to createIndexableRawColumnObjects method.
- Refactor the getInjectionIndexableRawData
  method for query injection data.

Test: manual
Fixes: 144007045
Change-Id: I9c028818dcaff165c3b7f8d495f6002370cd30fa
2019-11-07 10:36:04 +08:00
Raff Tsai
c5e1fc677c Integrated SearchIndexableResources interface in Settings
- New SearchIndexableResources interface returns SearchIndexableBundle,
we don't need reflection to get SearchIndexableProvider

Bug: 135053028
Test: robolectric, check database search_index.db items
Change-Id: I5ed3416ccf72ef3d38db817fcb4aff7502649ed4
2019-11-05 17:38:32 +08:00
Stanley Wang
5bad457e91 Add query dynamic indexable data to SettingsSearchIndexablesProvider
- Add getDynamicSearchIndexableRawFromProvider method.
- Extract the injection indexable part to the
  getInjectionIndexableRawData method.
- Extract the getting indexable provider part to the
  getIndexableProviderValues method.

Test: manual
Fixes: 143741131
Change-Id: Idbf5b5419c0b78e0586e9c8d611dd51013eb0971
2019-11-01 16:15:23 +08:00
Stanley Wang
c2e4ae1c9c New method implementation of BaseSearchIndexProvider for dynamic index.
Implement the new method getDynamicRawDataToIndex.

Test: manual
Fixes: 143664054
Change-Id: I1cc68e6ef6a4e03d8dc0b00d422029627c955bdf
2019-10-31 14:17:32 +08:00
Jason Chiu
d0fa488304 Fix the inverted logic of indexing injected entries
The if statement was misplaced while changing the coding style in
previous CL.

Bug: 132812768
Test: manual
Change-Id: I01a2494bf8103c806ec9b3cbd1ff9f8b8c01aebe
2019-10-24 15:41:51 +08:00
Raff Tsai
d041c32e5e Make injected entries searchable
Add a injected item in queryDynamicRawData. SettingsIntelligence will
query this method in query time.

Fixes: 132812768
Test: manual
Change-Id: I4e2f56e86537930e3102280f7e8dc7691ea1ec4e
2019-10-19 07:53:49 +08:00
Raff Tsai
c898775914 Hide search box if it is called in initial setup wizard
- Search box is hidden if user set intent extra isSetupFlow true

Fixes: 135717823
Test: search box is hidden in the following command
adb shell am start -a android.settings.SETTINGS --ez isSetupFlow true

Change-Id: Ia3d955c9390d6b0eef9391b9b35b6a483eb63d26
2019-10-18 02:08:38 +00:00