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
- 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
- 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
- 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
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
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
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
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
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
* 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
* 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
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
* 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
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)
- 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
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.
- 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
Summary appends "and more" while the items of permission are larger
than 3.
Change-Id: Ic3c16404237fb0cb81f0ed5d2cbdff32cf23c452
Fix: 136258315
Test: Robo test and visual
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
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
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
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