Commit Graph

418 Commits

Author SHA1 Message Date
Edgar Wang
6cb3a5ff2b Merge changes from topic "presubmit-am-5513fca9a4904e75827e4e4077587542" into tm-mainline-prod am: b6582aa68c
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/17614846

Change-Id: Ib7fbe47a5f44e47b5c11ca4e98f22ca62bfc00ab
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-04-13 05:01:16 +00:00
Edgar Wang
90e095dbe3 Fix LaunchAnyWhere in AppRestrictionsFragment
If the intent's package equals to the app's package, this intent
will be allowed to startActivityForResult.
But this check is unsafe, because if the component of this intent
is set, the package field will just be ignored. So if we set the
component to any activity we like and set package to the app's
package, it will pass the assertSafeToStartCustomActivity check
and now we can launch anywhere.

Bug: 223578534
Test: robotest and manual verify
Change-Id: I40496105bae313fe5cff2a36dfe329c1e2b5bbe4
2022-04-06 17:51:07 +08: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
Anna Bauza
ee23152051 Fix "Remove Guest" option shows "Reset Guest" dialog
If the guest user was not auto created, removing the user from settings message was wrongly worded. Small refactor to reuse the same wording in different modules has been done.

Bug: 225314166
Test: manual
Change-Id: Ia1871efc6aeeb2d3604c2fc4fd98a2a3a500953b
2022-03-30 08:20:04 +00:00
Chaohui Wang
9d8603568d Fix "Automatically sync app data" button state not changed
This issue is caused by mPreference is null.
(Not recovered when the fragment is recreated after configuration change.)

Mimic the PreferenceDialogFragmentCompat.getPreference() in AndroidX to
solve this issue.
https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:preference/preference/src/main/java/androidx/preference/PreferenceDialogFragmentCompat.java;l=176;drc=ca9feb3b73769089afbfd36b4d4a3d91239f9cd5

Ideally in the long term, we could use PreferenceDialogFragmentCompat
instead.

Fix: 218754949
Test: robotest & manual
Change-Id: I7fc8dd3b771aa45c91f915e25c8cc6c6afdd8d63
2022-03-29 12:32:23 +08:00
Yasin Kilicdere
b724929454 Merge "Singularization of duplicated multi user strings." into tm-dev 2022-03-24 12:03:29 +00:00
Yasin Kilicdere
4564bce03c Singularization of duplicated multi user strings.
Many multi-user strings were duplicated between SettingsLib, Settings,
System UI and Car projects. This CL removes those duplicates.

List of singularized strings: "Guest", "Remove guest", "Add user",
"Remove guest?", "Too many incorrect attempts...."

Bug: 191386817
Test: NA
Change-Id: I8d9629a1a9628cab9f049df84f706bd04ee75cc2
2022-03-23 19:20:34 +00:00
Matt Pietal
296b904bf1 Update multiple users strings
To match latest guidance

Bug: 219078700
Test: manual
Change-Id: Ieef884e046e1e1798cc98a553bcd902c1374d069
2022-03-23 13:39:42 -04:00
Kholoud Mohamed
51043a1513 Merge "RESTRICT AUTOMERGE Refactor device policy resource APIs to a separate class" into tm-dev 2022-03-19 06:30:10 +00: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
Oli Lan
5f56a273c4 Reduce gap above user list in multiuser settings.
This fixes a large gap above the user list, which occurred because
a PreferenceCategory was used for this with a blank title.

Bug: 224659273
Test: Install and inspect
Change-Id: I82c4491cc6a5111c6517b2845b44632e0859e1b6
2022-03-16 14:57:00 +00:00
Yasin Kilicdere
161697beef Merge "Update UI to show feedback while creating Guest from Settings." into tm-dev 2022-03-08 17:41:16 +00:00
Matt Pietal
b8c30c7c5d Add user button UX update
Visually align all add user/guest icons between settings and
systemui. Both areas may tint and size the icons slightly differently.

Fixes: 219078700
Test: visual, use the multiple users settings page
Change-Id: Ic88d5b2197f402f130d6cfeb94bdb2bb1b6aa58c
2022-03-07 13:37:20 -05:00
Yasin Kilicdere
4e31442a72 Update UI to show feedback while creating Guest from Settings.
Make UM.createGuest call async and show "Creating new guest" dialog during.

Bug: 219741250
Test: Manual
Change-Id: I7e3497fef283a4c13719a12b962866f88e9e5a50
2022-03-04 18:24:56 +00:00
Yasin Kilicdere
3fc4642ab4 Fix Guest string was not translated in UMS.userWithName()
This CL reverts the changes made in ag/14282598 since the issue is
solved from the source and removes 'String name' parameter from
UM.createGuest() calls.

Bug: 185309160
Test: atest UserDetailsSettingsTest
Change-Id: I92acad938d79e21b45af99cc76ff411022b61f1b
Merged-In: I92acad938d79e21b45af99cc76ff411022b61f1b
(cherry picked from commit ae871ba823)
2022-03-03 18:32:48 +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
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
Yasin Kilicdere
efede0db18 Merge "Set default name when creating a supervised user in fallback activity." 2022-02-03 19:35:14 +00:00
Darrell Shi
547416749e Settings for timeout to user 0 when docked.
Test: atest SettingsRoboTests:TimeoutToUserZeroSettingsTest
Test: atest SettingsRoboTests:TimeoutToUserZeroPreferenceControllerTest
Test: manually on device, video: http://shortn/_elZS1CdDtE
Bug: 213906356
Change-Id: I519345cdf44eaf452e092adee78ccf9d79130d33
2022-02-02 06:31:51 +00:00
Yasin Kilicdere
a6db6c28a4 Set default name when creating a supervised user in fallback activity.
Fallback activity for supervised user creation was creating a supervised user
without a name (null), now creates it with a default name.
Also put an explanation on the activity stating it's just a placeholder.

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

Change-Id: I8090fde38155817ac2b4f88271abe8a0ad1ce747
2022-01-28 18:33:15 +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
Yasin Kilicdere
031104f18e Merge "Make sure activity for adding a supervised user is opened full screen." 2022-01-21 18:16:48 +00:00
Adam Bookatz
52bd463079 Merge "Disable AppCopyFragment" 2022-01-21 17:33:48 +00:00
TreeHugger Robot
5a7d596259 Merge "Replaced removeUserOrSetEphemeral by removeUserWhenPossible" 2022-01-19 02:59:45 +00:00
Mayank Garg
d228248738 Replaced removeUserOrSetEphemeral by removeUserWhenPossible
Bug: 199446770
Test: m Settings
Change-Id: I1c8cfdbf395a7be59946cf0dad510ec1aee320d9
2022-01-14 16:03:56 -08:00
Yasin Kilicdere
d9281c887a Make sure activity for adding a supervised user is opened full screen.
Add supervised user activity only covers the right hand side of the
screen in large screen devices. This CL makes sure it is always
started from Settings with correct flags to be shown full-screen.

Bug: 214401383
Bug: 205101183
Bug: 199868785
Test: croot && make RunSettingsRoboTests -j40 ROBOTEST_FILTER="com.android.settings.users.UserSettingsTest"
Change-Id: If81e0cce91a5295eb2b93b12f68b70fd1240c953
2022-01-13 18:46:19 +00:00
Oli Lan
8aec687b29 Add config flag in Settings to control whether restricted profiles are offered.
This adds a config resource to specify whether restricted profiles
should be offered as an option when a new user is added. This replaces
the previous check if a device is voice capable, and will be defaulted
to false.

Bug: 202854971
Test: make RunSettingsRoboTests -j40 ROBOTEST_FILTER="com.android.settings.users.UserCapabilitiesTest"
Change-Id: If090fe8d902d6521acfde8c26e801aa4fc4f5ff4
2022-01-11 12:50:15 +00:00
Yasin Kilicdere
7eeb727614 Merge "Add logging for settings entrypoint to add supervised user." 2022-01-07 20:58:14 +00:00
Yasin Kilicdere
3a0ebebac4 Add logging for settings entrypoint to add supervised user.
Bug: 213442701
Test: croot && make RunSettingsRoboTests -j40 ROBOTEST_FILTER="com.android.settings.users.UserSettingsTest"
Change-Id: Ie6110b0ef5c16c9f83e3d939f78f21f003e55e35
2022-01-06 23:21:59 +00:00
Edgar Wang
359512cd95 Fix bypass CALL_PRIVILEGED permission in AppRestrictionsFragment
In onReceive of AppRestrictionsFragment.java, there is a possible way to
start a phone call without permissions due to a confused deputy.
This could lead to local escalation of privilege with no additional
execution privileges needed.

We should not allow the restrictionsIntent to startActivity simply
because it resolves to multiple activities.
Instead, we should call resolveActivity and check the result's package
name is same as current package name, then it is safe to startActivity.

Bug: 200688991
Test: manual verify
Change-Id: Iaa2d3a9497c3266babe0789961befc9776a4db7a
2022-01-07 00:07:16 +08:00
Michael Groover
d1f76eea72 Merge "Add unaudited exported flag to exposed runtime receivers" 2022-01-03 17:35:02 +00:00
Yasin Kilicdere
cc1d210fd0 Create a simple fallback activity for supervised user creation
Create a simple fallback activity to be started if no other activity could be
resolved when Add supervised user option is tapped in Multi User settings.

Bug: 207495450
Test: croot && make RunSettingsRoboTests -j40 ROBOTEST_FILTER="com.android.settings.users.UserSettingsTest"
Change-Id: I850a2798567787c2494c75aa5fa451ddf373410d
2021-12-14 15:39:42 +00:00
Yasin Kilicdere
2a37149ec5 Add settings entrypoint to add a supervised user
Bug: 205101183
Bug: 199868785
Test: croot && make RunSettingsRoboTests -j40 ROBOTEST_FILTER="com.android.settings.users.UserSettingsTest"
Change-Id: Ie69786c81ec938f4c4108d7fc9c0874776331865
2021-12-14 14:47:53 +00:00
Michael Groover
911f7e7aa9 Add unaudited exported flag to exposed runtime receivers
Android T allows apps to declare a runtime receiver as not exported
by invoking registerReceiver with a new RECEIVER_NOT_EXPORTED flag;
receivers registered with this flag will only receive broadcasts from
the platform and the app itself. However to ensure developers can
properly protect their receivers, all apps targeting T or later
registering a receiver for non-system broadcasts must specify either
the exported or not exported flag when invoking #registerReceiver;
if one of these flags is not provided, the platform will throw a
SecurityException. This commit updates all the exposed receivers
with a new RECEIVER_EXPORTED_UNAUDITED flag to maintain the existing
behavior of exporting the receiver while also flagging the receiver
for audit before the T release.

Bug: 161145287
Test: Build
Change-Id: Ie97372efebd8258d9a4c503771d55109a85e6ae9
2021-12-09 20:34:02 -08:00
Adam Bookatz
cd429e74db Merge "Use UM.canAddMoreUsers and UM.isUserTypeEnabled" 2021-11-29 21:00:48 +00:00
Adam Bookatz
8ca17560e5 Use UM.canAddMoreUsers and UM.isUserTypeEnabled
Settings shouldn't allow creating users if the type is diabled, and it
shouldn't allow creating more of a particular user type if no more can
be created (even if more can be created of other user types).
Previously, Settings didn't take into account the user type when
querying whether more users could be created.

Bug: 192577100
Test: com.android.settings.users.UserSettingsTest
Change-Id: I065478fd14779f528be4edce8ae215391a752ef4
2021-11-23 14:55:28 -08:00
Adam Bookatz
45650159ce Merge "Multiuser perfetto metric: Settings tracepoints" 2021-11-11 17:10:42 +00:00
Adam Bookatz
c2efde5fb0 Multiuser perfetto metric: Settings tracepoints
Add tracepoints in Settings for user switches and creation, for the
primary purpose of performance metrics in trace_processor.

Bug: 192001071
Test: manual
Change-Id: I1ecaccdaba3b14c42a45fefeb9b5568f7c7d6bf6
2021-11-08 18:00:48 -08:00
Jason Chiu
7f6b9e26c9 Merge changes from topic "slice-highlight" into sc-v2-dev am: 6821b6be32 am: 026b1b5df6
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/16151654

Change-Id: If46903bb26371ea90075d1c6cc063af4d10a88d4
2021-11-02 02:43:42 +00:00
Jason Chiu
2989c50a23 Add highlight menu keys for all toggle pref controllers and custom slices
Bug: 204695404
Test: manual, robotest build pass, unit
Change-Id: Iad2e28ada8ddb766ffa7eff2c8dc581250cbd6f8
2021-11-01 15:00:18 +08:00
Adam Bookatz
244a1c8471 Disable AppCopyFragment
Test: manual confirmation
Change-Id: Ifc2a879de64e152584cfeab2bc729463e3d5314d
2021-08-27 11:54:30 -07:00
Adam Bookatz
64c668e7b5 Easy app-installing for Guest users
Allows an admin user to selectively install packages into a Guest user
by displaying a list of available packages that are installed in the
admin, but not in the Guest, and letting the admin choose to copy those
apps to the Guest.

Test: atest SettingsLibTests:com.android.settingslib.users.AppCopyingHelperTest

Test: Manual: install some apps in user 0, create a guest, uninstall
some system apps from it. Now, open this panel. Request some of those
apps be installed in the Guest and verify it worked.

Bug: 193281439

Change-Id: I4e6874a4ee93cd7bba96e1f6c8d04ed95873c1a2
2021-08-10 19:56:05 -07:00
Peter Kalauskas
b264d3a9af Merge "Fix: change owner name when account setup" into sc-dev am: c9076d3d36 am: a7f2f06bd4
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/15377999

Change-Id: I348926ec96c0feea6ae941f6e7bf6aef4fd231ae
2021-07-26 15:23:19 +00:00
Adam Bookatz
7ae8801fba Fix: change owner name when account setup
When the device is setup with an account the
owner's user name should be updated. This was broken due to
ag/14056085, so we fix it here.

Test: manual (set up new device and make sure name is changed)
Bug: 194510551
Change-Id: Ide5bc525eba17c78f457c2baa131d7cefd4c15dd
2021-07-23 23:50:54 +00:00
Rajeev Kumar
e3ec77a405 Merge "Make use of config for auto-created guest users" into sc-dev am: f11fdb3e50 am: 811cc971ce
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/14988090

Change-Id: Idfb492057728e4613dc244d38baf113fff99ac9f
2021-06-25 03:46:49 +00:00
Peter Kalauskas
8d37a2bb85 Make use of config for auto-created guest users
If frameworks config config_guestUserAutoCreated=true, then Settings
will:

 - Create a new guest user any time the current guest user is removed

 - Show "Guest" instead of "Add guest"

 - Show "Reset guest" instead of "Remove guest"

Bug: 188542158
Test: With config_guestUserAutoCreated=true, delete current guest user
      using adb (`adb shell cmd user list -v --all` to find the user
      ids, then remove each guest user with `adb shell pm remove-user
      <id>`), then as owner, open multi-users settings page. Check that
      there is a item for "Guest" instead of "Add guest". Select
      "Guest", then confirm there is an item for "Reset guest" (it
      should be disabled). Select "Switch to guest", then switch back to
      owner. Open the multi-users settings page again. Check that "Reset
      guest" is now enabled. Tap "Reset guest", and press confirmation
      button, named "Reset". You should be take back to the main
      multi-user settings page and still see "Guest". Wait a few
      seconds, then use adb to confirm there is a guest user present.
Test: With config_guestUserAutoCreated=true, switch to guest user, open
      multi-users settings page, check that there is an option to "Reset
      guest". Select "Reset guest", and press confirmation button, named
      "Reset". Phone should switch back to last active user, and QS tile
      should now show "Guest" instead of "Add guest". Run `adb shell cmd
      user list -v --all` to confirm guest has a new user id.
Test: With config_guestUserAutoCreated=false, confirm that "Add guest"
      and "Remove guest" features remain unchanged
Change-Id: I7d5b81bd2e5c6b999ae18cd6b1280ae0496db94b
2021-06-24 17:40:12 -07:00
Syaoran Kuo
5c93fc758a Add testcase: Add multiple user and delete.
Add user and delete, check on UI.

Bug: 188507135
Test: atest com.android.settings.users.UserSettingsComponentTest

Change-Id: I8aaa10f38a146cd3e869b5b5b35a93b451113e07
2021-06-21 18:54:43 +08:00
Peter Kalauskas
c24234c301 Add tests for guest user events
Also, move ACTION_USER_GUEST_EXIT_CONFIRMED so it is only logged after
safety-check

Test: ROBOTEST_FILTER="com.android.settings.users.UserSettingsTest" m RunSettingsRoboTests
Test: ROBOTEST_FILTER="com.android.settings.users.UserDetailsSettingsTest" m RunSettingsRoboTests
Bug: 184200796
Change-Id: Id18aa914bbb262984d7c7cf4b8a4ffdde278fd23
2021-05-10 20:36:48 -07:00
Rubin Xu
8e4acdbf51 Refactor ChooseLockGenericController
* Move all logics around aggregating password policies
  to the controller
* Replace HIDE_DISABLED_PREFS and MINIMUM_QUALITY_KEY
  with HIDE_INSECURE_OPTIONS as all call sites are just
  using them to hide insecure screenlock options.
* Remove password policy aggregation logic from
  ChooseLockPassword and make it use policies passed in.
* Remove padlock from disabled screen lock options,
  per UX mock.
* Increase char limit for some strings

Bug: 177638284
Bug: 177641868
Bug: 182561862
Test: m RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.password
Test: 1. set profile password quality/complexity and enroll device lock
      2. set profile password quality/complexity and enroll work challenge
      3. set parent password quality/complexity and enroll device lock
      4. set parent password quality/complexity and enroll work challenge
      5. set profile and parent password complexity, then enroll work challenge
      6. set profile and parent password complexity, then unify work challenge
      7. Enroll device lock during SUW
Change-Id: Iba1d37e6f33eba7b7e8e1f805f8e37aaec108404
2021-05-06 23:09:27 +01:00
Adam Bookatz
f493bf0cdb UserDetailsSettings uses Guest string, not Guest name
The UserDetailsSettings panel, and its title, show the user's UserInfo.name.
This is correct for a regular user (and for the Owner). But for a Guest user,
this is incorrect, and the user_guest string should be used instead.

The difference occurs if the system language is changed after the guest is created;
the word 'guest' should update to the current language, not be frozen to the
language at the time of the guest's creation.

Bug: 185309160
Test: atest UserDetailsSettingsTest
Change-Id: I545aa3e6cc5d00c0bcc49960f37dddd9334b153b
2021-04-23 10:39:27 -07:00