Merge "Changed behavior of DPMS.setLocationEnabled() for automotive." into sc-dev am: cf2f6ff89a

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14525263

Change-Id: I6c73265fa86148bda8fc44047fa6c6b86b6023cb
This commit is contained in:
TreeHugger Robot
2021-05-19 12:31:42 +00:00
committed by Automerger Merge Worker
2 changed files with 7 additions and 7 deletions

View File

@@ -10369,11 +10369,11 @@ public class DevicePolicyManager {
/**
* Called by device owners to set the user's global location setting.
*
* <p><b>Note: </b> this call is ignored on
* {@link android.content.pm.PackageManager#FEATURE_AUTOMOTIVE automotive builds}.
*
* @param admin Which {@link DeviceAdminReceiver} this request is associated with
* @param locationEnabled whether location should be enabled or disabled
* @param locationEnabled whether location should be enabled or disabled. <b>Note: </b> on
* {@link android.content.pm.PackageManager#FEATURE_AUTOMOTIVE automotive builds}, calls to
* disable will be ignored.
* @throws SecurityException if {@code admin} is not a device owner.
*/
public void setLocationEnabled(@NonNull ComponentName admin, boolean locationEnabled) {

View File

@@ -11987,8 +11987,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
Preconditions.checkCallAuthorization(isDeviceOwner(caller));
UserHandle userHandle = caller.getUserHandle();
if (mIsAutomotive) {
Slogf.v(LOG_TAG, "setLocationEnabled(%s, %b): ignoring for user %s on automotive build",
if (mIsAutomotive && !locationEnabled) {
Slogf.i(LOG_TAG, "setLocationEnabled(%s, %b): ignoring for user %s on automotive build",
who.flattenToShortString(), locationEnabled, userHandle);
return;
}
@@ -11996,8 +11996,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
mInjector.binderWithCleanCallingIdentity(() -> {
boolean wasLocationEnabled = mInjector.getLocationManager().isLocationEnabledForUser(
userHandle);
Slogf.v(LOG_TAG, "calling locationManager.setLocationEnabledForUser(%b, %s)",
locationEnabled, userHandle);
Slogf.v(LOG_TAG, "calling locationMgr.setLocationEnabledForUser(%b, %s) when it was %b",
locationEnabled, userHandle, wasLocationEnabled);
mInjector.getLocationManager().setLocationEnabledForUser(locationEnabled, userHandle);
// make a best effort to only show the notification if the admin is actually enabling