Commit Graph

530 Commits

Author SHA1 Message Date
Raff Tsai
2d709131ba Fix Settings crash when click uninstall button
When mPackageName is null, mFinish is true. OnResume() doesn't
invoke refreshUI(). It causes uninstall button is still enabled.
The solution is hiding AppButtonsPreference when mFinish is true.

Fixes: 138524326
Test: make RunSettingsRoboTests ROBOTEST_FILTER
Change-Id: I9759e53f002afbd4c88d8d536df3bf01c343135e
(cherry picked from commit 88228c3399)
2019-09-06 05:24:12 +00:00
Raff Tsai
637d419157 Fix crash after uninstalling app
updateState was invoked in loader callback. But the
package was uninstalled at the callback time caused
null pointer exception. Add null check to prevent
null pointer access.

Fixes: 136170218
Fixes: 133771724
Test: make RunSettingsRoboTests, manual
Change-Id: I2715e77f6e32af42a4bce70c9f409b0311eb36c4
(cherry picked from commit 790a822526)
2019-07-24 08:36:13 +00:00
Hai Zhang
71f2614736 Revert "Add special apps access settings page for financial app."
This reverts commit 43374eabb8.

Reason for revert: No longer needed because we are using whitelist for
SMS permission

Fixes: 135213238
Test: presubmit
Change-Id: I182be4a1136521f325866e70e875439c17816ef2
2019-06-24 21:11:36 +00:00
Suprabh Shukla
732edc3e39 Kill uid when REQUEST_INSTALL_PACKAGES is denied
Process privileges like open fds need to be revoked, when this
permission is denied by the user.

Test: Manually verified by checking logs.
Robotest:
atest SettingsRoboTests:ExternalSourcesDetailsTest

Bug: 133504844
Change-Id: I81da0b3a5d6c54e392828829d1a2c43488439504
2019-06-05 21:15:17 +00:00
Narayan Kamath
67d149ae37 Hide AppButtonsPreferenceController for system modules.
Bug: 131927465
Test: atest AppButtonsPreferenceControllerTest
Change-Id: I2d3aa3429f61325afe49bfe322522fe9ccd03b2c
2019-05-17 18:54:39 +01:00
TreeHugger Robot
6e8c403360 Merge "Add an interface that returns time spent text for app." into qt-dev 2019-05-08 00:11:32 +00:00
Yi-Ling Chuang
922064ed69 Limit the number of permissions being displayed.
To avoid a long permission summary, let's limit the number to three.

Fixes: 117978938
Test: robotests
Change-Id: Id83fac7ad91140b22757d3e6e8eb72d86ad6ad42
2019-05-06 14:12:00 +08:00
Yi-Ling Chuang
0789b5d226 Use PermissionControllerManager to get permission groups
The mapping of permissions and permission groups may be changed upon
mainline module update, so we cannot reliably read from the platform.
PermissionControllerManager is created for this purpose, so we use it
to prevent from the outdated mapping instead of mapping them manually.

Bug: 117978938
Test: robotests

Change-Id: If8682796b8a30dee3b73572e977fade48d07eb2b
2019-05-02 10:04:53 +08:00
Fan Zhang
eb2e8dd22c Add an interface that returns time spent text for app.
Bug: 129266977
Test: robotest
Change-Id: Iaa5b4c5504eccbe0290b1014bd8e25aa3d4c3dd8
2019-04-29 11:09:58 -07:00
Julia Reynolds
e103aa8fd2 Fix notification preferences
- ImportancePreference should not be separately clickable
- new strings

Bug: 127796543
Fixes: 131060409
Test: make sure talkback doesn't read 'double tap to activate' when
the preference is focused

Change-Id: I6b6eef0915873b4e0b44c59758e5f4b5a265364b
2019-04-24 09:59:20 -04:00
Fan Zhang
270fd6c872 Misc bug fixes around search bar in app list UI.
- Turn off DEBUG log flag, it's spammy and is a potential PII risk.
- Save search bar expand state so it stays open during screen rotation.
- Introduce a intent extra so callers can deep link into this UI with
  search bar pre-expanded.

Fixes: 130422388
Test: robotest
Change-Id: Ib81080733707306de516c49340571c543e70874e
2019-04-12 13:50:54 -07:00
TreeHugger Robot
f078971771 Merge "Treat mode_default as denied for install_unknown_apps" into qt-dev 2019-04-09 22:02:30 +00:00
TreeHugger Robot
dda677cf77 Merge "Do not retrive app detail if the fragment is exiting." into qt-dev 2019-04-09 21:19:24 +00:00
TreeHugger Robot
0aa0d665c0 Merge changes from topic "role-replace" into qt-dev
* changes:
  Remove old default apps code and use roles instead.
  Move default payment app to special app access.
2019-04-09 05:33:21 +00:00
Hai Zhang
22f8d48df0 Remove old default apps code and use roles instead.
Default apps are moved into PermissionController.

Bug: 124452117
Bug: 124457823
Test: presubmit & manual
Change-Id: I5f68e5b77cd6163d093590185314270706d75391
2019-04-09 13:30:31 +08:00
Hai Zhang
470ec69461 Move default payment app to special app access.
Bug: 124452117
Bug: 124522992
Test: build
Change-Id: I58e7127920d939dc3635bcc2e608cee6baa21998
2019-04-09 13:30:14 +08:00
Suprabh Shukla
d3864daebd Treat mode_default as denied for install_unknown_apps
Test: atest SettingsRoboTests
Bug: 123700348
Change-Id: Ieeb6456854cc3d0faa0e9c407accd94f56a25813
2019-04-08 15:23:03 -07:00
Fan Zhang
276edc8d86 Do not retrive app detail if the fragment is exiting.
The exit flag can be set by a variety of things, such as when package is
removed, or package is invalid (hidden mainline module). Loading such
packages changes the internal state of ApplicationsState class (an app
singleton), which leads to inconsistencies later.

Fixes: 130166465
Test: robotest
Change-Id: Ib09240cb694fa16692914a7aa9ce354869615c2d
2019-04-08 13:56:59 -07:00
tmfang
e9f11d6efc Improve launch time for app & notification screen
- We won't query recent apps in getAvailabilityStatus().
And then we do that in background thread.
So, we can launch app & notificatins screen as soon as possible.

- Create a RecentAppStatsMixin class which is responsible
for maintaining the recent apps data.

- Controllers and fragment update their UI after they got
onReloadDataCompleted callback from RecentAppStatsMixin.

Test: manual, robotest
Fixes: 128849426
Fixes: 126453868
Change-Id: I636d5878cb5d53496978fe613c625382d8d382bc
2019-04-08 16:40:33 +08:00
TreeHugger Robot
b2852a41cb Merge "Disallow Package Installer to be disabled" 2019-04-02 05:12:32 +00:00
Zoran Jovanovic
c6d79cd0da Don't allow RRO uninstall if overlay is enabled
System RROs can never be uninstalled. Also, enabled RRO, i.e.
RRO applied to their target packages, must not be uninstalled by
end-user because that may be dangerous to the configuration of
its target package. Disabled RROs, i.e. RRO not applied to their
target packages, are free to be uninstalled to reclaim space.

Bug: 124556507
Test: manual + `make RunSettingsRoboTests ROBOTEST_FILTER=AppButtonsPreferenceControllerTest`
Change-Id: Ib6bd2765c8cb88a5887de817a08a1541eaee0cab
2019-04-01 20:32:51 +00:00
Torne (Richard Coles)
185acfc5ae Remove WebView fallback package handling.
There is no longer a special "fallback package" state for WebView that
means it should not be able to have its enabled/disabled state
controlled by the user. Remove the code used to implement this in
Settings.

Bug: 129470358
Test: verify that WebView's enable/disable button is not greyed out
Change-Id: Ifc0921511a71282a77f239e5ff5955e60fab6e2c
2019-03-28 14:11:50 -04:00
tmfang
e668924149 Disallow Package Installer to be disabled
Test: visual, robotest
Fixes: 128950485
Change-Id: Id50a62fe3288761f68a3588b154db24573418068
2019-03-28 13:29:03 +08:00
Fan Zhang
0a83cd82a1 Merge "exit app info page if app is a hidden system module." 2019-03-27 19:50:41 +00:00
Fan Zhang
d646ad7778 exit app info page if app is a hidden system module.
Fixes: 120546598
Test: robotest
Change-Id: I763ce9d65904e2b0c2a6144776c42881a1269c52
2019-03-27 12:39:10 -07:00
Wei Wang
1a90162afd Address API council comments.
Bug: 123587501
Test: Manual
Change-Id: I72582ca6d8da8b1fe7bc4fc1b4b4db1fad6ca7a7
2019-03-26 14:06:16 -07:00
jackqdyulei
6aeed0eaa1 Fix broken settings tests(Round 2)
1. Mark a few as Ignore with bug number
2. Remove some tests since they are obsolete.

Bug: 129159331
Test: RunSettingsRoboTests
Change-Id: I801681609c31c1f824c44b49ec89d9d28c716539
2019-03-26 12:46:01 -07:00
Raff Tsai
b0bb2f36a1 Merge "Fix broken settings tests" 2019-03-26 05:16:21 +00:00
jackqdyulei
4dbcdd632f Fix broken settings tests
1. Mark a few as Ignore with bug number
2. Remove some tests since it is covered in other places
3. Fix some tests

I think we should make tests at least green asap.

Bug: 129159331
Test: RunSettingsRoboTests
Change-Id: I90971b416806e4e9be249b06ad5abfb73d9d7c23
2019-03-25 15:54:47 -07:00
Fan Zhang
e3cee29472 Merge "Remove reference to R.id.summary_container." 2019-03-21 23:41:58 +00:00
Fan Zhang
5bb2a87b7f Create a page to manage dnd permission for individual app
- Change the original ZenAccessPage to
  - Remove the inline switch
  - Make the preference click target go into the new detail page
  - Some formatting/style change.

- Create a new detail page for zen access.
  - Exit if app didn't declare this permission
  - Preset the switch toggle to their current permission grant state
  - Move the warning dialog logic from ZenAccessSettings to here.

- Move some common functionality into ZenAccessController, a static
  helper class

Bug: 128547723
Test: robotest
Change-Id: I1ebb32396869d07ff4283b300bd716506298c9b5
2019-03-18 14:42:31 -07:00
Fan Zhang
d3b848713d Remove reference to R.id.summary_container.
It's deleted in another CL.

Fixes: 123317946
Test: visual/robo
Change-Id: I7b461ba68e8b56946e4effc26850776881236ec7
2019-03-15 15:41:47 -07:00
Fan Zhang
5db43105e8 Move a few classes around for easier ownership control
Bug: 128547723
Test: rebuild
Change-Id: I8f0dcf30fee44eaae60e10510620fb518cded68f
2019-03-15 15:32:33 -07:00
Hai Zhang
93cfd2e28e Use a boolean Consumer instead of RoleManagerCallback.
And use RemoteCallback for it under the hood. This removes one AIDL
interface and allows using lambda, while aligning with what
PermissionControllerService does.

Bug: 127691087
Test: manual
Change-Id: I7af28be2df5f84ffcd040a80884efe7c08e2d067
2019-03-08 14:33:30 -08:00
Hai Zhang
729f1bb48b Use RoleControllerService for role related APIs.
Move isApplicationQualifiedForRole() and isRoleVisible() from
PermissionControllerService to RoleControllerService.

Bug: 127691087
Test: manual
Change-Id: I87edb1bc457fbbec3d9a87054eaad5024ed91310
2019-03-07 21:33:56 -08:00
TreeHugger Robot
d8b73f832f Merge "Use PermissionControllerService.isRoleVisible() in app info shortcut." 2019-03-04 22:49:23 +00:00
TreeHugger Robot
32924c702d Merge "Migrate all default app shortcut preference to use roles." 2019-03-01 18:34:29 +00:00
Hai Zhang
617e745c4d Use PermissionControllerService.isRoleVisible() in app info shortcut.
Use the new PermissionControllerService.isRoleVisible() to hide roles
that are not visible.

Bug: 124452117
Bug: 124457823
Test: manual
Change-Id: I4c61a2760dc62ecd8a52fba9e133e96a447c4a29
2019-02-28 17:02:43 -08:00
Hai Zhang
3064ca585e Migrate all default app shortcut preference to use roles.
Bug: 124452117
Test: build
Change-Id: I19375dc21bfcd932a263c49330dc9a040a446beb
2019-02-28 13:51:21 -08:00
Zhi An Ng
c6b4170460 Merge "Disable system alert window permissions on low ram devices" 2019-02-27 17:06:50 +00:00
TreeHugger Robot
b80a409a21 Merge "Create a preference controller for "App info"" 2019-02-27 03:02:46 +00:00
Ng Zhi An
b97bdc38da Disable system alert window permissions on low ram devices
Bug: 63697002
Bug: 117832554
Test: adb am start-activity -a
android.settings.action.MANAGE_OVERLAY_PERMISSION
Change-Id: I44c64001cd07fd4934cdc55f455384cebd5c9cfb
2019-02-26 17:58:43 -08:00
Fan Zhang
71d5e90a6e Include uid in device admin pref id.
Fixes: 124979213
Test: robotests
Change-Id: I50114db79e9b5278bc916fbbba6353c5f19df24f
2019-02-26 10:49:53 -08:00
tmfang
826879ed63 Create a preference controller for "App info"
We try to avoid managing too many preferences in a controller.
So, we create another controller to manage all apps info preference.

RecentAppsPreferenceController and AllAppsInfoPreferenceController
share same state of recent apps in order to improve the performance.

Test: visual, robo test
Fixes: 126134996
Change-Id: I1d8a175b213831415797437c64fd9d432864f9d3
2019-02-26 19:34:46 +08:00
tmfang
ac74050a7c Improve launch time for Apps & notifications page
In original design, we reload usage data at least thrice
for showing recent apps.

For now, we only reload usage data once in constuctor.
And we reload data again when we are calling updateState.

Test: Open App & notifications page, and then I compare the lauch time
with P platform device.
Fixes: 126013076

Change-Id: Ida769f28a4419125e1948e36658686ee55bf51a5
2019-02-26 15:08:22 +08:00
TreeHugger Robot
343b0211fe Merge "Add app entities widget for recently opened apps" 2019-02-23 02:15:26 +00:00
tmfang
8b414c9a14 Fix some test cases fail
Test: robo test
Fixes: 125599276
Change-Id: I4b1b15f69ff3021e4330bed49ac95ea871b98e92
2019-02-22 17:37:04 +08:00
Hongming Jin
41fb813614 Merge "Migrate emegency default app to role manager." 2019-02-21 20:37:53 +00:00
tmfang
7de5314676 Add app entities widget for recently opened apps
If there is no recently opened app should be shown,
just show up an "All apps" preference.

If there are some recently opened apps, we show up
result with app entites controller.

- Clean up some useless ui. (category)
- User BasePreferenceController
- Modify test cases.

Test: robotest, visual
Change-Id: I411f61ed32eaaed97921941fd5026f1d65308d00
Fixes: 123538183
2019-02-21 16:23:18 +08:00
Hongming Jin
6c728dc924 Migrate emegency default app to role manager.
Bug: 123293861
Test: atest DefaultEmergencyPickerTest
Change-Id: I7bd9e2655b22a35fc3268091d38c6770911d4046
2019-02-20 11:46:02 -08:00