Commit Graph

18117 Commits

Author SHA1 Message Date
Nikhil Kumar
01b7062b34 Restrict admin status change when DISALLOW_GRANT_ADMIN is present
This change addresses a security gap where users with the "DISALLOW_GRANT_ADMIN" restriction could still grant admin privileges to others, potentially undermining supervised user models.  We've extended the existing logic to ensure that restricted users cannot grant or receive admin privileges when the DISALLOW_GRANT_ADMIN restriction is in place. This prevents scenarios where supervised users could create new admins to bypass restrictions and factory reset the device.

In addition to the core functionality improvement, significant code refactoring has been done to untangle complex multiple if conditions. The logic for determining when admin status changes are allowed is now clearer and more readable, taking into account both the "current user" (initiating the change) and the "target user" (whose privileges are being modified).

Bug: 357056776
Test: atest UserDetailsSettingsTest and manually verified the user having DISALLOW_GRANT_ADMIN restriction is not allowed to change admin status of any other user.
Flag: android.multiuser.unicorn_mode_refactoring_for_hsum_read_only
Change-Id: If02c9355ee7ce285b5b7bcddae630d716d5bf333
2024-08-05 18:16:33 +00:00
Yiyi Shen
b068edadf1 Merge "[Audiosharing] Returns BluetoothDevice when fetchConnectedDevicesByGroupId" into main 2024-08-05 06:11:47 +00:00
Matías Hernández
0721f5c5b2 Replace direct usage of update origin by TestModeBuilder.setEnabled() overload
Bug: 333527800
Test: atest ZenModesListItemPreferenceTest
Flag: android.app.modes_ui
Change-Id: Ice6144b8a15641703495d18b57f5b56cda91e92a
2024-08-02 19:01:04 +02:00
Matías Hernández
7a1039fea4 Merge "Overhaul the message senders screen" into main 2024-08-02 12:43:31 +00:00
Matías Hernández
a4c99767b7 Overhaul the message senders screen
* Fix combinations of messages=all with other conversation values.
* Correctly display policies with CONVERSATION_SENDERS_ANYONE. An additional checkbox is included, but _only_ if the policy has CONVERSATION_SENDERS_ANYONE when shown.
* Changed updateState() to consider the possible cases one by one. Because multiple policies are mapped to the same checkbox states, the strategy of "checking whether the state matches what the checkbox wants to set" doesn't really work.
* Fix messages summary and circles to support CONVERSATION_SENDERS_ANYONE.
* Added a lot of tests (actually, hopefully ALL OF THEM) covering the user-visible behavior. :)

Fixes: 354658240
Test: atest ZenModesSummaryHelperTest ZenModePrioritySendersPreferenceControllerTest
Flag: android.app.modes_ui
Change-Id: I727496ca3eb820e4baaab942b61d2e57cdb491fc
2024-08-02 12:36:44 +02:00
Yiyi Shen
7edad1c84a [Audiosharing] Returns BluetoothDevice when fetchConnectedDevicesByGroupId
CachedBluetoothDevice can change its member variable mDevice, so we can
not rely on the CachedBluetoothDevice#getDevice when we add source to
it. This change will return BluetoothDevice instead of
CachedBluetoothDevice when fetchConnectedDevicesByGroupId, so that we
won't add source to unintended BluetoothDevice via
CachedBluetoothDevice#getDevice.

Fix: 350877510
Test: atest
Flag: com.android.settingslib.flags.enable_le_audio_sharing
Change-Id: I4ee41b8f1449e7176f0a05a7dd4e59034c161824
2024-08-02 05:20:31 +00:00
Treehugger Robot
b6e0cd99c1 Merge "Add whether app optimization mode mutable in BatteryUsageDiff proto." into main 2024-08-02 03:36:39 +00:00
mxyyiyi
59e5dc720a Add whether app optimization mode mutable in BatteryUsageDiff proto.
Bug: 350657779
Test: atest ConvertUtilsTest
Flag: EXEMPT bug fix
Change-Id: I80a5e6513e1bee88f85caeed7661b10204df8a51
2024-08-02 10:41:24 +08:00
Abdelrahman Awadalla
f2d6fe9e32 Add "Touchpad visualizer" to input developer options
Bug: 286551975
Bug: 350039816
Test: atest TouchpadVisualizerPreferenceControllerTest
Test: Manual testing using
      $ adb shell settings get system touchpad_visualizer
Flag: com.android.hardware.input.touchpad_visualizer

Change-Id: Ic5de704c49aabf1a80d202aa890055f7337d45d4
2024-08-01 13:34:32 +00:00
Chelsea Hao
09f62d72d2 Merge changes Id0882547,I427e08a3 into main
* changes:
  [Audiosharing] Change text color.
  [Audiosharing] When user enters a bad code, apply error color on summary.
2024-08-01 05:50:04 +00:00
Tom Hsu
d26c804af1 Merge "[Settings]Check the Satellite modem state instead of enabled state only." into main 2024-08-01 05:27:06 +00:00
chelseahao
e85e1c823a [Audiosharing] When user enters a bad code, apply error color on summary.
Bug: 356071392
Flag: com.android.settingslib.flags.enable_le_audio_sharing
Test: atest
Change-Id: I427e08a3cce8d0e85f29f821d9b779acc95217b1
2024-08-01 04:25:21 +00:00
tomhsu
90553d91f1 [Settings]Check the Satellite modem state instead of enabled state only.
Flag: EXEMPT bugfix
Fix: 354806125
Test: Manual test pass
Change-Id: Iaa8d1c9d3df36e40fafda0117234036d9451a4fa
2024-08-01 03:38:48 +00:00
Yiyi Shen
12469371b4 Merge "[Audiosharing] Not announce enable/disable when toggle main switch" into main 2024-08-01 03:05:58 +00:00
Chun-Ku Lin
1c3cc5bedd Merge "Physical keyboard related options shouldn't be searchable when invisible" into main 2024-07-31 19:09:06 +00:00
Chun-Ku Lin
767f58785a Physical keyboard related options shouldn't be searchable when invisible
Physical keyboard options category is hidden when there is no hardware
keyboard. It's related preferences are hidden in this case. Hence those
preferences shouldn't be searchable.

Bug: 351047456
Test: manually search "bounce keys", "sticky keys" and "slow keys",
they're not searchable when invisible on Accessibility page
Test: atest
Flag: com.android.settings.accessibility.fix_a11y_settings_search

Change-Id: I1eb465dd34e59d856bb1fa7c06bc253971a8c8d0
2024-07-31 18:04:55 +00:00
Treehugger Robot
e79de39723 Merge "Revert^2 "Tweak Modes layouts and use updated strings to match mocks"" into main 2024-07-31 17:35:10 +00:00
Diya Bera
bc915e7bdc Merge "Add mandatory biometric prompt to platform surfaces (4/N)" into main 2024-07-31 17:06:14 +00:00
Matías Hernández
4222bed264 Revert^2 "Tweak Modes layouts and use updated strings to match mocks"
This reverts commit 9804955ad5.

Reason for revert: Wrongly reverted; unrelated to the error

Change-Id: I94a2b05589fa80218db184e192f1c4a633ab61b0
2024-07-31 15:45:11 +00:00
ELIYAZ MOMIN
39a56459a5 Merge "Revert "Tweak Modes layouts and use updated strings to match mocks"" into main 2024-07-31 15:40:04 +00:00
Tetiana Meronyk
593f96a559 Merge "Fix toggle when no_user_switch is applied without EnforcedAdmin" into main 2024-07-31 15:11:42 +00:00
ELIYAZ MOMIN
9804955ad5 Revert "Tweak Modes layouts and use updated strings to match mocks"
This reverts commit 0359aaeb47.

Reason for revert: <Potential culprit for b/356564046  - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.>

Change-Id: I980838773078d822d20608e5975a26cf8dbed2be
2024-07-31 14:56:30 +00:00
Tetiana Meronyk
061669815a Fix toggle when no_user_switch is applied without EnforcedAdmin
If EnforcedAdmin is null, calling setDisabledByEnforcedAdmin does not disable the setting. So if this restriction was applied by a source different than admin, the toggle was still active for users to change (even non-main).

After this change, the restriction is correctly processed both when it is applied by admin or by some other source.

Bug: 356387759
Test: atest MultiUserSwitchBarControllerTest
Flag: android.multiuser.fix_disabling_of_mu_toggle_when_restriction_applied
Change-Id: I5d38e250359ccbee67ac747f1d8a0a2143f4c216
2024-07-31 13:55:10 +00:00
Matías Hernández
0b7a22210a Add new icons to the Modes icon picker
Bug: 333901673
Test: atest IconOptionsProviderImplTest
Flag: android.app.modes_ui
Change-Id: I6fa15fa12238eb9c0d1b93803010349b9092812b
2024-07-31 14:12:37 +02:00
Yiyi Shen
124a9e1ebd [Audiosharing] Not announce enable/disable when toggle main switch
Fix: 356318679
Test: atest
Flag: com.android.settingslib.flags.enable_le_audio_sharing
Change-Id: I3331f9ded48352f442712287a6b536da883fe73d
2024-07-31 18:56:33 +08:00
Matías Hernández
d21dec33d1 Merge "Fix Zen tests that were failing with modes_ui enabled" into main 2024-07-31 09:21:04 +00:00
Chaohui Wang
b7f68b4a60 Merge changes from topic "MobileNetworkSettingsSearchIndex" into main
* changes:
  Fix search for MMS Message
  Show category when search "Mobile data"
2024-07-31 09:07:20 +00:00
Matías Hernández
fa494a6d46 Merge "Tweak Modes layouts and use updated strings to match mocks" into main 2024-07-31 07:34:43 +00:00
Yiyi Shen
ec282ed60b Merge "[Audiosharing] Clean up dup codes" into main 2024-07-31 05:20:39 +00:00
Joshua Mccloskey
a2b127bbe8 Merge "Remove face/fignerprint search if not present" into main 2024-07-30 23:02:58 +00:00
Diya Bera
8f0c77bb19 Add mandatory biometric prompt to platform surfaces (4/N)
1. Enable developer options via build info
2. Enable developer options via toggle under system -> developer options

Flag: android.hardware.biometrics.flags.mandatory_biometrics
Fixes: 355500452
Test: atest BuildNumberPreferenceControllerTest
DevelopmentSettingsDashboardFragmentTest

Change-Id: Iecbe34024d287e71e235becec3ce5a2bd5c1697f
2024-07-30 20:36:31 +00:00
Joshua McCloskey
ed59922ca8 Remove face/fignerprint search if not present
Test: Verified manually with a device that if face/fingerprint are not
present they do not show up.
Fixes: 350599580
Flag: EXEMPT bugfix

Change-Id: I6a691d2985e4839336e9c08dfa6c97abe23f43f2
2024-07-30 18:14:41 +00:00
Matías Hernández
0359aaeb47 Tweak Modes layouts and use updated strings to match mocks
Bug: 333682392
Test: mostly manual, also ZenModeTriggerUpdatePreferenceControllerTest
Flag: android.app.modes_ui
Change-Id: I5bae828a55128f3cb0b07ea0ff21ca196e7564dc
2024-07-30 17:45:38 +00:00
Matías Hernández
f4d44c5500 Fix Zen tests that were failing with modes_ui enabled
Actual fixes are in ZenModesListFragmentTest (was creating somewhat unrelated preferences with the actual ZenModesBackend, and isAvailable now returns true for them) and ZenModePreferenceControllerTest (no longer available with modes_ui). But also added EnableFlags(FLAG_MODES_UI) to all tests in notification/modes that lacked it, so we don't regress before we flip the flag.

Bug: 356334282
Test: atest com.android.settings.notification
Flag: android.app.modes_ui
Change-Id: I791b52cfb3fd9adea61079b4b41e456c8b3fe7bd
2024-07-30 14:33:03 +02:00
Yiyi Shen
7b2435a01c [Audiosharing] Clean up dup codes
Bug: 305620450
Flag: com.android.settingslib.flags.enable_le_audio_sharing
Test: atest
Change-Id: Ife2bf26d78e522dc51891be633d6635883923de3
2024-07-30 15:34:09 +08:00
Chaohui Wang
7009c008f9 Fix search for MMS Message
Also display multiple results when there are multiple MMS Message on
different SIMs.

When doing indexing, we not also log sub id as part of the key.
When user clicks the result, using SpaSearchLandingActivity to do the
redirection, set arguments to the fragment.

Fix: 352245817
Flag: EXEMPT bug fix
Test: manual - search mms
Test: unit test
Change-Id: Id47a1151cb418c18f68f97e3be33dcd21c5f5102
2024-07-30 11:34:24 +08:00
Pajace Chen
ab697ce33f Merge "[Bugfix] Fix the failed test case" into main 2024-07-30 02:43:19 +00:00
pajacechen
a9eb7c90dd [Bugfix] Fix the failed test case
Fix the failed test case that missed from ag/28495857

Test: Unit Test
Fix: 348563863
Fix: 356152111
Flag: EXEMPT bug fix
Change-Id: I852da018c6967c6ca13e3aea72290a2d6be8bfdd
2024-07-30 10:10:35 +08:00
Matías Hernández
149bd0a5a4 Merge "Improve lifecycle of ZenModeFragment & friends" into main 2024-07-29 20:28:55 +00:00
Matías Hernández
b8b897e552 Improve lifecycle of ZenModeFragment & friends
* Don't keep Settings observers longer than start-stop.
* Only call updateState() once on controllers during create->start->resume.
* Remove some duplicate controller update methods from ZenModesFragmentBase (we can directly call DashboardFragment's).
* Don't update controllers if unrelated modes were changed.
* Extract ZenSettingsObserver for use in the link tile later.
* Add tests.

Fixes: 353946788
Test: atest com.android.settings.notification.modes
Flag: android.app.modes_ui
Change-Id: I64b51714d699b5c3a592a76fcb615d2999998829
2024-07-29 20:10:03 +02:00
Alina Zaidi
441a202444 Merge "[dev_option] Update 'Desktop mode on secondary toggle' to be 'Freeform windows on secondary diplay'." into main 2024-07-29 17:49:54 +00:00
Diya Bera
c5e36291ab Merge "Hide background when identity check auth is requested" into main 2024-07-29 16:57:35 +00:00
Matías Hernández
e19b8743c8 Merge changes from topic "fix-weird-animation" into main
* changes:
  Fix jiggle when opening custom manual modes
  Allow turning off currently active modes
2024-07-26 20:58:15 +00:00
Chun-Ku Lin
75db151f96 Merge "[Flag cleanup] edit_shortcuts_in_full_screen is always on now" into main 2024-07-26 17:46:52 +00:00
Matías Hernández
e8306014f0 Fix jiggle when opening custom manual modes
Looks like setting Preference visibility in updateState() is too late to avoid an animation, and isAvailable() should be used instead. This forces us to split ZenModeSetTriggerLinkPreferenceController (which handled the category and its two children) into separate controllers for the category and each child. Although untangling this code was annoying, the result is arguably cleaner, since the two child preferences deal with different things.

Fixes: 355623101
Test: atest com.android.settings.notification.modes
Flag: android.app.modes_ui
Change-Id: I5fb1b3cbe424973b852f820ecf948491c050421f
2024-07-26 17:44:53 +00:00
Treehugger Robot
c9433c2d52 Merge "Sync settingslib/datastore library" into main 2024-07-26 17:36:14 +00:00
Alina Zaidi
e85695f88c [dev_option] Update 'Desktop mode on secondary toggle' to be
'Freeform windows on secondary diplay'.

Make sure the toggles enables freeform support on devices. This remove
reliance on 'Enable freeform windows suppport' toggle when using this
toggle.

Also update strings for all toggles to just use term 'freeform windows'
instead of 'desktop mode' or 'freeform windowing experiences'.

Two toggles have the same name 'enable freeform windows', but users will
see only one of them at a time.

Test: Added new tests
Bug: 348193756
Bug: 348186127
Flag: EXEMPT minor change
Change-Id: Ic4528618e6902d084c58a6b5ddeb4b92d63386d6
2024-07-26 13:33:23 +00:00
Matías Hernández
69ce43462e Allow turning off currently active modes
Even if they don't allow manual invocation. The button will disappear afterwards -- maybe not perfect but good enough.

Fixes: 355613076
Test: atest ZenModeButtonPreferenceControllerTest
Flag: android.app.modes_ui
Change-Id: I36cc96f7da78266be1a03e947304fc8e600899de
2024-07-26 14:47:07 +02:00
Jacky Wang
5164cd8cbd Sync settingslib/datastore library
Bug: 325144964
Test: atest SettingsRoboTests:BatteryOptimizeUtilsTest
Flag: EXEMPT sync library source code
Change-Id: I3d980f1d36e9fce7633df23107fae612bc028b5e
2024-07-26 19:40:50 +08:00
Chun-Ku Lin
919019ca56 [Flag cleanup] edit_shortcuts_in_full_screen is always on now
- Cleaned up the code that won't be executed when the flag is on
- Remove unused resources

Bug: 300302098
Test: Manually verify the user can change the shortcut type, and the
changes are saved
Test: atest com.android.settings.accessibility
Flag: EXEMPT removing com.android.settings.accessibility.edit_shortcuts_in_full_screen

Change-Id: I1e32b724ca3da909feda55e20fb1d51dc4680c09
2024-07-25 22:49:02 +00:00