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:
@@ -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));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user