Merge "Only notify when admin enables location for the user" into rvc-dev
This commit is contained in:
@@ -11951,11 +11951,11 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
|||||||
user);
|
user);
|
||||||
mInjector.getLocationManager().setLocationEnabledForUser(locationEnabled, user);
|
mInjector.getLocationManager().setLocationEnabledForUser(locationEnabled, user);
|
||||||
|
|
||||||
// make a best effort to only show the notification if the admin is actually changing
|
// make a best effort to only show the notification if the admin is actually enabling
|
||||||
// something. this is subject to race conditions with settings changes, but those are
|
// location. this is subject to race conditions with settings changes, but those are
|
||||||
// unlikely to realistically interfere
|
// unlikely to realistically interfere
|
||||||
if (wasLocationEnabled != locationEnabled) {
|
if (locationEnabled && (wasLocationEnabled != locationEnabled)) {
|
||||||
showLocationSettingsChangedNotification(user);
|
showLocationSettingsEnabledNotification(user);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -11968,7 +11968,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
|||||||
.write();
|
.write();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showLocationSettingsChangedNotification(UserHandle user) {
|
private void showLocationSettingsEnabledNotification(UserHandle user) {
|
||||||
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)
|
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)
|
||||||
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
// Fill the component explicitly to prevent the PendingIntent from being intercepted
|
// Fill the component explicitly to prevent the PendingIntent from being intercepted
|
||||||
@@ -12100,8 +12100,11 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
|||||||
saveSettingsLocked(callingUserId);
|
saveSettingsLocked(callingUserId);
|
||||||
}
|
}
|
||||||
mInjector.settingsSecurePutStringForUser(setting, value, callingUserId);
|
mInjector.settingsSecurePutStringForUser(setting, value, callingUserId);
|
||||||
if (setting.equals(Settings.Secure.LOCATION_MODE)) {
|
// Notify the user if it's the location mode setting that's been set, to any value
|
||||||
showLocationSettingsChangedNotification(UserHandle.of(callingUserId));
|
// 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