Commit Graph

1154 Commits

Author SHA1 Message Date
Manish Singh
94cffad6c2 Support Private profile in profile modal selector
Profile selector modal with work profile
https://screenshot.googleplex.com/8ugpsT7nZA75VPa

Modal without work profile
https://screenshot.googleplex.com/9bPFbFG2DKBHhvS

Bug: 309635228
Test: manual
Change-Id: Id7533f101d2b5693c419c9591d59751925a4b7ce
2023-11-10 18:14:33 +00:00
Manish Singh
6ce9c37701 Deep copy the existing Arguments
Otherwise we end up using the same bundle for all the fragments.

Bug: 304697867
Test: manual
Test: atest ProfileSelectFragmentTest
Change-Id: Ia31f2440516783c22849593922467756c8c54cb9
2023-11-08 20:53:58 +00:00
Chaohui Wang
cfdb3b1f1b Migrate new() to SwitchPreferenceCompat
Bug: 306658427
Test: manual - on Settings pages
Change-Id: I258a8c63d5c46403c6d333a9d2f34c33cb35e27f
2023-10-24 14:05:34 +08:00
Chaohui Wang
15ca95a31b Migrate to TwoStatePreference
SwitchPreference and SwitchPreferenceCompat are both TwoStatePreference.

Using TwoStatePreference in Java will helps migration in the future.

Bug: 306771414
Test: manual - check Settings pages
Change-Id: I84e1d7b09451106797c2b23d127855c6976678ca
2023-10-23 09:28:57 +00:00
Manish Singh
6efc455f2c Show a separate tab for the Private Space
This covers all the known Settings pages using the tabbed view model.

https://docs.google.com/document/d/1CdjUjAE84-5ZEPRIfw5KYFjLVHtEZxc_sF0w95su8DA/edit?resourcekey=0-dAACT9HRexY1IyoxMmkVlw#heading=h.58jd58rmznte

Screenshots:
all apps
https://screenshot.googleplex.com/3E5Jm7Pi2JfN64r
with work tab:
https://screenshot.googleplex.com/8egk4yHK5jSENjR

PS Apps Special media management apps
https://screenshot.googleplex.com/BHHafqW7bgUwSGg
with work tab:
https://screenshot.googleplex.com/3cocdhruEmCCh5k

PS Location Services tab view
https://screenshot.googleplex.com/3DqJcT2BFTEpvYT
with work tab:
https://screenshot.googleplex.com/6Avpx6hxSrdGJw5

PS on screen keyboard tab view
https://screenshot.googleplex.com/4FzVNnBWwbUeJNw
with work tab:
https://screenshot.googleplex.com/8E8UhpWq8PL5nxU

PS password account tab view
https://screenshot.googleplex.com/6bDR4AKtth2S3EW
with work tab:
https://screenshot.googleplex.com/9msXV2TdHdJapch

PS storage tab view
https://screenshot.googleplex.com/5Nk2FTxwdmpEv3B
with work tab:
https://screenshot.googleplex.com/79tw2EaWZKfMsnC

PS appl_languages_work
https://screenshot.googleplex.com/3qrREeg3RQdHhhH

Bug: 302278487
Test: manual
Change-Id: I8cd39170827fbe251bc4075ef306206020b3a022
2023-10-11 12:32:17 +01:00
Chaohui Wang
8e2ae547d6 Clean up FeatureFactory.getFeature()
Bug: 286764889
Test: m Settings
Change-Id: I7e472e6b0ca6b7a735c1b92742ddf06c545176fc
2023-08-08 08:41:48 +00:00
Chaohui Wang
2541381259 Fix references to resources for Settings
Bug: 293810334
Test: m Settings
Change-Id: Ie140278f492ef7e1c062ec1ecae2866c521a86aa
2023-08-08 01:56:05 +00:00
Chaohui Wang
58f0ee30fc Remove context from dashboardFeatureProvider
DashboardFeatureProviderImpl is created by using application context,
no need pass context in when get.

Bug: 286764889
Test: m Settings
Change-Id: Ia9672dfd9d3d71f64735cbc5979a6ad57c9429d3
2023-07-20 12:21:16 +08:00
Chaohui Wang
eb4fea1a36 Call onViewCreated in DashboardFragment
To let fragment's view lifecycle owner passed in to controllers.

For UI usage, view lifecycle owner is the best choice, controller could
use this lifecycle owner to observe events and do UI related works.

Usage DataSaverController as first example.

Bug: 287005021
Test: Manually for DataSaverController
Change-Id: Id965ea3a24d61f4d0ec6735632944f41f72ba06a
2023-06-14 12:22:12 +08:00
Jason Chiu
a8142278e9 Merge "Do not init dashboard categories when SetupWizard isn't finished yet" into udc-dev am: b2ed35b2ae
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23486247

Change-Id: I8a7966fd9f3ee88683c35fd4f2bd7b60b475cbcc
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-02 11:05:34 +00:00
Jason Chiu
2560c0df9b Do not init dashboard categories when SetupWizard isn't finished yet
The generated category cache during SetupWizard flow is invalid.

Bug: 261885832
Test: manual
Change-Id: Id2108b2cc4ab557b086c4dbbd5dc7722c73e74d3
2023-06-01 16:07:53 +08:00
Peter Zhang
f6a267bd36 Add logging when a group tile with PreferenceCategory widget is added to
the screen

Test: robotest, manual
Bug: 281517110
Change-Id: I4de1938bdeea003c70e5c554e988a97b762f7f81
2023-05-12 14:41:32 +02:00
Peter Zhang
baeca6fb53 Add the support of preference group / category to the Settings Tile API
Test: robotest, manual
Bug: 281517110
Change-Id: Ie36b0b3eb8ed80766efa050f1f0aee1f784a5949
2023-05-12 14:40:41 +02:00
Peter Zhang
3e498ad30d Render an additional icon to the tappable tiles with pending intents
Test: robotest, manual
Bug: 281517110
Change-Id: Ia5fbae63d56a6f1e6ee8fb3ee58ae912d14b6c75
2023-05-09 19:49:57 +02:00
Peter Zhang
ddb65e569b Expand SettingsLib ProviderTile to support non-switch type of Preferences
- Added new metadata allowing to set PendingIntent onto a Tile, which will be executed on click;
- Update the rendering logic to render with SwitchPreference only when Tile.hasSwitch() == true.

Test: robotest, manual
Bug: 281517110
Change-Id: I1253029be1e172792679f80be24bd58e368b9e73
2023-05-09 19:32:26 +02:00
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