Merge "Only notify when admin enables location for the user" into rvc-dev am: 35f33f427e am: 9b1c4372c5 am: 3d33dcc021

Change-Id: I65ed1b207779bb46f7adeb9248f42217d7d04ab0
This commit is contained in:
Eran Messeri
2020-05-28 13:09:30 +00:00
committed by Automerger Merge Worker

View File

@@ -11951,11 +11951,11 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
user);
mInjector.getLocationManager().setLocationEnabledForUser(locationEnabled, user);
// make a best effort to only show the notification if the admin is actually changing
// something. this is subject to race conditions with settings changes, but those are
// make a best effort to only show the notification if the admin is actually enabling
// location. this is subject to race conditions with settings changes, but those are
// unlikely to realistically interfere
if (wasLocationEnabled != locationEnabled) {
showLocationSettingsChangedNotification(user);
if (locationEnabled && (wasLocationEnabled != locationEnabled)) {
showLocationSettingsEnabledNotification(user);
}
});
@@ -11968,7 +11968,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
.write();
}
private void showLocationSettingsChangedNotification(UserHandle user) {
private void showLocationSettingsEnabledNotification(UserHandle user) {
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// Fill the component explicitly to prevent the PendingIntent from being intercepted
@@ -12100,8 +12100,11 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
saveSettingsLocked(callingUserId);
}
mInjector.settingsSecurePutStringForUser(setting, value, callingUserId);
if (setting.equals(Settings.Secure.LOCATION_MODE)) {
showLocationSettingsChangedNotification(UserHandle.of(callingUserId));
// Notify the user if it's the location mode setting that's been set, to any value
// other than 'off'.
if (setting.equals(Settings.Secure.LOCATION_MODE)
&& (Integer.parseInt(value) != 0)) {
showLocationSettingsEnabledNotification(UserHandle.of(callingUserId));
}
});
}