Commit Graph

1046 Commits

Author SHA1 Message Date
Arc Wang
566d06af22 Fix profile tab text contrast problem
Spec specify textColorSecondary of default state,
however, TabLayout uses a not expected state of the color.

This change sets default state color of textColorSecondary
instead of textColorSecondary.

Bug: 189793243
Test: manual visual
Change-Id: I025ffac68505016f4c4ffb7e1c0b2ff86308d3be
2021-07-01 07:54:29 +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
Sunny Shao
9fa4bb8ffa Fix the toggle button flicker problem when display
- Root cause: the side effect of the parallel controller loading.
- Solution: disable the parallel approach and remove the entry point
  of parallel approach in DashboardFragment.

Fixes: 187838753
Test: Robo test for AppInfoDashboardFragment, ConfigureNotificationSettings,
      ConnectedDeviceDashboardFragment, DevelopmentSettingsDashboardFragment,
      NetworkDashboardFragment, DashboardFragment
Change-Id: If3b09c4fd6f33042e0ed38704f08e855ab8f5377
2021-06-16 11:41:10 +08:00
Yanting Yang
da06cec173 Improve flicker when enter Security page
The flicker preferences are injected from external apps and the text
shifting is due to it needing time to load the icon from the content
uri. To avoid flicker, put a transparent icon as default to wait for
icon update.

Fixes: 189165518
Test: robotests & visual
Change-Id: I727eeefd5455711a53d3fd9ccd5356a15b9daae4
2021-06-11 16:59:53 +08:00
Yanting Yang
ba8e5802d4 Remove silky flag from Apps 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: If6df8a4191d5750edca22dd94b99c43ccebf2e04
2021-05-25 02:35:58 +08:00
Arc Wang
c0b5ba5225 Storage Settings shift profile selection tab position
In this change, Storage Settings main UI is composed by 3 fragments.

StorageDashboardFragment only shows when there is only personal profile for
current user.

ProfileSelectStorageFragment (controls preferences above profile tab) and
StorageDashboardNoHeaderFragment (controls preferences below profile tab)
only show when current user has installed work profile.

Bug: 174964885
Test: atest com.android.settings.deviceinfo
      atest com.android.settings.deviceinfo.storage
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.deviceinfo
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.deviceinfo.storage
Change-Id: I50dea2fbcae39a1488e648f3ca615f54840e19d5
2021-05-17 14:07:24 +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
Yanting Yang
90d323cefa Move DWB to the fifth position from the bottom on the homepage
Remove relevant configs, logics and tests.

Bug: 187885890
Test: robotests & visual
Change-Id: I309d5290f19bf0b01692dd6f14c4cdcc52066453
2021-05-13 20:51:47 +08:00
Jason Chiu
7d9dceadb7 Redesign homepage IA icon
- remove the outer circle of the icons
- tint the icons including injected ones

Test: robotest, visual
Bug: 182870640
Change-Id: If72c37152f4f0d68e25149b11d497eef1c7ece91
2021-05-12 08:37:37 +00:00
Arc Wang
543068210f Implements profile selection tab in Storage Settings
- StorageDashboardFragment and StorageItemPreferenceController works only
  for one profile per instance.
- StorageAsyncLoader loads for all users(profiles) and regards each user independent.
- SecondaryUserController will not load personal profile user in work profile tab.
- Cleanup some unused profile related files.

Bug: 174964885
Test: atest com.android.settings.deviceinfo
      atest com.android.settings.deviceinfo.storage
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.deviceinfo
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.deviceinfo.storage
Change-Id: I8361c29bc240c519c7261b19522c41439479c1c2
Merged-In: I8361c29bc240c519c7261b19522c41439479c1c2
2021-05-11 20:00:08 +08:00
Yanting Yang
d1312e8e6e Add summary back to the homepage
Also update some summaries with new strings.

Bug: 183586663
Test: robotests & atest & visual

Change-Id: I692be9b34e8867501aaa8c8e40428870b99644f8
2021-05-06 00:27:37 +08:00
Jason Chiu
8531d8795f Fix the unaligned title of injected items
Remove the summary space holder for the injected items that are not
assigned a summary or a summary uri.

Test: visual, robotest
Fixes: 187006845
Bug: 182357397

Change-Id: I7b3d165f0ffd771dd0110962c9e3159c4977d6e3
2021-05-03 12:22:36 +08:00
Yu-Han Yang
a286bad826 Untab Location Settings and tab Location Services
Bug: 180533061
Test: on device
Change-Id: I1f096ffe1028dbf46816bbac5d514e3cb48d9e2c
2021-03-24 19:17:35 -07:00
Tsung-Mao Fang
da9d5a1f92 Revert "Use androidx LifecycleObserver for wiring up controller ..."
Revert submission 13804074-controller-lifecycle

Reason for revert: ag/182373167, see a crash related to this new cl.
Reverted Changes:
I39ac69f24:Use androidx LifecycleObserver for wiring up contr...
I086620e31:Add javadoc about lifecycles for xml defined Contr...
Fix: 182373167

Change-Id: I7e6d2e9e6fd363a3afdd3dbab24e7c3b36e9ed29
2021-03-16 10:21:23 +00:00
Ahaan Ugale
c21337d44f Merge "Use androidx LifecycleObserver for wiring up controller lifecycles." into sc-dev 2021-03-09 17:11:53 +00:00
Ahaan Ugale
042c5b40b7 Use androidx LifecycleObserver for wiring up controller lifecycles.
DashboardFragment automatically wires up Controllers that implement the
deprecated settingslib LifecycleObserver. Now it can also work for those
that implement the androidx version. The settingslib LifecycleObserver
extends the androidx one, so existing behaviour is preserved.

Bug: 169455298
Test: manual - lifecycles work automatically for such Controllers
Test: manual - no duplicate lifecycle events for existing Controllers
Change-Id: I39ac69f24bf8577867ba3b7e56f96c5f38722a2f
2021-03-09 17:11:08 +00: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
Yanting Yang
155634c02a Update the icon size of homepage preference for injected IAs
Based on the Android S design, apply the new foreground image inset to
AdaptiveIcon to generate the new injected IAs icon.

Fixes: 177213699
Test: robotest & visual with turning on/off silky home
Change-Id: If1961a3a41cda92f5435beb47799e8250820d9fb
2021-01-15 12:32:33 +08:00
Stanley Wang
6a824b3535 Merge "Use SettingsLib's MainSwitchBar to replace SwitchBar in Settings." 2021-01-15 02:14:52 +00:00
Tsung-Mao Fang
8b1b0dc0c3 Use new homepage preference for injected IAs
We use homepage preference when it's a injected IAs on homepage

Test: See the screenshot for Google icons
Fix: 177213699
Change-Id: Ibd08ff305cdd6b556b5ceee486df01678c9212a6
2021-01-15 03:46:58 +08:00
Stanley Wang
b87ddba6cd Use SettingsLib's MainSwitchBar to replace SwitchBar in Settings.
To log Settings metrics, the MainSwitch extends MainSwitchBar and
replace the SwitchBar in SettingsActivity.

Bug: 175181773
Test: Run robotest and apply the widget in Settings and see the ui

Change-Id: I3add3702e9058ad9192b5172c7cf0e2ccfb55a70
2021-01-14 22:48:31 +08:00
Yanting Yang
b3381de206 Override homepage tile positions for silky home
Create configs to record the packages and orders of homepage tiles and
then according to these data to override homepage tile positions.

Bug: 168166015
Test: visual with turning on/off silky home
Change-Id: I3fcb54ac531a124101084bb40064b5a7227bf311
2021-01-13 15:42:41 +08:00
Fan Zhang
9b1fb77b54 Add a empty page to host Safety/emergency settings
The page will eventually be displayed on settings root. It's currently
disabled to avoid QA/dogfood confusion, as the page is pretty empty at
this point.

Bug: 175158310
Test: manual only. Skipped robolectric because the page is pretty empty.
      Will add more test as we build business logic.
Change-Id: I80f193f6e90b89ab0c37d0f23f7174e4ba86c091
2021-01-07 10:56:32 -08: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
Yanting Yang
9aa4a5463f Remove subtitles for the homepage IA
Remove the summary of the homepage IA if silky home enabled.

Fixes: 170933968
Test: robotest & visual with turning on/off silky home
Change-Id: I502b6590cece9b80e9923109fe0582cc4d9a1c56
2020-10-20 23:54:03 +08:00
Jason Chiu
fb36be1a2f [Injection] Refine UI behavior for icon_uri
1. Make the icon provided by the content provider override static icon.
2. Apply the background settings "bg.hint" and "bg.argb" to icon_uri.

Bug: 167568758
Test: visual, robotest
Change-Id: I44c66d8ea2686df1dfe1f9ad28645da7e21414ed
2020-10-19 15:25:58 +08:00
Jason Chiu
20df25e6b9 Reduce the flickering of injected items when package is changed
Root cause:
Settings listens to four package-related broadcasts in order to refresh
injected items because UI data may change. However, when the system is
updating apps on the first boot, it triggers a burst of broadcasts. For
each broadcast Settings will reload and then redraw all injected items,
which leads to the flickering.

Solution:
1. When Settings recieves a broadcast, check if there are already two
reloading tasks to avoid redundant updates.
2. In the reloading task, check if any injected item is changed, added,
or removed to notify categories changed.
3. Only refresh the UI when any of the changed items belongs to the
current page.

Bug: 166785977
Bug: 168309941
Test: manual, robotest
Change-Id: I77745b60f84510554bff1870a5bb7a8013eab528
2020-10-02 17:13:16 +08:00
TreeHugger Robot
2cb6dd369c Merge "Guard against flickering of dynamic injection items" into rvc-qpr-dev am: 28b05910d8 am: d2f2f4b13e
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/12682503

Change-Id: I5fa97bb1a3feac16a64fd74696aa6713b8aeb2aa
2020-09-24 13:21:52 +00:00
Jason Chiu
a7d76af933 Guard against flickering of dynamic injection items
The summary of injected items may flicker when the data is change from
URI.

Root cause:
If an external app injects an entry to Settings with a dynamic summary,
Settings will observe the summary change via the provideed URI. However,
sometimes when Settings observes the data change and then refreshes the
UI, the data doesn't really change and settings still gets the same
summary. If it happens in a short period, the summary will seem
flickering.

Solution:
Check if the data really changes before refresh UI. Guard both title and
summary.

Fixes: 168309941
Fixes: 166785977
Test: robotest
Change-Id: I137fc317dcfd8919195c10fa8cf7d2559fe1029d
2020-09-24 17:25:48 +08:00
Yanting Yang
552f340dda Resolve tiles intent before prompting a dialog for profile selection
Symptom:
Once the work profile component of the tile is disabled after Settings
preloaded tiles, Settings will crash when the user clicks the work
option from the profile selection dialog.

Root cause:
Settings just checks the users from the preloaded tiles to prompt
profile selection dialog. It doesn’t check the activity for the work
profile user before launching.

Solution:
Resolve the activity by intent as users before launching if the work
profile is enabled. Directly start activity if only one user is
resolvable, otherwise prompt a dialog for profile selection.

Fixes: 162227425
Test: make RunSettingsRoboTests
Change-Id: Idcc4e5a266ab2a2252db30bb97d4be002212c677
2020-09-09 18:12:42 +08:00
TreeHugger Robot
6a128b486f Merge "Update language to comply with Android's inclusive language guidance" 2020-08-12 08:19:06 +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
8c8a2e85ec 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: I32f369a608c8b4f513f2c32afca6d408ee273428
2020-08-12 11:25:21 +08:00
Edgar Wang
c2e4513fb6 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: I36829e0055437dab79d9e5339ac002a87a4b874f
2020-08-04 18:12:48 +08:00
govenliu
b70ddb9df7 [Wi-Fi] WiFi Settings inclusive language fix plan phase 1
Replace WiFi related terms which contain Master wording.
Goal: Create a fixit for Android Platform to reduce the use of non-inclusive language for all code.

Bug: 161425297
Test: make RunSettingsRoboTests -j or
make RunSettingsRoboTests ROBOTEST_FILTER=DashboardFragmentTest
make RunSettingsRoboTests ROBOTEST_FILTER=WirelessDebuggingPreferenceControllerTest
make RunSettingsRoboTests ROBOTEST_FILTER=AutomaticStorageManagementSwitchPreferenceControllerTest
make RunSettingsRoboTests ROBOTEST_FILTER=AllInOneTetherPreferenceControllerTest
make RunSettingsRoboTests ROBOTEST_FILTER=TopLevelNetworkEntryPreferenceControllerTest
make RunSettingsRoboTests ROBOTEST_FILTER=PrimarySwitchPreferenceTest
make RunSettingsRoboTests ROBOTEST_FILTER=WifiPrimarySwitchPreferenceControllerTest
make RunSettingsRoboTests ROBOTEST_FILTER=WifiTetherPreferenceControllerTest

Change-Id: I9395c50e092e124016609f88f7c8151554a0d874
2020-07-21 20:56:22 +08:00
Stanley Wang
732514cd5f Fix the search result "Google Account" doesn't work.
- The "Google Account" item will launch the
  AccountDetailDashboardFragment.
  To launch the account detail page, we need the intent extras, account,
  account label and account type.
- Currently, SI doesn't support to index the intent extras, so we launch
  AccountDashboardFragment instead of AccountDetailDashboardFragment.

Fixes: 153626405
Test: manual test the search result and run Settings robotest
Change-Id: I081bd447c3f8422fb8859146b1ed4d7fcbc06810
2020-05-21 12:39:46 +08:00
Bonian Chen
048d9fe19e [Settings] Code Refactor
Code refactor to provide the capability of method override

Bug: 141833767
Test: manual
Change-Id: I79647a7ff79f1f722bcfdf8190590df61bb3510a
2020-04-23 04:11:55 +00:00
Jason Chiu
b12e3b96c9 Support click metrics logs in several pages
- Assign metrics category to perferences at an earlier stage in
  DashboardFragment for better usability.

Bug: 137559984
Test: robotest
Change-Id: Icd4185efa0e655be20c4b673a1380fa42140923f
2020-04-07 16:44:53 +08:00
Jason Chiu
819abf7f87 Refine metrics log in infrastructure
- Add interfaces to set/get metrics category in BasePreferenceController
  for descendants having a chance to get it.
- Set metrics category in DashboardFragment
- Automatically log metrics in onPreferenceChange of
  TogglePreferenceController
- Add support for TwoStateButtonPreference in TogglePreferenceController
  to make the preference generic

Bug: 137559984
Test: robotest
Change-Id: Ia7e0d24a3db1991b18e0286d9894570fa71247a3
2020-04-07 14:08:39 +08:00
Jason Chiu
26343b82ee Add metric logs for special cases in Display and Battery page
Bug: 137559984
Test: robotest
Change-Id: I60f6237ac2c533306879f46ee4c25d54002cf0e9
2020-03-26 11:31:39 +08:00
Jason Chiu
ca9ece1a0c Card showing mechanism change in homepage
- update contextual card proto interface to fit the new SettingsIntelligence
- show sticky cards at the tail of the card area

Bug: 149274976
Test: robotest
Change-Id: Icca167825c1c037ec12d8836d82c5fdff4331a8e
2020-02-14 17:44:11 +08:00
Bonian Chen
1b9bda3b05 [Settings] Avoid rendering hidden preferences
Under dashboards with expand button, preferences are renderred even
not been expanded.
Avoid from rendering un-expanded preference can improve the performance
of dashboard display.

Bug: 141833767
Test: manual
Change-Id: I00c6f827a0b7b7cec6a6fd8c809b94ca1dce88bb
2020-02-11 20:52:31 +08:00
TreeHugger Robot
08957569be Merge "Tie new category key to the adaptive battery settings page." 2020-01-15 17:47:55 +00:00
Raff Tsai
751f63a635 Fix tabLayout swipe direction
- Fix swipe direction by add layoutDirection=ltr in xml
- Reverse viewPager tab index when layoutDirection is rtl

Fixes: 147415514
Test: 1. change to rtl language
      2. Settings -> Account
      3. Swipe from left to right, should move tab to left.
      4. Swipe from right to left, should move tab to right

Change-Id: Ib5a080f4706161fd9c0f4d7f2da4d7b98946d960
2020-01-15 17:22:43 +08:00
Kenny Guy
1c045dbf49 Tie new category key to the adaptive battery settings page.
Bug: 146438499
Test: Manual, attempted to inject settings via a system app and succeeded

Change-Id: I8e506e82843b08213927b5bffe969e18d2452379
2020-01-14 14:26:59 +00:00
Raff Tsai
91d9942494 Fix focus on wrong tab
Fixes: 146594840
Test: Robolectric
Change-Id: I14c6d5a4055bee5d0aa413479fb9893e9dfc41df
2019-12-20 12:18:27 +08:00
TreeHugger Robot
2e2532077d Merge "Fix UI issue in LocationSettings" 2019-12-17 09:06:38 +00:00
Raff Tsai
5ec8efe7e0 Fix UI issue in LocationSettings
- Add WorkPreferenceController to support directly use work profile
related feature in xml
- Get only work/personal infos in RecentLocationRequestPreferenceController
and RecentLocationRequestSeeAllPreferenceController
- Remove ProfileSelectStorageFragment

Bug: 141601408
Fixes: 146080649
Test: manual, robolectric
Change-Id: Ide39c7a3796e16421f3a5690309c3d746a956de8
2019-12-17 04:25:49 +00:00
Jason Chiu
d955ebcd61 Merge "[Settings] Add preference click metric log" 2019-12-16 08:58:35 +00:00
Jason Chiu
1281e595e4 [Settings] Add preference click metric log
- Move the log point of onPreferenceTreeClick from DashboardFragment to
  it's super class InstrumentedPreferenceFragment for better coverage.
- Write the preference click metric log in PreferenceController handling
  case in DashboardFragment which will skip super class's log point.

Bug: 137559984
Test: robotest
Change-Id: I67178f613c74f755e20fc9dc41319974cb02e83c
2019-12-16 10:57:09 +08:00