Commit Graph

93 Commits

Author SHA1 Message Date
David Anderson
d3e4daaa7c Merge "Allow overriding DeviceDiagnosticsPreferenceController." into main 2024-06-26 21:02:52 +00:00
Chaohui Wang
b70c805717 Fix unable to erase eSIM
Before this change,
- eSIM will be erased twice, one with result callback and one without
  result callback.
- During reset, ResetNetworkConfirm could interrupted by subscription
  invalid event, which happens during reset.

After this change,
- eSIM will be erased only once, result callback is registered
  separately.
- Explicit exit the page when reset finish, and ignore the subscription
  invalid event after reset started.

Bug: 328293508
Flag: EXEMPT bug fix
Test: manual - dry run the reset
Test: ResetNetworkConfirmTest
Change-Id: I51395a556b1c8775192d5897a87f13046c042578
2024-06-26 11:02:56 +08:00
David Anderson
2871811694 Allow overriding DeviceDiagnosticsPreferenceController.
Allow devices to specify their own flags by overriding this class.
Additionally, fix a missing PackageManager lookup in getIntent().

Bug: 348647186
Test: launch Settings on Pixel and on AOSP
Change-Id: I2489a64804f068a957f9be3f87847d6911b24447
2024-06-25 17:32:23 +00:00
James Willcox
0569121109 Add @RequiresPermission to ACTION_PREPARE_FACTORY_RESET
Also make it public. This should allow it to be detected appropriately
by the GMSCore permission registry machinery.

Bug; 346611867
Test: builds

Change-Id: I15aa99541f33124ab6aea284889351d86753fa56
2024-06-11 20:58:29 +00:00
Omer Ozer
4506b6287a Add get permissions flag to package info query in factory
reset preference controller.

Bug: 341802418
Test: manual
Change-Id: I1603662b706ec94e109afe957b585577876c8e75
2024-05-21 01:30:27 +00:00
David Anderson
29f9abcd8b Add Device Diagnostics to Settings.
The new option will only appear if (1) the flag is enabled and (2)
DeviceDiagnostics.apk is landed on the device (which it is by default on
AOSP).

Bug: 309886423
Test: Build AOSP Pixel and launch Settings
Change-Id: If01d231664a301ff289d4da61445bf65a7506fdb
2024-05-14 04:46:02 +00:00
josephpv
43c8d3a3f8 Add a preference in reset options to delete private space
This takses care to add an entry point in Settings->System->Reset
options->Delete private space when private space feature is supported on
the device. Entry point appears both when private space exists and also
when private is not created.
On selecting asks for user authentication and on successful
authentication using device lock shows a dialog asking for
confirmation and calls for deletion private space.

Based on this entrypoint it would not be possible to guess if private
space exists on the device.

Recording link : b/329041740#comment3

Bug: 329041740
Test: atest ResetOptionsDeletePrivateSpaceControllerTest and verified
this doesn't give away existence of private space

Change-Id: I9a5b908e7a3f9edaf609cf7e6a87f9842d689ce6
2024-03-21 21:54:52 +00:00
Omer Ozer
acb58ebf42 Add factory reset wizard test coverage to
factory reset preference controller

Bug: 305244192
Test: RunSettingsRoboTests
Change-Id: I0c0a67b41cc73589863a71e24617451f5b49de5e
2024-01-16 23:25:52 +00:00
Chaohui Wang
9a6a0865de Catch IllegalStateException when get carrier config
Fix: 319149441
Test: manual - on System Update page
Test: unit test
Change-Id: I484a036b2ce086531b20e1a5ca7e541934bc4c07
2024-01-15 16:52:06 +08:00
Chaohui Wang
8295743fe1 Only show DeveloperOptionsController for admin
Bug: 311604902
Test: manual - on System page
Test: unit test
Change-Id: Idbf40be4e0074f5d381724538c226a336c2c3b27
2023-12-01 15:30:27 +08:00
Omer Ozer
b347d32b31 Merge "Change the existing permission to a system level perm for factory reset prep." into main 2023-11-27 22:57:32 +00:00
Chaohui Wang
ee7139a889 Remove injecting developer options into Settings itself
- It can improve performance because we use less injected item
- Also use RestrictedPreference instead just checking restrictions,
  so we follow policy transparency.

Note: Renamed DevelopmentSettingsDashboardActivity to
DevelopmentSettingsActivity,
because DevelopmentSettingsDashboardActivity could in disabled state
even after Settings upgrades, use a new name to prevent this issue.

Bug: 311604902
Test: manual - turn on / off Developer Options
Test: unit test
Change-Id: I17be117ae59e59410687e6d08fd5edd034d0508f
2023-11-27 05:12:13 +00:00
Chaohui Wang
3534061f7b New SystemUpdateRepository
Extract getSystemUpdateIntent, and add unit test.

Bug: 311110616
Test: manual - on "Software updates" page
Test: unit test
Change-Id: Ic7c06490d1d324705f547b2394794605e85485a4
2023-11-21 14:09:57 +08:00
Chaohui Wang
de8876e9b5 Extract ClientInitiatedActionRepository
Also add unit test.

Bug: 300851543
Test: manual - on system page
Test: unit test
Change-Id: I362afb4aa0683ebcc6695ff0b5bc35ef8afb5697
2023-11-10 14:31:07 +08:00
Omer Ozer
1d9c2a6f11 Change the existing permission to a system level perm
for factory reset prep.

Bug: 302016478
Test: local
Change-Id: If8ede49445ce1e26a77af04216654c8f9db9c421
2023-11-08 16:31:51 +00:00
Omer Ozer
e148ee7877 Add factory reset intent to the settings app.
Bug: 302016478
Test: local
Change-Id: I784395931b32746cb45a447b330ea8d57c17b2fe
2023-10-24 23:59:33 +00:00
Chaohui Wang
cda836fff7 Move SystemUpdateManager.retrieveSystemUpdateInfo
Into Kotlin Coroutine for true async.

Bug: 300851543
Test: manual - on system page
Test: unit test
Change-Id: Ibec5c9d0934d71ed1a5808cadf3b3542eb3d5fa0
2023-09-19 14:54:41 +08:00
Wentao Wang
f11e1666bf Merge "Separate the demo user factory reset option with admin user factory reset option." into udc-qpr-dev am: 38f12abb75 am: 0d3ae3ed32
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/24677431

Change-Id: Ie89643b620ee82e4f30ab98ca466f54bd68b8067
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-09-13 13:53:24 +00:00
Wentao Wang
a44e75d6ed Separate the demo user factory reset option with admin user factory reset option.
A security vulnerability was discovered by Android security. b/292548775 Within a short period of time after the device reboot, the user could enter the settings page and factory reset the device. Android Enterprise suggests to add DISALLOW_FACTORY_RESET user restriction to the device.

However, DISALLOW_FACTORY_RESET will be enabled on all Android users, including both the admin user and the demo user. The existing behavior in Android settings is that once the user restriction is set, factory reset button will be greyed out, which makes the factory reset functionality in demo user go away.

In demo user, the factory reset command will be forwarded to the current active device owner. So in this change, we separate the button for admin user and the button for demo user.

In demo user, the button is still visible when the restriction is set.

And in admin user, the button will be greyed out as expected.

Once this change is in, then Pixel Retail Demo could set the user restriction properly and rely on its internal logic to do factory reset. If other applications are trying to do the factory reset, it will be denied by OS.

BUG: 292548775
Change-Id: I9d2d47bb29bc2c1e05058b246908768cd2f95990
2023-09-13 11:47:11 +00:00
Chaohui Wang
2e4141e4ab Clean up AwareFeatureProvider from Settings
Bug: 287566056
Test: m Settings
Change-Id: I7f7f57809c55bf8824b427f0d4a232cacdbe88a7
2023-06-25 16:52:34 +08:00
Bonian Chen
f19e92cc2c [Settings] Code refactor for device without SIM
Code refactor to hide some UI entries, since there's a BluetoothWiFiPreferenceController
covers some of the work for device without SIM.

Bug: 259611847
Test: local & auto
Change-Id: Ia221663e180c8dabed2a25a927643c992ef8ac89
2022-12-08 05:24:01 +00:00
Colin Cross
54a9fd4e17 Merge "Use Build.VERSION.RELEASE_OR_PREVIEW_DISPLAY for user visible versions" am: 9c59242102 am: e23884eed9 am: f21625fe80
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/2003011

Change-Id: I6e850608c5454ce80562a956074bc9ebe5c1597d
2022-03-02 00:55:39 +00:00
Colin Cross
3f67f87efe Use Build.VERSION.RELEASE_OR_PREVIEW_DISPLAY for user visible versions
Use Build.VERSION.RELEASE_OR_PREVIEW_DISPLAY which will show a user
friendly version name for preview releases, and the release version
for final releases.

Bug: 221950960
Test: manual
Change-Id: I3a7e6a3c996d52614b89888afd35da8cff458b43
2022-02-28 18:03:23 -08:00
Tsung-Mao Fang
07dd833a6a FRP bypass defense in the settings app
Over the last few years, there have been a number of
Factory Reset Protection bypass bugs in the SUW flow.
It's unlikely to defense all points from individual apps.

Therefore, we decide to block some critical pages when
user doesn't complete the SUW flow.

Test: Can't open the certain pages in the suw flow.
Fix: 200746457
Bug: 202975040
Fix: 213091525
Fix: 213090835
Fix: 201561699
Fix: 213090827
Fix: 213090875
Change-Id: Ia18f367109df5af7da0a5acad7702898a459d32e
2022-01-05 12:10:00 +08:00
Tsung-Mao Fang
b57265fa31 Revert "Move Automatic System Updates from Developer Options to ..."
Revert submission 15552651-cherrypick-automatic-system-update-n9jr24y6ba

Reason for revert: Legal team decided to have this entry in GMS, so we can move this setting item back.
Reverted Changes:
Iaea3e11d9:Move Automatic System Updates from Developer Optio...
I077607a6a:Move Automatic System Updates from Developer Optio...

Change-Id: If000388f2dd0f9e3e06a29dcbdd362181d1bfd47
Bug: 196297425
2021-09-23 09:26:58 +00:00
Tsung-Mao Fang
74b1a46cb1 Move Automatic System Updates from Developer Options to System
- Move the preference to the system xml file.
- DisableAutomaticUpdatesPreferenceController should not
inherit from the developer preference controller now since it's not used
in developer page anymore. Instead, just use toggle preference
controller for changing the state.
- Rewrite the test cases based on new controller.

Test: The ui works well and search can navigate to correct path.
Fix: 196001125
Change-Id: Iaea3e11d9cdbfa073ebd41bc3c84356d564c7e71
2021-08-13 08:11:22 +00:00
Yanting Yang
5035ef9f94 Remove silky flag from System for official release
Remove the silky condition and clean up redundant files.

Bug: 183670633
Test: robotests & visual
Change-Id: I2743a65869c4fe2ea684e259373ddc309dea59c3
2021-05-27 13:53:18 +08:00
Mill Chen
1e607904c3 Update UI for factory reset flow
After applying a collapsing toolbar in the Settings app, the factory
reset screen is not displayed correctly. This is because
1) the factory reset page should not essentially have a toolbar since it
has different UI layout form other pages.
2) this page was launched previously as a SubSettings so it applied a
wrong theme.

This change is mainly updating the inheritence structure and specifying
the right theme for the factory reset page in order to have a correct
layout.

Bug: 179457252
Test: robotests and visual verified
Change-Id: I91aec65a120d5a288507d89ace7c9298acdca42b
2021-02-25 16:32:50 +08:00
Edgar Wang
bd0dd5d886 Rearrange System settings
- Fork system_dashboard_fragment_v2 for dev.
- Reorder the preference
- Remove summary

Bug: 174965365
Test: manual & robotest
Change-Id: Icc994f3b2e38ad54958deb5c9f80b6cd085029f0
2021-01-29 12:10:58 +00:00
Peter Wang
ecd856eeeb Added an option in reset menu in Settings to enable resetting Euicc data
only

Bug: 159650638
Fix: 159650638
Test: Local
Change-Id: Ia260b47a4dd0ddf0363740891b5e1d818c8631b7
2020-12-15 18:27:34 -08:00
Hiroki Sato
0e75d475ec Hide Bluetooth, Reset, Accessibility Settings in ARC
This is an upstreaming change of http://ag/8541963 and
http://ag/10296201 to hide some items from settings search.

This CL also adds javadoc to some settings classes to fix pre-upload
warnings.

Bug: 153704887
Test: Manual. In ARC build, "bluetooth" and "accessibility" no longer shows related settings.
Change-Id: Ic3e9217944251adbea1bdd67baf66d3a9e89583a
2020-04-10 16:00:57 +09:00
Narayan Kamath
50487c4595 Merge "Reland: Rework platform version to hide codenames." 2020-02-10 10:01:25 +00:00
Dianne Hackborn
95108c4b38 Reland: Rework platform version to hide codenames.
The public platform version no longer can be a codename, it is
always the most recently released platform.  A new build property
and API provides either the offical version or the current codename
as appropriate.  This will avoid breaking apps that look at the
platform version while development is under a codename.

Bug:  143175463
Test: manual
Exempt-From-Owner-Approval: Previously approved, no new changes.
Change-Id: Ifb6f6236aab2c40fd51abb9c6587eafcc8983857
2020-02-06 11:07:11 +00:00
Edgar Wang
0934babbfc Make the fragment title can’t searchable
we shouldn't take users so deep into the settings IA because it's easy
to feel lost in settings after clicking on a result without additional
context.

Bug: 143055215
Test: robotest & manual
Change-Id: I337cb5ead31e1e4e7bf9be78132e90630f83ee43
2020-02-06 19:07:11 +08:00
Edgar Wang
fee49421c7 Update Reset options summary
- Update summary when user does not have permission to reset network or factory reset

Fixes: 126295214
Test: rototest & manual
Change-Id: I710f0abcd3df1560eb3e7bc53a7427d7a6a5aad7
2019-12-23 13:47:46 +08:00
Kevin Lau Fang
40dd1e2183 Revert submission
Reason for revert: This causes a boot issue on Taimen (b/144480969). It wasn't caught by TreeHugger due to Taimen tests being disabled due to a different lab outage (b/144350336).

Change-Id: I490dc6c933c08c3c83b962786df11bd2da66b28a
2019-11-14 20:07:38 +00:00
Dianne Hackborn
cdbc0dfa6a Rework platform version to hide codenames.
The public platform version no longer can be a codename, it is
always the most recently released platform.  A new build property
and API provides either the offical version or the current codename
as appropriate.  This will avoid breaking apps that look at the
platform version while development is under a codename.

Bug:  143175463
Test: manual
Change-Id: I711ca20c4c8ce389697e940696051a336f5fd808
2019-11-12 15:55:59 -08:00
Raff Tsai
966fa01423 Use SettingsLib Indexable
- Use SettingsLib Indexable
- Directly use resource id in getPreferenceScreenResId

Bug: 135053028
Test: roboletric
Change-Id: I05f493b55e8b6e2091301e9231ba5615215618e6
2019-09-25 18:24:56 +08:00
Raff Tsai
ac3e0d0988 Directly use BaseIndexableProvider
- Add function getXmlResourceId, Fragments don't need to write
xml resource id twice.
- Remove getPreferenceControllers from Indexable.java. Because it will
move to SettingsLib later for other apps which don't need this function

Bug: 135053028
Test: robolectric
Change-Id: I1e74519aecdea3dde64a5aea79f08d766dbc0003
2019-09-24 00:35:52 +08:00
Raff Tsai
1f30b1cd67 Merge similar BaseSearchIndexProvider code together
Bug: 135053028
Test: robolectric, check search_index.db contains the same items
Change-Id: If3c18a170b0e671690df1fdf26e59a421d2c48cd
2019-09-12 11:09:09 +08:00
Naina Nalluri
dfbe891e39 Add background flag to CI system update intent
Add flag to allow KEY_CI_ACTION_ON_SYS_UPDATE_INTENT_STRING
intent. This is needed
as the receiver service is modified to use
latest target version SDK which introduces Background
broadcast limitations.

Bug: 78634470
Test: On Device, verified that the intents are
      received by the service
Change-Id: I140c1988b241885a737413bd5f0b9c3cc63c4ea8
2019-04-10 22:12:10 +00:00
Edgar Wang
59d4681253 Handle When received intent extra in System settings need show dialog
Bug: 128853573
Test: visual, robotest
Change-Id: I92337e26f51c3f7ef4033d424ddcf07c6da6805d
2019-03-28 22:49:09 +08:00
Fan Zhang
31b210017b Migrate all MetricsProto enums to SettingsEnums
Bug: 122855168
Test: rebuild
Change-Id: I962d9a71179f86b7cae9dc5e9a00e0aa1557dc76
2019-01-17 14:55:42 -08:00
Fan Zhang
23f8d59d02 Sort imports
Having consistent import order will reduce chance of merge
conflict between internal and external master

Test: rebuild
Change-Id: I0b1a170967ddcce7f388603fd521f6ed1eeba30b
2018-08-28 22:13:15 +00:00
Fan Zhang
9ce4a1fcde Use searchable="false" to suppress nonIndexables.
When possible, remove or simplify getNonIndexable() logic in fragments,
and use searchable="false" in xml to suppress index.

Change-Id: I5bdf5bc7d5494a64cdd9e230a51321a4b210af69
Fixes: 112608186
Test: robotest and manual search
2018-08-17 09:21:05 -07:00
Fan Zhang
a79c377fbc Declare "searchable" attribute for preferences.
Now we can easily mark a preference nonIndexable in xml instead of
adding key into searchIndexProvider.

Bug: 112608186
Test: robotests
Change-Id: I0ff16d44bb7b6ad148d3d35f09ca0da0163f73f4
2018-08-16 09:06:39 -07:00
tmfang
27c84de325 Settings Fragment Migration (Build pass app)
This patch focused on fixing compile errors and some runtime errors.

Test: We can't test it now. But we will have an integration test later.
Bug: 110259478
Change-Id: I16c471ddcd0fa1460c665b7f74d86fcace5ee67b
2018-07-11 18:24:51 -07:00
Fan Zhang
c7162cd24d Reorder and clean up imports.
Test: rebuild
Change-Id: I178485c84ae7146f991fd77b6d7504b029942a68
2018-06-18 15:45:09 -07:00
Fan Zhang
93d3b5174d Fix a strict mode violation in SystemUpdatePrefController
Change-Id: I4770b878b6f69318f08f8974c5c4d2690c5611d4
Bug: 78626509
Test: robotests
2018-05-11 03:45:48 +00:00
Matthew Fritze
f87a1f3f41 Establish permanently unavailable settings
Distinguish between settings which are permanently unavailable on
the device, and temporarily unavailable. This enables us to restrict
which setting slices are exposed in onSliceGetDescendants.

The primary changes in this CL are renaming:
"DISABLED_UNSUPPORTED" -> "UNSUPPORTED_ON_DEVICE"
to be more clear the the setting will cannot be accessed on the device, and,
adding a new enum to encapsulate settings which are currently unavailable, but
could be enabled in the future.

Also remove UNAVAILABLE_UNKNOWN. Devs should never need this enum.

Bug: 78910582
Bug: 79245656
Test: robotests
Change-Id: I58821a6cfd6134b3b351657b6edf5f74ead00643
2018-05-09 08:36:59 -07:00