Commit Graph

1139 Commits

Author SHA1 Message Date
Jason Hsu
32614f2b52 Merge "Add ability to handle onActivityResult for AbstractPreferenceController in DashboardFragment" into udc-dev 2023-04-14 09:42:43 +00:00
danielwbhuang
2659074d02 Handling multiple profiles for PK layout selection
1. Use new @hide IMM#getEnabledInputMethodSubtypeListAsUser()
2. Use ProfileSelectFragment

Demo: https://screencast.googleplex.com/cast/NjMzNTA2NTA2NDczNDcyMHwxNTUyMjQ1ZS03YQ

Bug: 275106096
Test: manual
Change-Id: I51cfd16fc7162e2b24782017b9366b0aad36f915
2023-04-06 00:50:54 +00:00
jasonwshsu
d3b3ed5e6d Add ability to handle onActivityResult for AbstractPreferenceController in DashboardFragment
* AbstractPreferenceController now can implement OnActivityResultListener to receive callback from DashboardFragment#onActivityResult()

Bug: 270096758
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.dashboard.DashboardFragmentTest
Change-Id: Ib734287c6fe06fcdde3b2fe6ae9f4b778020b60b
2023-04-06 00:14:37 +08:00
Marcelo Arteiro
c5631b45b2 Automated Token Alignment Android/Material
Resubmiting reverted CL Ia1f84669090e04b3a2aaac82bb5971032d74a125.
Reson: Bug was found in another CL (in this topic)

Test: Treehugger
Bug: 268682423

Change-Id: I0fead8915b2bb6281e29b32f7426c35b0138b10e
2023-03-31 10:53:24 +00:00
Marcelo Arteiro
7e2d77a717 Merge "Revert "Automated Token Alignment Android/Material"" into udc-dev 2023-03-10 13:43:23 +00:00
Marcelo Arteiro
1b599e0232 Revert "Automated Token Alignment Android/Material"
This reverts commit c9ca4a9014.

Reason for revert: Black Search Box in Settings App (Light Theme)

Change-Id: I936e977ce044b8da41d818d6b3392adc6fd1e4e6
2023-03-09 23:40:40 +00:00
Marcelo Arteiro
b93f186df4 Merge "Automated Token Alignment Android/Material" into udc-dev 2023-03-06 12:46:02 +00:00
Jason Chiu
771a0c0473 Eliminate the injection flicker while navigating back
For the title/summary uri, do not set the placeholder when it already
has content. This can avoid clearing the text before re-rendering.

Test: robotest, visual
Fix: 256657256
Change-Id: I0518f5247fd2acf6a5eaa63f0f363275103a79af
2023-03-01 10:02:35 +00:00
Marcelo Arteiro
c9ca4a9014 Automated Token Alignment Android/Material
Test: Treehugger
Bug: 268682423
Change-Id: Ia1f84669090e04b3a2aaac82bb5971032d74a125
2023-02-17 15:14:30 +00:00
Prabal Singh
44d858e405 Merge Advanced Security and Privacy Category keys
Test: atest CategoryManagerTest
Bug: b/260060884
Change-Id: I376aa8af6c19cfcca2b84d6ccbd5cd497fa298b8
2023-02-08 17:41:49 +00:00
Prabal Singh
9463e91f6f Add new category key for More Settings page
Test: manually tested
Bug: b/260060884
Change-Id: Ida3816203a85cb267bc57e1b19bb9b9b81ee955d
2023-02-07 16:56:15 +00:00
Yilin Cai
b740a18bd5 Merge "Add external injection support in Special App Access." 2023-01-20 04:02:22 +00:00
Yilin Cai
9bcd6ba86f Add external injection support in Special App Access.
Test: adjust injection target of live translate in local device https://hsv.googleplex.com/6649669464621056
Bug: 242280896
Change-Id: I5c7eccceafeb159aac55e98dc7eb1daa17844de5
2023-01-18 12:29:58 +08:00
Sunny Shao
042f3aebfb Remove additional and unused action
Fixes: 265276395
Test: compilation
Change-Id: Ib8e5e22ebb9f4742a60fcc28643dc5640b4db1e2
2023-01-13 13:43:42 +08:00
Darrell Shi
ca155fefa7 Merge changes from topic "hub-mode-settings" into tm-qpr-dev am: e722587923 am: 2287f6e2e9
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20736115

Change-Id: Ibf2d91b9655ae968442033234384a340ed3a8f81
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-12-21 09:04:54 +00:00
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
David Gutierrez
be120eca3e Dead code removal
Test: on-device testing
Change-Id: I96e7e4d5306d468dd32a9affad28bd8c3f90bb75
2022-12-02 16:10:13 +00:00
Arc Wang
fbb154b1ef Add page id enum for storage settings
- Add SettingsEnums.SETTINGS_STORAGE_PROFILE_SELECTOR

Bug: 260051818
Test: compilation
Change-Id: Ic68edc9754d6e18fb58fc5708fb4eb9c2b71ec9f
2022-11-29 12:05:13 +08:00
Arc Wang
d132199429 Add page id enum for storage settings
- Add SettingsEnums.SETTINGS_STORAGE_CATEGORY_WORK

Bug: 260052338
Test: compilation
Change-Id: Ib3e30410c2e2f6367be8ac26cd63cdf16caef70e
2022-11-24 14:27:04 +08:00
“Ankita
9304977674 Do not show Choose Profile dialog for clone user.
Bug: 249194639
Test: make RunSettingsRoboTests -j64
Test: make RunSettingsRoboTests ROBOTEST_FILTER=ProfileSelectDialogTest
Change-Id: I35279f643f8c562df7b407fdf2cbfd2ae5ee9890
2022-11-15 07:49:09 +00:00
Jason Chiu
7fd3621809 Merge "Reserve the icon space to avoid preference padding change" into tm-qpr-dev am: b9b1225ac3 am: 2cbced55a4
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20392450

Change-Id: Ib44c08584f56e992d2caa26ee8018f6724993390
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-11-08 05:34:41 +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
Chaohui Wang
507e5f8c90 Fix some errors for Settings project
Attrs could not have same name, so create a common parent for the
messageText. And BiometricEnrollCheckbox is not in use.

Replace some com.android.settingslib.R with com.android.settings.R,
because these are files in settings instead of settingslib.

Bug: 253772249
Test: TAP
Change-Id: Ifa796e923bf26facf4935be4968637affdb4b48b
2022-10-16 14:14:02 +08:00
danielwbhuang
c9cb6806f6 Separate "Keyboard" from "Language & input"
1. Separate "Keyboard" from "Language & input".
2. Use FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_UI to control the
   different UI until Settings launches the new UI design.

Bug: 242680328
Test: local test
Change-Id: Id1ea6d3e3c2e6b83bc4b4d835c6b27e31311c530
2022-08-30 14:22:05 +08:00
Chaohui Wang
0441f990f9 Merge "Remove the redundant constructor of SuggestionFeatureProviderImpl" 2022-08-08 06:47:18 +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
Chaohui Wang
80a11a251e Remove the redundant constructor of SuggestionFeatureProviderImpl
Fix: 175167313
Test: robotest
Change-Id: I7ebbaf92398a8300971d592e2ee7a6e0d82c1d2f
2022-07-13 03:44:26 +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