Commit Graph

1115 Commits

Author SHA1 Message Date
Darrell Shi
65836b1e3d Add top-level Communal settings.
This change adds a new top-level setting, of which the availability is
controlled by a build time config value. It also registers the new
communal category so that prebuilt packages can inject preferences into
it.

Bug: 261641080
Test: verified on device that communal settings show up on top level
Test: atest ScreenSaverPreferenceControllerTest
Change-Id: Idf79ae5b89ecc3498373de56a677b4876fb121c3
2022-12-21 04:10:56 +00:00
Jason Chiu
fb95451369 Reserve the icon space to avoid preference padding change
If the injection icon is to be retrieved from a provider, the preset
transparent drawable is a 1x1 icon, which may cause the preference
padding change before and after the injection icon reloading.

Bug: 253471066
Test: robotest, visual
Change-Id: Ie88f69bb047a64a6a0ee30c060d8cbb8fe27b3d7
2022-11-07 10:11:20 +00:00
Jason Chiu
c89755525f Update all preferences when the account preference updates UI
When an account is added or removed, the account preference controller
just updates the account list, whereas there's no trigger point for the
account data sync preferences to refresh.

Add an API to update all preferences in DashboardFragment, so we can
refresh the account sync preferences whenever the account list is
updated.

Bug: 185479221
Test: robotest, manual
Change-Id: Ide3d972abae09ce0175e3bafbb1f4a5e307d20c8
2022-07-19 10:32:23 +00: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
Edgar Wang
1f6334825f Merge "Recalculate view's height when tab is selected" into tm-dev 2022-06-07 04:17:39 +00:00
Arc Wang
03d8d11914 Fix can't start injected item problem
Should set highlight Preference key after
isDuplicateClick to ensure clicked Preference
key & highlight Preference are different and
then isDuplicateClick returns a correct value.

Bug: 233553587
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.dashboard
      manual
      1. Click all left pane items and see if there is any launch problem.
      2. Check if duplicate click check works.

Change-Id: Ic6394b96896fd3a0fb926707565f63beff74a27b
2022-05-24 07:13:35 +00:00
TreeHugger Robot
baa2c48575 Merge "Filter out the duplicate click event on menu page" into tm-dev 2022-05-20 18:18:58 +00:00
Jason Chiu
e04dfaa29e Filter out the duplicate click event on menu page
Whenever the highlighted item is clicked, Settings shouldn't start the
second-layer page again even if the user goes to its child page.
Ex. When the user goes to the Tethering page, clicking on the menu
entry "Network & Internet" should not switch to the page.

Exception: in the deep link case, allow the first click event on the
highlighted item to launch the second-layer page when the page is not
the same as the one on the right pane.

Fix: 215267159
Test: manual, robotest
Change-Id: I2315e0069facc4867cb157752b1a3144716b7d17
2022-05-20 15:01:31 +00:00
Jason Chiu
65d46ee179 Guard against the NPE in setPreferenceIcon()
Fix: 232902867
Test: robotest
Change-Id: I01f2a6aa8dab9c8e099588e440fc35ed1093592a
2022-05-18 17:07:26 +08:00
Edgar Wang
f3270e5c1c Recalculate view's height when tab is selected
Viewpager2 created view based on the first tab height, when tab is
selected, viewpager2 should recalculate height.

But this solution may not suitable for App list, so we only enable
for Location Settings which have different items in personal & work
profile.

Bug: 224521665
Test: manual
Change-Id: Ib19b30cb82b8b4f13f651795906289da53ded4ed
2022-05-16 15:59:21 +08:00
Arc Wang
e6389f63c2 Merge "Show USB flash drive in storage spinner when it's unmounted" into tm-dev 2022-05-13 08:03:15 +00:00
Arc Wang
f81a4817f2 Show USB flash drive in storage spinner when it's unmounted
Before this change, USB flash drive is removed from storage spinner
when it's unmounted (by option menu 'Eject'), however, USB flash
drive will show in storage spinner when Storage Settings page is
resumed again.

After this change, USB flash drive will show in storage spinner
even if it's unmounted. It will be removed until it's unplugged
from device.

Bug: 225095144
Test: manual visual
      Insert / Eject / Mount / unplug an USB flash drive and
      observe UI behavior.
Change-Id: I6b81766216c7850b018997f2de12a19d9d8675be
2022-05-12 16:17:12 +08:00
Jason Chiu
6d9b155b20 Merge "Reduce flickers of Injection" into tm-dev 2022-05-09 11:04:20 +00:00
Jason Chiu
c9615611e1 Reduce flickers of Injection
The injection dynamic data was loaded in the background and then post to
main thread to update UI. However, it usually updates after
Fragement.onResume(), which causes the flicker.

To make it more smooth, DashboardFragment to wait for the dynamic data
observers to update UI for a short period, which eliminates the flicker
in most cases.

Also skip the repeated tiles refresh called by onCategoriesChanged in
onResume after all preferences refreshed.

Test: robotest, visual
Bug: 229177114
Change-Id: I04650af9692703f1fc1e6e5ad2090f051b1eeb81
2022-05-09 12:33:54 +08:00
Chaohui Wang
fe0c66dc78 Merge "Improve Talkback for user select dialog" into tm-dev 2022-05-09 03:56:33 +00:00
Jonathan Scott
b7f4f56cad Add missing settings strings.
Also re-enable and fix tests.

Test: manual
Fixes: 226183482
Fixes: 218799125
Fixes: 219375624

Change-Id: I9605f1f4e2e834baf63e015e96639567c5481b5f
2022-05-05 09:12:59 +00:00
Chaohui Wang
cf81f94e3b Improve Talkback for user select dialog
Before this fix,
Both the list item and button are focusable by Talkback, and the list
item one is ok ("Personal, one of two."), the button one is read as
"Unlabeled".

After this fix,
Only the button is focusable by Talkback, read as "Personal, in list, 2
items."

Also test to make sure Switch Access not break.

Bug: 174626616
Test: manual test when Talkback / Switch Access enabled
Change-Id: I72765c1bcbb75e544d5829b21c3e2baf4355be1f
2022-05-03 19:02:21 +08:00
Chaohui Wang
f250493787 Update Personal / work selection UI.
Implement the new-look by using AlertDialog's
custom title and custom view.
Using the RecyclerView so we can display profile
horizontally.

Bug: 174626616
Test: manual & robolectric
Change-Id: I9f5a7685d9217fc62e01799ad73f9b9a3ddbf19a
2022-04-25 19:12:38 +08:00
Yi-Ling Chuang
61022c6419 Fix UiBlcoker regression
We determine if the visibility should be updated by mIsFirstLaunch, and
mIsFirstLaunch is set to false in onStop(). This breaks the updatability
if there's a change before onStop() gets called.

So we move the value assignment to the end of checkUiBlocker() because
at that time, all blocker work should be either finished or timeout.
Also remove mIsFirstLaunch since mUiBlockerFinished can cover the
determination with the new design.

Fixes: 229565193
Test: Toggle Use Location in the location page and see the Recent used
section react accordingly.

Change-Id: Id6005e5b8b29cb8a6309068d0a2177489a3fb2f4
2022-04-19 15:12:29 +08:00
Chaohui Wang
70470586a6 Fix XML preference controller with androidx LifecycleObserver
Controller can implements LifecycleObserver to observe the lifecycle.

Before this fix, preference controller which defined in the XML file
must implement com.android.settingslib.core.lifecycle.LifecycleObserver
(which is deprecated, and is a subclass of
androidx.lifecycle.LifecycleObserver).

After this fix, preference controller which defined in the XML file
and implemented androidx.lifecycle.LifecycleObserver will successful
observe the lifecycle.

Fix: 149338098
Test: robotest & manual
Change-Id: If9e48e44267de8e89a5e8f45d256719130936320
2022-03-29 14:43:06 +08:00
Yi-Ling Chuang
a28770e459 Add visibility control for the UiBlocker
The existing UiBlocker mechanism doesn't support additional visibility
control. With that, controllers that want to control their own
visibility won't be able to use UiBlocker.

Fixes: 223340393
Test: robotest
Change-Id: I2df2eb1ce77e2c94bb271a8b68cc8c6004df5c70
2022-03-22 11:53:33 +08:00
kholoud mohamed
de78149c16 RESTRICT AUTOMERGE Refactor device policy resource APIs to a separate class
Bug: 217388602
Bug: 218875965
Test: atest EnterpriseResourcesTests
Test: manual
Change-Id: I4775d7741c7819fd811c3fc4eda1636b1e04b398
2022-03-17 17:37:45 +00:00
Tsung-Mao Fang
6af43b1412 Remove no reference code
- Remove ControllerTask and ControllerFutureTask.
- Remove ControllerTaskTest and ControllerFutureTaskTest.

Fixes: 222661474
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.dashboard
Change-Id: I36f4e723c40aa59ecb3b087cab11f2a744540812
2022-03-04 20:28:28 +08:00
TreeHugger Robot
9e9a39d717 Merge "Cache mechanism for Storage page with work profile" into tm-dev 2022-03-02 09:49:42 +00:00
Edgar Wang
f97f5f7005 Update workprofile TabLayout for Material Next style
1. Upgrade ViewPager to ViewPager2 which provided better support.
2. Apply new TabLayout style

Bug: 193249384
Bug: 195655281
Bug: 193249173
Bug: 179738624

Test: manual

Change-Id: I905ee82f315316c2bf4b73bf5581423878e2c3e7
2022-03-01 18:07:43 +00:00
Mill Chen
0607c5116c Cache mechanism for Storage page with work profile
Apply a cache mechanism to prevent the flicker problem from entering
Storage page.

Bug: 191117970
Test: manual test
1) Create a work profile with TestDPC
2) The loading spinner will be shown when entering Storage page after
   the first boot.
3) Back to Settings homepage and switch back to Storage page, the
   loading spinner shouldn't be shown.
4) The preference order shouldn't be updated after changing the storage
   size.

Change-Id: I518679f90c63e12f61f08d08d5ed3f3900825be2
Merged-In: I518679f90c63e12f61f08d08d5ed3f3900825be2
(cherry picked from commit cda892df85)
2022-02-24 06:25:42 +00:00
Christian Göllner
ff9065ac95 Add support for device state based auto-rotation preferences in Settings.
- Creates new preferences that are shown when device-state rotation
  is supported.
- Hides standard preferences when device-state rotation is supported.
- Controllers/Preferences for individual folded/unfolded rotation
  settings are created and added programatically based on the settable
  device states available.

Test: Manually + Unit tests
Bug: 195757480
Change-Id: I16f50fd3664756b363c7eb79e5c35eb0d3b6df17
2022-02-21 17:18:04 +01:00
Christian Göllner
3c65556ceb Merge "Revert "Add support for device state based auto-rotation prefere..."" 2022-02-16 17:27:53 +00:00
Oli Lan
6eae6d66f5 Merge "Increase default user icon size." 2022-02-16 15:50:10 +00:00
Christian Göllner
a663f10c4e Revert "Add support for device state based auto-rotation prefere..."
Revert submission 16745827-device-state-auto-rotation-preferences-aops

Reason for revert: Checking if reason for test failures
Reverted Changes:
I77ed93f04:Add support for device state based auto-rotation p...
I5b2791f54:Add support for device state based auto-rotation p...
If254220ca:Add support for device state based auto-rotation p...
If254220ca:Add support for device state based auto-rotation p...

Fix: 219652963
Change-Id: Id95d5d7bb18a28403a6d3199945044e6617e0772
2022-02-16 13:31:16 +00:00
Oli Lan
43412bcccd Increase default user icon size.
This increases the size of the default user icon to the size specified
by the system (190dp), using the new method added in ag/16847427.

Bug: 218838295
Test: visual inspection
Test: make RunSettingsRoboTests -j40 ROBOTEST_FILTER="com.android.settings.users.UserSettingsTest"
Change-Id: I3d88fbd1e148f0f63c796a272cd5771f4447812d
2022-02-16 11:44:50 +00:00
TreeHugger Robot
afdd629808 Merge "Add support for device state based auto-rotation preferences in Settings." 2022-02-15 02:55:55 +00:00
Christian Göllner
78a0e714c4 Add support for device state based auto-rotation preferences in Settings.
- Creates new preferences that are shown when device-state rotation
  is supported.
- Hides standard preferences when device-state rotation is supported.
- Controllers/Preferences for individual folded/unfolded rotation
  settings are created and added programatically based on the settable
  device states available.

Test: Manually + Unit tests
Bug: 195757480
Change-Id: If254220ca3018bc6ec1c4e3947375733f6816f92
2022-02-14 18:51:54 +01:00
Yi-Ling Chuang
2cb3f925a3 Only set embedding rule for top level injection
Only the injected items on the top level pages should always be opened
on the right pane, so we should only register the split rule for that
part. This will leave flexibilities for those injected items in the
subpages.

Fixes: 216026158
Test: Go to Passwords & accounts > {account} > Google Account and see
the page opened in a full screen/new task.

Change-Id: I9f311547854ace410e93fdb4ca394df1079f723c
2022-02-11 15:34:41 +08:00
Jonathan Scott
269f97d960 Allow overriding of strings referenced in XML files.
Test: manual
Bug: 188414370
Change-Id: Ice45b1808530c14c4efff16795cac7b2cb81516e
2022-02-07 21:00:05 +00:00
Jonathan Scott
e0d439472f Allow Device Management Role Holder to update Settings strings.
Test: manual
Bug: 188414370
Change-Id: I6e1a06619799a9e99382d791e72e2e4518f93cac
2022-01-25 19:03:24 +00:00
kholoud mohamed
73ba56ff55 Change the managed profile icon for profile selector
Switched to using PackageManager#getUserBadgeForDensityNoBackground which returns a
drawable that could be updated by the device management role holder.

Bug: 203548565
Bug: 188414370
Test: manual
Change-Id: I6b6bd9eceb90e16afa6d1fa52f3a7cd342a1f1ba
2022-01-13 10:15:58 +00:00
Yuri Ufimtsev
4eea126959 Group some Security settings to a separate "Advanced settings" screen
Test: adb shell am start -a android.settings.SECURITY_SETTINGS opens Advanced
Security Settings screen
Test: atest SettingsUnitTests:SecurityAdvancedSettingsTest
Test: atest SettingsUnitTests:SecurityAdvancedSettingsControllerTest

Bug: 204416998

Change-Id: If9c6da812ffb7c046b3b00a084007950801e1d4f
2021-12-23 10:26:46 +00:00
Jason Chiu
d2e506fd20 Merge "Revise homepage highlight mechanism" into sc-v2-dev am: 7bfe3e869a am: 3b9ad4de7f
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/16366004

Change-Id: Ib86f125d24836fb955d5dd31ec26f250460d3161
2021-12-03 09:46:31 +00:00
Jason Chiu
7bfe3e869a Merge "Revise homepage highlight mechanism" into sc-v2-dev 2021-12-03 08:23:24 +00:00
Wilson Wu
fd9287b7da Merge "Make on-screen keyboard settings support tab layout" 2021-12-03 04:05:18 +00: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
TreeHugger Robot
d355d7f123 Merge "Fix the background color of CollapsingToolbarLayout" into sc-v2-dev 2021-12-02 07:19:45 +00:00
Mill Chen
3825bff021 Fix the background color of CollapsingToolbarLayout
The wrong background color of CollapsingToolbarLayout appears in some
pages like "All apps" page or "Password and accounts" page. This symptom
can be observed in these pages when the work profile is enabled and the
line count of title is 1.

This issue is caused by updating the title of the page many times. In
these pages that have the tab view, the structure of the page differs
from a general setting page. The title of the page is coming from
BaseActivity, ProfileSelectFragment, PersonalFragment and WorkFragment,
in which the page that has the issue has an empty string from
ProfileSelectFragment. That is causing the CollapsingTollbarLayout has
the different line count during the process of setting the title.

Since the pages that have the tab view are different from the general
pages in Settings, the title should be set separately for those pages.
Adding a method to get the title resource ID so the page extending from
ProfileSelectFragment can set its title.

Bug: 192914660
Test: visual test and manual test
1) Enable work profile
2) Navigate to All apps page
3) The page should have the correct background color in the
CollapsingToolbarLayout

Change-Id: I52ef9729f3cad56161ea3d87ba25429dfcdb26ef
Merged-In: I52ef9729f3cad56161ea3d87ba25429dfcdb26ef
2021-12-02 13:40:45 +08:00
TreeHugger Robot
9e978441af Merge "Fix the background color of CollapsingToolbarLayout" 2021-12-02 05:26:01 +00:00
Mill Chen
28bc1c04b9 Fix the background color of CollapsingToolbarLayout
The wrong background color of CollapsingToolbarLayout appears in some
pages like "All apps" page or "Password and accounts" page. This symptom
can be observed in these pages when the work profile is enabled and the
line count of title is 1.

This issue is caused by updating the title of the page many times. In
these pages that have the tab view, the structure of the page differs
from a general setting page. The title of the page is coming from
BaseActivity, ProfileSelectFragment, PersonalFragment and WorkFragment,
in which the page that has the issue has an empty string from
ProfileSelectFragment. That is causing the CollapsingTollbarLayout has
the different line count during the process of setting the title.

Since the pages that have the tab view are different from the general
pages in Settings, the title should be set separately for those pages.
Adding a method to get the title resource ID so the page extending from
ProfileSelectFragment can set its title.

Bug: 192914660
Test: visual test and manual test
1) Enable work profile
2) Navigate to All apps page
3) The page should have the correct background color in the
CollapsingToolbarLayout

Change-Id: I52ef9729f3cad56161ea3d87ba25429dfcdb26ef
2021-12-01 18:44:42 +08:00
TreeHugger Robot
9eaf11e0c9 Merge "UI refinement of highlighted menu entry for large screen" into sc-v2-dev am: aee951dcb0 am: 517c9ead5e
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/16304401

Change-Id: I21d8dab4ebc3292bf49a50e518531f3c07098a5b
2021-11-24 18:44:52 +00:00
Wilson Wu
97635f53e6 Make on-screen keyboard settings support tab layout
Introduces following fragments for work flow.

- Add ProfileSelectKeyboardFragment which used to display
  personal/work fragment when user has work profile.
- Introduce UserAwareContext in AvailableVirtualKeyboardFragment
  to support personal/work user installed input methods handling.

Bug: 174360557
Bug: 197707782
Test: Manual test as bug video
Change-Id: I1019e375c5d42de7bc7c048d5d66e8e2f58acce8
2021-11-23 17:10:34 +08:00
Jason Chiu
90eef24080 UI refinement of highlighted menu entry for large screen
- Add a new highlight background drawable
- Add two homepage specific preferences for the new layout design

Fix: 207079684
Test: visual
Change-Id: I20c80da090a03129bffa845d443ee5d1ad13b97b
2021-11-22 12:36:05 +08:00
Lifu Tang
df1b7c6979 Remove tabs from recent location access page
Bug: 185382276
Test: manual - screenshot/Az2obQLjdy7vVv9
Change-Id: Ic2f3004d57108e136c622290e8d78bf284a09258
2021-11-12 12:43:43 -08:00