Commit Graph

123 Commits

Author SHA1 Message Date
Tetiana Meronyk
1da65db12f Update search index in UserSettings based on allowed user types
If USER_TYPE_FULL_RESTRICTED is disallowed, addUserPreference is renamed to only mention user. But search results still state default name "Add user or profile". This change updates this entry in the search index.

Bug: 365899560
Test: atest UserSettingsTest#testGetRawDataToIndex_returnAllIndexablePreferences && atest UserSettingsTest#testGetRawDataToIndex_addRestrictedProfileAllowed_addUserTitleIsCorrect && atest UserSettingsTest#testGetRawDataToIndex_addRestrictedProfileDisallowed_addUserTitleIsCorrect
Flag: EXEMPT bugfix_only
Change-Id: I3c26180225491e4916141a3fca9d2e7ab36e8cfc
2024-10-03 12:02:44 +00:00
Tetiana Meronyk
56446fa3b8 Read new value of admin status on UserCapabilities update
Before multiple admins were introduced, only main user could be an admin and that status was not modifiable. But now it can be updated for non-main admins of the device. So it is important to refresh this value to keep it up to date.

Bug: 359466920
Test: atest UserCapabilitiesTest
Flag: EXEMPT bugfix_only
Change-Id: If39ad24b10daf6886f402926b3bab23b50201c98
2024-08-14 15:44:35 +00:00
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
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
Tetiana Meronyk
25e1b4d88b Show disabled add actions in COPE mode
Before this change these actions were hidden.

After this change, they are displayed but disabled which makes it more intuitive.

Bug: 336762423
Test: atest UserSettingsTest && atest UserDetailsSettingsTest
Flag: android.multiuser.new_multiuser_settings_ux
Change-Id: Ie07816b7d3817d12e78e1ec2692fcddea9328933
2024-06-24 21:28:57 +00:00
Tetiana Meronyk
0f311e1195 Add handling of admin enforced restrictions in Users Settings
Before, when the restrictions were applied, the preferences that were restricted were hidden.

After this change, if admin applies a restriction, the preference is displayed as disabled and Policy Transparency Dialog is displayed

Bug: 338226475
Test: atest UserSettingsTest && atest UserDetailsSettingsTest
Flag: android.multiuser.new_multiuser_settings_ux
Change-Id: I1b5aeeeec7accde278ff3e46ea3d64c91d8400db
2024-06-24 20:22:16 +00:00
Tetiana Meronyk
caef61b5eb Refactor multiuser toggle to control user switch feature
The  name  "Allow multiple users" is too ambiguous. It sounds like by toggling it off, the feature is completely disabled. In fact, it only hides user switcher. In conjunction with hiding other users from the list, it makes it appear as all the users get deleted when the toggle is off. On the contrary, users might be running in background when the toggle is off.

After this change, the new name better represents the intention behind this toggle, as well as makes the UI more intuitive. The users are not being hidden anymore. But switching preference gets disabled.

Since the toggle can only be enabled or disabled by owner (after this refactoring), it means that Owner has full control over multiuser settings and is able to perform actions on users without having to enable the toggle.

Bug: 336762423
Test: atest UserSettingsTest && atest UserDetailsSettingsTest
Flag: android.multiuser.new_multiuser_settings_ux
Change-Id: Id9d507039b58d3df66fe78710409716fd4816890
2024-06-24 18:58:01 +00:00
Tetiana Meronyk
c502ee4540 Fix tests in UserDetailsSettingsTest and TimeoutToDockUserPreferenceControllerTest
Bug: 313530297
Test: atest UserDetailsSettingsTest && atest TimeoutToDockUserPreferenceControllerTest
Flag: EXEMPT fixing tests that were failing before
Change-Id: Ic4bd257aa26c6627d271acd1f22b59855bbddb20
2024-06-19 21:09:55 +00:00
Fan Wu
595ed9645e Reenable all tests for SettingsRoboTests
Updating tests in development/ due to ag/27774179
Temporarily ignore tests in UserDetailsSettingsTest due to ag/27785999

Bug: 347125800

Test: atest
Change-Id: Iaed79c3fde80f5b2c31754bef4a93546813444a8
2024-06-14 07:27:31 +00:00
Tetiana Meronyk
dc0c58b427 Make Multiuser toggle disabled for all non-main users
Only let main user (Owner) change state of the toggle
Bug: 336764498
Test: atest MultiUserSwitchBarControllerTest

Change-Id: Ib694d1cb4685764c64633efc090765b470a0a015
2024-05-01 17:21:14 +00:00
Tetiana Meronyk
177e852ea9 Rename Multiple users page to Users
Ensure it is still searchable by "multiple users" prompt.

Bug: 336764972
Test: manual
Change-Id: I1126bfe601b75532882d6158d82be1a3b566aefc
2024-04-30 18:48:40 +00:00
ykhung
9ccd8d8da2 Clean up the legacy anomaly detection mechanism in the Settings
Clean up the legacy anomaly detection mechanism in the Settings, which is implemented in the 2017-2018. The will be replaced by the new anomaly detection mechanism.

Bug: n/a
Test: make -j64 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.fuelgauge"
Change-Id: I12ee6c8b3cbdb5073e4d46f18b90f8de228be8a8
2024-01-16 15:05:29 +08:00
Tetiana Meronyk
094dfcc5d8 Merge "Fix tests in TimeoutToDockUserPreferenceControllerTest" into main 2023-11-30 11:51:26 +00:00
Tetiana Meronyk
b1ecd3bba8 Fix tests in TimeoutToDockUserPreferenceControllerTest
Bug: 313530297
Test: atest TimeoutToDockUserPreferenceControllerTest
Change-Id: I3a67744fb7652f5815ab1ba1ba88e13f5436e127
2023-11-29 14:10:07 +00:00
Tetiana Meronyk
bbbdc8423c Fix tests in UserSettingsTest
Bug: 313666476
Test: atest UserSettingsTest
Change-Id: I74c5e9f5e88abb57f758b1d9afe04e07240e2dd2
2023-11-29 10:22:02 +00:00
FanWu
021e3492e7 Ignore failing tests under com.android.settings.users
Bug: 313530297

Test: atest
Change-Id: I946b2276b8be8f1225263e9716a757c770a80ea0
2023-11-28 10:08:38 +08:00
Edgar Wang
6024953f02 Remove injecting multi-user settings into settings itself
- It can improve performance because we use less injected item

Bug: 242152448
Test: robotest
Change-Id: I892e1ac9c3f8297c489fc1fec934e9f5f2e2f5e9
2023-11-21 21:05:54 +08:00
Chaohui Wang
e752f7214b Remove unused SwitchBar
Only used in tests, so also migrate the tests.

Bug: 306658346
Test: manual - on bluetooth
Test: m RunSettingsRoboTests
Change-Id: Id2b010c1d9c32abe21dcc8765e9446fc4f7a5b25
2023-10-25 12:17:49 +08:00
Edgar Wang
292f407071 Fix robo test case failed
Bug: 300134365
Test: robotest
Change-Id: I144fbbc962a479c97312cee1645c5a3d70351542
2023-09-26 15:49:40 +08:00
Eric Rahm
802b922593 Revert "Test Fix SettingRobolectricTest Fail"
This reverts commit 818f77cd1f.

Reason for revert: Underlying issue fixed in ag/23454315.

Bug: b/275023433
Test: atest SettingsGlobalRoboTests

Change-Id: I1af272efd00b3c5bd35310512f5712d5d1c7d834
2023-09-11 13:38:36 +00:00
Tetiana Meronyk
94b6aa45f7 Merge "Revert "Disable multiuser toggle when more than 1 user is created"" into main 2023-09-08 11:35:30 +00:00
Tetiana Meronyk
8489ae99dc Revert "Disable multiuser toggle when more than 1 user is created"
Revert submission 24420426-multi_toggle

Reason for revert: This change needs to be done along with some other UI changes to avoid confusion

Reverted changes: /q/submissionid:24420426-multi_toggle

Change-Id: Ife2e03d0090fefcb4c1fa53dd007336759eb1bc7
2023-09-07 15:50:09 +00:00
Rex Hoffman
3c961e1c0e Setup external/robolectric for SettingsRoboTests
Current failing tests: ab/I64100010182936387
Had to Ignore some of com.android.settings.accessibility tests, which will be fixed separately

Bug: 261728063
Test: atest SettingsRoboTests -- --test-arg com.android.tradefed.testtype.IsolatedHostTest:java-flags:-XX:CompressedClassSpaceSize=3g

Change-Id: I4a0cb992db924936826e0c9808accc78dddb5f30
2023-08-17 22:33:20 +00:00
Tetiana Meronyk
7968047fc5 Disable multiuser toggle when more than 1 user is created
It makes more sense to have the toggle as on permanently as long as there are other users on the device. Otherwise if we toggle off "Allow multiple users", other users get hidden. Also with current behaviour the any admin can switch the toggle and this can block any other user, including main, from being able to use the device.

Bug: 295183792
Test: atest MultiUserSwitchBarControllerTest && UserSettingsTest
Change-Id: I8cb0671d780f45c17a9bb7c9a9d3b108128ead9d
2023-08-15 15:59:14 +00:00
Tetiana Meronyk
b88bad678d Fix "Allow guest to use telephony" toggle not updating its value
Bug: 283004333
Test: atest GuestTelephonyPreferenceControllerTest
Change-Id: I2f13a989bbe6a925c0e88350dbc215f6f188fe17
2023-07-04 15:32:14 +00:00
Vincent Wang
818f77cd1f Test Fix SettingRobolectricTest Fail
Bug: b/275023433
Test: NA
Change-Id: If2dcb8f6c196327129ccc9375b190e394c994efa
2023-05-09 06:26:39 +00:00
Darrell Shi
a86614db74 Hide timeout to user0 pref when switching blocked.
Do not show the "timeout to admin user" settings preference when user
switching is blocked on the current user, e.g. in demo mode.

Test: atest SettingsRoboTests:TimeoutToDockUserPreferenceControllerTest
Bug: 255277938
Change-Id: Ibd0944c69254000a453f477eb72a0ba5832e9793
2023-03-31 22:14:35 +00:00
Victor Truong
f3c9a09cac Replace SystemUser checks with MainUser.
Bug: 257333623
Test: atest CommunalPreferenceControllerTest, atest UtilsTest, atest
TimeoutToDockUserPreferenceControllerTest

Change-Id: I5d2a818f9f35968ced1db7f9fa4b79432a502023
2023-02-01 15:16:48 -05:00
Tetiana Meronyk
2a06ccdfd5 Merge "Add UI metrics for granting admin rights from User Switcher" 2023-01-19 23:00:11 +00:00
Tetiana Meronyk
ff36d54d2c Add UI metrics for granting admin rights from User Switcher
Bug: 260697326
Test: manual
Change-Id: Ia4f3053bb84c5daaedb9a471b8a8f5dbaad66dba
2023-01-18 17:46:09 +00:00
Tetiana Meronyk
1f824d5c18 Add restriction to prevent user from being made an admin
Bug: 261700461
Test: croot && make RunSettingsRoboTests -j40 ROBOTEST_FILTER="com.android.settings.users.UserDetailsSettingsTest"
Change-Id: Ie518a17ae330e9b0864e5179dff7eb1d03f3937b
2023-01-18 00:09:13 +00:00
Tetiana Meronyk
b389e9d551 Allow creating admin users when 'config_enableMultipleAdmins' property is enabled
Bug: 262371063
Test: manual
Change-Id: I465901a8d689239d9dda252c5d6f37ec0853b317
2022-12-28 16:46:33 +00:00
Tetiana Meronyk
e5acef9034 Add UI for multiple admins on Headless
In a series of CLs under topic add_ui_for_hsum_admins UI and functionality for allowing multiple admins on HSUM build is added. In User settings and User switcher when creating a new user there is a new dialog prompting to choose admin status of the user to be created. In User details view there is a toggle that is visible to admin users that allows to modify admin status of existing users. This toggle is only applicable to full users that are not supervised, guests or a main device user.

Bug: 252790451
Test: croot && make RunSettingsRoboTests -j40 ROBOTEST_FILTER="com.android.settings.users.UserDetailsSettingsTest"
Change-Id: I447dc168be30aa614aeb3f8b71ad14a7223fd7c1
2022-12-21 11:02:39 +00:00
Anna Bauza
225c81df42 add settings log to remove and switch user
Bug: 260730616
Bug: 260733849

Test: croot && make RunSettingsRoboTests -j40
Change-Id: I870d6f53f377f293adb54c86d16cccf1bacac6a9
2022-12-20 18:36:18 +00:00
William Xiao
71ee3c3a5d Merge "Default to timing out to dock user in 1 minute" into tm-qpr-dev am: 0be191aeb7 am: 26343e8926
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20683709

Change-Id: I63dedfa49ec3d7c64c156d6a5da33772abfcc4b5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-12-16 00:04:15 +00:00
William Xiao
ea655e9695 Default to timing out to dock user in 1 minute
Previous default was to disable the feature.

Bug: 260123067
Test: verified locally on device that the default is 1 minute for a new
user

Change-Id: I8f577d62b729eb1c1a0579a7b4eb6b50f7f7f0d8
2022-12-12 18:36:30 -08:00
Nikhil Kumar
b61949c841 Hide remove user option for main user in multi user settings
Added isMain() user check in UserDetailsSettings.initialize and
UserDetailsSettings.canDeleteUser to hide and restrict
delete user option for main user in multi user settings.

Added unit tests for the same.

Bug: 260200162

Test: Manual test on headless to check remove user option
is not visible for the main user.

Test: Run robo tests with this command:
make -j64 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.users.UserDetailsSettingsTest"

Change-Id: Ia455611a3d0b1e0945f61f00658425b7bf6c2dae
2022-11-25 17:46:20 +00:00
Adam Bookatz
e5e232428d Introduce concept of DockUser
Dreams and docking often refers to "user zero" or "system user".
But more generally, the special user for dreams or switching-to-on-docking
need not be user 0, and in fact won't be in certain modes. So this needs updating.

Test: the files mentioned in the topic
Bug: 257333623
Change-Id: If068aa79a770bed4abf3f7ca1859a95cd1eb4ecd
Merged-In: If068aa79a770bed4abf3f7ca1859a95cd1eb4ecd
2022-11-14 19:19:21 +00:00
TreeHugger Robot
2c45688a13 Merge "Introduce concept of DockUser" 2022-11-14 15:00:56 +00:00
Adam Bookatz
81e5f3730c Introduce concept of DockUser
Dreams and docking often refers to "user zero" or "system user".
But more generally, the special user for dreams or switching-to-on-docking
need not be user 0, and in fact won't be in certain modes. So this needs updating.

Test: the files mentioned in the topic
Bug: 257333623
Change-Id: If068aa79a770bed4abf3f7ca1859a95cd1eb4ecd
2022-11-10 16:14:22 -08:00
Tetiana Meronyk
19fcb87e39 Hide "Add user" button for secondary user
Bug: 258447375
Test: croot && make RunSettingsRoboTests -j40 ROBOTEST_FILTER="com.android.settings.users.UserSettingsTest" && make RunSettingsRoboTests -j40 ROBOTEST_FILTER="com.android.settings.users.MultiUserSwitchBarControllerTest"

Change-Id: I5f0fd25fb9f710f7311275b2a840663f2bf3eeab
2022-11-09 19:35:32 +00:00
Tetiana Meronyk
3ade4a3ad7 Disable toggle on managed device with "Disallow add user" or "Disallow switch user"
Bug: 244279615
Test: croot && make RunSettingsRoboTests -j40 ROBOTEST_FILTER="com.android.settings.users.MultiUserSwitchBarControllerTest"
Change-Id: I3e89c8fac1828b4c9bb1c7df08687684981bda11
2022-10-24 22:06:57 +00:00
Jackson Michael
898421bd0c Adding the sections "Allow multiple users" and "Delete guest activity" on the search result
Also added new keywords strings for the both items.

Bug: 245261104
Test: Manual test and unit test
Change-Id: I3ddc1204c6dbdcd6a82ffaa55f4ca7f4bcb3783d
2022-10-13 12:31:03 +00:00
Nikhil Kumar
0661a7640f Enable Name and Avatar change without turning on multi-user
Primary user will be displayed in user list even when the
multi-user settings is disabled.
This will allow users to change the name and avatar of
primary user without enabling the multi-user feature.

Test: croot && make RunSettingsRoboTests -j40
ROBOTEST_FILTER="com.android.settings.users.UserSettingsTest"

Bug: 246732754
Change-Id: I4eb5aaf97630135960410bea7cdddc52b5848a1e
2022-09-21 14:07:42 +01:00
Anna Bauza
ab64c52f7d Merge "Fix "Turn on phone calls" for guest user" 2022-06-09 08:46:38 +00:00
Avinash Vadlamudi
d23aba7042 Fix the Ephemeral guest mode UI bugs
- Update the user-icon size to 40dp to align with add-icon size
- Remove the guestInfo preference and add the infoText as the summary for the guestExit preference and fix UserSettingsTest

Bug: 231592331
Test: Manual test, atest SettingsRoboTests
Change-Id: I2591bc19a7b2381d1842f0b28ab8fa19c15c19b8
(cherry picked from commit 9cf1d188a2)
2022-06-03 10:58:54 +00:00
Avinash Vadlamudi
9cf1d188a2 Fix the Ephemeral guest mode UI bugs
- Update the user-icon size to 40dp to align with add-icon size
- Remove the guestInfo preference and add the infoText as the summary for the guestExit preference and fix UserSettingsTest

Bug: 231592331
Test: Manual test, atest SettingsRoboTests
Change-Id: I2591bc19a7b2381d1842f0b28ab8fa19c15c19b8
2022-06-02 15:38:46 +00:00
Anna Bauza
935b735fb4 Fix "Turn on phone calls" for guest user
Move "Turn on phone calls" from guest detail user screen to user screen.
Optimisation: Applying restrictions to default guest user has been moved
to UserManagerService -> setDefaultGuestRestrictions.

Following UX there is no need for confirmation dialog.

Bug: 191483069
Test: make RunSettingsRoboTests -j128 ROBOTEST_FILTER="com.android.settings.users.GuestTelephonyPreferenceControllerTest"
       make RunSettingsRoboTests -j128 ROBOTEST_FILTER="com.android.settings.users.UserSettingsTest"
Change-Id: Id7391d3f85954ea7f9c94791f24174105ec8073e
2022-05-28 07:18:40 +00:00
Kedar Chitnis
a1fbad7dd8 Guest mode UX flow updates to user settings
- Add option in user settings to enable/disable ephemeral
  mode for guest user
- Update user settings to show exit guest and reset guest preferences
- Update user settings to show guest related preferences grouped together

Bug: 214031645, 175795666
Screenshots: go/ephemeral-guest-b-214031645-ux
Test: Manual test on sunfish, atest SystemUITests, atest SettingsRoboTests

Relands ag/16544951 after fixing post submit issues

Revert "Revert "Guest mode UX flow updates to user settings""

This reverts commit ed45e8c56a.

Change-Id: I54583f9021171ae523ff40d4f63835f1cb486e35
Merged-In: I54583f9021171ae523ff40d4f63835f1cb486e35
2022-04-14 09:37:57 +00:00
Kedar Chitnis
fa49a4f111 Guest mode UX flow updates to user settings
- Add option in user settings to enable/disable ephemeral
  mode for guest user
- Update user settings to show exit guest and reset guest preferences
- Update user settings to show guest related preferences grouped together

Bug: 214031645, 175795666
Screenshots: go/ephemeral-guest-b-214031645-ux
Test: Manual test on sunfish, atest SystemUITests, atest SettingsRoboTests

Relands ag/16544951 after fixing post submit issues

Revert "Revert "Guest mode UX flow updates to user settings""

This reverts commit ed45e8c56a.

Change-Id: I54583f9021171ae523ff40d4f63835f1cb486e35
2022-04-04 05:28:21 +00:00