Commit Graph

1820 Commits

Author SHA1 Message Date
Yanting Yang
9dc0a45fd8 Fix NPE crash when opening the app info from shortcut suggestion
It occurs NPE in invoking refreshUi() of AppButtonsPreferenceController
when user fully install the instant app from google play and then
directly open app info from the shortcut suggestion in launcher.

Root cause:
AppButtonsPreferenceController.refreshUi() will be invoked when user
directly open app info from the shortcut suggestion in launcher. In
refreshUi(), we will update the information of button preference, but
the preferences will not be initialized if device existed an instant
version for the app.

Solution:
Check button preference and initial them if need in refreshUi().

Fixes: 137854835
Test: visual, robotests
Change-Id: Id5c3e53b9db2683cab970c10eace7925d889eea3
2020-04-30 08:53:16 +08:00
TreeHugger Robot
87883c7634 Merge "Fix incorrect app count displayed under special app access" into rvc-dev 2020-04-17 10:07:21 +00:00
Sunny Shao
d63c5ebff5 Fix incorrect app count displayed under special app access
- This special app Google Play services will change its hasLauncherEntry
  value after receiving the MSG_LOAD_LAUNCHER.
- Update the summary while SpecialAppAccessPreferenceController is
  receiving the onLauncherInfoChanged callback.

Fixes: 150480524
Test: manual test
Change-Id: I26b99fce54606644ee5603b4ca4730267c0f7ce5
2020-04-16 21:38:03 +08:00
Sunny Shao
44b74c9cfe Refactor the OpenSupportedLinks
- Use the AppInfoWithHeader to replace the DashboardFragment.
- It provide the AppHeader controller and handle the app update/remove event.

Fixes: 147996227
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.applications.OpenSupportedLinksTest
Change-Id: I1633c39fc926805a379c5c31845897914e5181a6
2020-04-15 09:53:43 +08:00
George Chang
28895f2822 [NFC] Disable contactless payments when no payment application installed
Bug: 153821082
Bug: 149270345
Test: Check settings
Change-Id: I5162ecb07c26a33427305b6cf65829b2c61ad317
2020-04-13 01:53:23 +00:00
TreeHugger Robot
a59df23975 Merge "Add metrics for the cross profile settings page" into rvc-dev 2020-04-09 10:52:11 +00:00
Jason Chiu
4edb83b260 Merge "Refine metrics log in infrastructure" into rvc-dev 2020-04-07 06:33:30 +00:00
Jason Chiu
819abf7f87 Refine metrics log in infrastructure
- Add interfaces to set/get metrics category in BasePreferenceController
  for descendants having a chance to get it.
- Set metrics category in DashboardFragment
- Automatically log metrics in onPreferenceChange of
  TogglePreferenceController
- Add support for TwoStateButtonPreference in TogglePreferenceController
  to make the preference generic

Bug: 137559984
Test: robotest
Change-Id: Ia7e0d24a3db1991b18e0286d9894570fa71247a3
2020-04-07 14:08:39 +08:00
TreeHugger Robot
d81224b7d4 Merge "Update permission summary when permission changing." into rvc-dev 2020-04-06 05:22:01 +00:00
kholoud mohamed
a8bd1bea4e Add metrics for the cross profile settings page
Also changed the install banner to not say "Tap to
install" if the intent to redirect to Play is missing.

Bug: 149774826
Test: tested manually that the metrics are being reported by running
./out/host/linux-x86/bin/statsd_testdrive 103

Change-Id: Ieebda237748b5dbff8e974465c5d67b147d92077
2020-04-03 11:21:10 +00:00
kholoud mohamed
f9a03cd415 Fix crash when trying to open app info page
Fixed a crash in App info page that happens when
no work profile exists, also fixed some unit tests.

Fixes: 152933121
Test: make RunSettingsRoboTests ROBOTEST_FILTER=InteractAcrossProfilesPreferenceControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=InteractAcrossProfilesControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=InteractAcrossProfilesSettingsTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=InteractAcrossProfilesDetailsTest
Change-Id: I7a1e5857cb1e10b96b33abd64359ba30459b1b13
2020-04-01 17:27:17 +00:00
Yi-Ling Chuang
f31d38620c Update permission summary when permission changing.
Some apps have pre-grant permissions, so when they get disabled and then
enabled again, those pre-granted ones will come back automatically. This
CL handles this kind of cases by listening to permission changes and
update the summary accordingly.

Fixes: 142053555
Test: robotests
Change-Id: I75b010139657ec3b4ff875de77573a46387e42c8
2020-04-01 15:27:15 +08:00
Kholoud Mohamed
7fb6f35c3a Merge "Show all apps that requested cross profile permission" into rvc-dev 2020-03-31 13:09:31 +00:00
kholoud mohamed
4d0edf369f Show all apps that requested cross profile permission
show all apps that requested the permission, show the admin
restricted dialog if the app is not whitelisted by the admin,
and show a link to install the app if the app is missing in one
of the profiles.

Bug: 149742043
Test: make RunSettingsRoboTests ROBOTEST_FILTER=InteractAcrossProfilesPreferenceControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=InteractAcrossProfilesControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=InteractAcrossProfilesSettingsTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=InteractAcrossProfilesDetailsTest

Change-Id: I2bc86b9966a2e14a12ee8f4b7f1b75f866ed98e3
2020-03-30 21:10:40 +01:00
TreeHugger Robot
9c32d89aaa Merge "Update App storage usage summary" into rvc-dev 2020-03-30 08:22:16 +00:00
Philip P. Moltmann
1e812204e4 Merge "Only check op in Settings UI" into rvc-dev 2020-03-27 00:25:38 +00:00
Jason Chiu
26343b82ee Add metric logs for special cases in Display and Battery page
Bug: 137559984
Test: robotest
Change-Id: I60f6237ac2c533306879f46ee4c25d54002cf0e9
2020-03-26 11:31:39 +08:00
Philip P. Moltmann
12954d5060 Only check op in Settings UI
noteOp should only used if the data protected by the app-op was
accessed. If you only want to know the state, use checkOp.

Test: TH
Bug: 136595429
Change-Id: I2b53ad413c10a71feb9c94848aef2f9f38f851d8
2020-03-24 15:55:57 -07:00
Edgar Wang
55ac72eec8 Update App storage usage summary
- don't lowercase for Internal Storage and External Storage

Fixes: 150635477
Test: visual & robotest
Change-Id: I0b12ad5ae26fe7b0eb5e970b7945ebcd4bfed017
2020-03-24 11:46:35 +08:00
Alex Johnston
8d430de5d5 Fix AppButtonPreferenceControllerTest
* isSystem was not being mocked.
* The tests where isSystem should return true
  were not being tested properly.

Bug: 151569506
Test: atest com.android.settings.applications.appinfo.AppButtonsPreferenceControllerTest
Change-Id: Ib4249bca8f3c0321d0b64b4dbd4c4e5fc29586e1
2020-03-16 09:37:10 +00:00
Alex Johnston
37fa5bd059 Merge "DPC can be uninstalled in personal profile in New COPE" into rvc-dev 2020-03-13 14:28:15 +00:00
Alex Johnston
341f995971 DPC can be uninstalled in personal profile in New COPE
* For an organization-owned device, the DPC should be able to
  be uninstalled in the personal profile. Previously, the
  observed behaviour was that the uninstall button in the App
  Info Screen was being greyed out.
* This was because the previous logic did not allow for
  uninstalling any app which has a profile owner or device
  owner on *any* user.
* This CL updates this logic, such that, for non-system apps
  uninstalling is blocked only if the app has a profile owner
  or device owner for the current calling user.

Bug: 149381804
Test: Manual testing
      atest com.android.settings.applications.appinfo.AppButtonsPreferenceControllerTest
Change-Id: Ifaf03daa41724dbbd869c7e1371a77cc39d15ac7
2020-03-12 13:38:19 +00:00
atrost
a84c219c30 Mark CHANGE_RESTRICT_SAW_INTENT as logging only
Test: m, flash
Test: adb shell dumpsys platform compat - the change is marked loggingOnly
Bug: 148009004
Change-Id: Ia04e8ef624a69feac7c68c858b48457385b9818a
2020-03-12 12:26:56 +00:00
Alex Johnston
01d61e49af Merge "Add policy transparency dialog to 'Remove work profile'" into rvc-dev 2020-03-12 12:00:49 +00:00
shafik
143ec3ec2b Update ManageExternalStorageDetailsTest setUidMode
We previously changed ManageExternalStorageDetails to use
AppOpsManager#setUidMode instead of AppOpsManager#setMode, but forgot to
update the relevant unittest. This CL changes that unittest.

Test: make RunSettingsRoboTests ROBOTEST_FILTER=ManageExternalStorageDetailsTest
Fix: 150914062
Change-Id: I2cfe7e7a19f2422474d11fb946089a6847b36b12
2020-03-12 09:43:55 +00:00
Alex Johnston
dd1747011a Add policy transparency dialog to 'Remove work profile'
* For a work profile on an organization-owned device,
  no explanation was being shown to the user as to
  why the work profile cannot be removed.
* This CL adds a policy transparency dialog when the
  'Remove work profile' option is selected in the
  'Device Admin' Settings screen.

Bug: 149391073
Test: Manual testing
      atest com.android.settings.applications.specialaccess.deviceadmin.DeviceAdminAddTest
Change-Id: I8221973ed16fcc7c79f5897c3bea063050ae00a6
2020-03-09 09:25:49 +00:00
shafik
ea6f37e1d7 Use AppOpsManager#setUidMode instead of #setMode
Security related app-ops should be set with AppOpsManager#setUidMode
instead of AppOpsManager#setMode.

Test: manual - toggle All Files Access for a test app, reboot device and
observe in /data/system/appops.xml that the mode was for UID instead of
package
Test: ensure that the right state is reflected in the relevant Settings
activities
Bug: 146425146
Merged-In: ac8aba0c4a

Change-Id: I261953ff88bc049cf0a2f04f8caac00b8cc6f704
(cherry picked from commit ac8aba0c4a)
2020-02-24 11:28:41 +00:00
Jason Chiu
c56ce8d647 Guard NPE in getAvailabilityStatus of InstantAppDomainsPreferenceController
Fixes: 149373695
Test: build, manual
Change-Id: I7501ef393e226bb38c72a1ee465bf9c72586716b
Merged-In: I7501ef393e226bb38c72a1ee465bf9c72586716b
(cherry picked from commit c0543e833f)
2020-02-24 06:19:11 +00:00
Rajeev Kumar
67c149bfe7 Settigns app changes to enable Notification listeners on Android Go.
Bug: 148575561
Test: make RunSettingsRoboTests -j40 and manual tests
Change-Id: I1832529edd55d9ba2053ccc0ff7e2bc93f4a00b5
2020-02-18 15:22:47 -08:00
TreeHugger Robot
c799e9236b Merge "Fix Battery optimization page broken" 2020-02-17 06:25:11 +00:00
TreeHugger Robot
0eba407374 Merge "UX changes for the new cross profile settings page" 2020-02-14 13:44:59 +00:00
kholoud mohamed
00c46041b6 UX changes for the new cross profile settings page
Bug: 136249261
Bug: 140728653
Bug: 148594054
Test: make RunSettingsRoboTests ROBOTEST_FILTER=InteractAcrossProfilesControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=InteractAcrossProfilesDetailsTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=InteractAcrossProfilesPreferenceControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=InteractAcrossProfilesSettingsTest

Change-Id: I9666b34a03e5c082eed7c4120e70a07017ab7ef0
2020-02-14 11:51:39 +00:00
Raff Tsai
50a0aafdfe Fix Battery optimization page broken
- mCompositeFilter is not changed after toggling filter, so the
list items are not changing. Fixed by changing mCompositeFilter
after toggle is changed.
- Because mSession.rebuild returns null, removes some dead code.

Fixes: 149362024
Test: 1. Settings > App & notifications > Special app access >
         Battery optimization
      2. Toggle Not optimized and All apps
      3. App list should change after step 2

Change-Id: Ifd5c7b0f1d809ae7a49d62b39e34fa899700326c
2020-02-14 10:45:14 +08:00
TreeHugger Robot
be94018ba9 Merge "Handle null case in AppStateAppOpsBridge" 2020-02-13 06:44:30 +00:00
Tsung-Mao Fang
59e1e64258 Handle null case in AppStateAppOpsBridge
AppStateAppOpsBridge#getEntries returns null if no app
is requesting AppStateAppOpsBridge#mPermissions,
which would cause the settings app to crash in
AppStateAppOpsBridge#loadAllExtraInfo or
AppStateAppOpsBridge#loadAppOpsStates.

Try to skip null case here and set null for extraInfo
when we get null from AppStateAppOpsBridge#getEntries.

Change-Id: Iac03ec11869eeac62fa055da26b4b7a10dc65bb8
Fix: 147479269
Test: Open All files access and no crash.
2020-02-12 18:17:08 +08:00
Raff Tsai
a2e77a0e85 Fix no action in Settings storage
- Pass wrong user id in view holder

Fixes: 149028747
Test: 1. Add new user, and change th new user
      2. Take a camera shot under the new user
      3. go to Settings -> Storage -> photo & video -> Image
      4. Should open file brower

Change-Id: I0af532748ec19f62897911b1bb6ece9b21b844c3
2020-02-12 13:20:19 +08:00
TreeHugger Robot
5a5ca79af4 Merge "Link PACKAGE_USAGE_STATS with LOADER_USAGE_STATS" 2020-02-12 01:56:31 +00:00
TreeHugger Robot
2db8d1d88f Merge "Tweak summary for permission manager" 2020-02-10 12:13:32 +00:00
Tsung-Mao Fang
70238907dc Tweak summary for permission manager
Summary appends "and more" while the items of permission are larger
than 3.

Change-Id: Ic3c16404237fb0cb81f0ed5d2cbdff32cf23c452
Fix: 136258315
Test: Robo test and visual
2020-02-10 19:15:59 +08:00
Tsung-Mao Fang
b4fc67ea24 Revert "Revert "Use system-api lib to get badged, shadowed icons(2/n)""
This reverts commit 94b8055f1c.

Reason for revert: Revert this cl and fix broken test cases.

Change-Id: I61a190b4beba8db2fe2faab45e5dd6921dc681ec
Fix: 149112222
Fix: 149090275
Test: Run all Setting robo tests
2020-02-10 15:01:43 +08:00
Bill Peckham
f78295c11a Merge "Revert "Use system-api lib to get badged, shadowed icons(2/n)"" 2020-02-07 22:27:34 +00:00
Bill Peckham
94b8055f1c Revert "Use system-api lib to get badged, shadowed icons(2/n)"
This reverts commit dbecbe6f61.

Reason for revert: b/149112222

Change-Id: I11981b2daacf8b07177fe906d88de05ca40810c1
2020-02-07 21:52:25 +00:00
TreeHugger Robot
cdd797e2bd Merge "Use system-api lib to get badged, shadowed icons(2/n)" 2020-02-07 11:50:41 +00:00
Kholoud Mohamed
83589187ae Merge "Add settings page to control cross profile appop" 2020-02-07 11:14:08 +00:00
Tsung-Mao Fang
dbecbe6f61 Use system-api lib to get badged, shadowed icons(2/n)
In order to prevent DoS attack from icon size, we're using
a system lib to help convert any loaded drawable into a flattened
bitmap with an appropriate size.

Test: Open recent app screen and then no crash
Bug: 33646131
Change-Id: Ib7eae56e19cd86667bd63b6061000c6a92deaf3b
2020-02-07 18:45:45 +08:00
Edgar Wang
4af4f276bd Merge "Make the fragment title can’t searchable" 2020-02-07 08:07:01 +00:00
kholoud mohamed
14a887fbf1 Add settings page to control cross profile appop
This does not have the final UX changes.
Strings are marked as non-translatable since they are not yet finalized.

Bug: 136249261
Bug: 140728653
Test: make RunSettingsRoboTests ROBOTEST_FILTER=InteractAcrossProfilesControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=InteractAcrossProfilesDetailsTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=InteractAcrossProfilesPreferenceControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=InteractAcrossProfilesSettingsTest
Change-Id: Ia3ebebc9bb53dcb5097bda71df9cfa5c4442fc59
2020-02-06 12:14:34 +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
TreeHugger Robot
ab06fc2454 Merge "Leverage the code from qt-qpr1-dev to master" 2020-02-06 10:29:39 +00:00
Sunny Shao
8d0d90096c Leverage the code from qt-qpr1-dev to master
Fixes: 147124412
Test: manual test

Change-Id: I6e937c6d34b635ecfdd2e29b22d0023f23f695e3
2020-02-06 17:20:58 +08:00