Merge "Workaround undocumented AppOps behavior" into sc-v2-dev am: ef968723a5

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

Change-Id: I5f488b93d7f84298afc9874f179eefa2bb4920b4
This commit is contained in:
TreeHugger Robot
2022-01-07 23:21:19 +00:00
committed by Automerger Merge Worker
4 changed files with 16 additions and 14 deletions

View File

@@ -131,8 +131,8 @@ public class GeofenceManager extends
return mPermitted; return mPermitted;
} }
boolean onLocationPermissionsChanged(String packageName) { boolean onLocationPermissionsChanged(@Nullable String packageName) {
if (getIdentity().getPackageName().equals(packageName)) { if (packageName == null || getIdentity().getPackageName().equals(packageName)) {
return onLocationPermissionsChanged(); return onLocationPermissionsChanged();
} }
@@ -242,7 +242,7 @@ public class GeofenceManager extends
mLocationPermissionsListener = mLocationPermissionsListener =
new LocationPermissionsHelper.LocationPermissionsListener() { new LocationPermissionsHelper.LocationPermissionsListener() {
@Override @Override
public void onLocationPermissionsChanged(String packageName) { public void onLocationPermissionsChanged(@Nullable String packageName) {
GeofenceManager.this.onLocationPermissionsChanged(packageName); GeofenceManager.this.onLocationPermissionsChanged(packageName);
} }
@@ -494,7 +494,7 @@ public class GeofenceManager extends
updateRegistrations(registration -> registration.getIdentity().getUserId() == userId); updateRegistrations(registration -> registration.getIdentity().getUserId() == userId);
} }
void onLocationPermissionsChanged(String packageName) { void onLocationPermissionsChanged(@Nullable String packageName) {
updateRegistrations(registration -> registration.onLocationPermissionsChanged(packageName)); updateRegistrations(registration -> registration.onLocationPermissionsChanged(packageName));
} }

View File

@@ -119,8 +119,8 @@ public abstract class GnssListenerMultiplexer<TRequest, TListener extends IInter
*/ */
protected void onGnssListenerUnregister() {} protected void onGnssListenerUnregister() {}
boolean onLocationPermissionsChanged(String packageName) { boolean onLocationPermissionsChanged(@Nullable String packageName) {
if (getIdentity().getPackageName().equals(packageName)) { if (packageName == null || getIdentity().getPackageName().equals(packageName)) {
return onLocationPermissionsChanged(); return onLocationPermissionsChanged();
} }
@@ -197,7 +197,7 @@ public abstract class GnssListenerMultiplexer<TRequest, TListener extends IInter
mLocationPermissionsListener = mLocationPermissionsListener =
new LocationPermissionsHelper.LocationPermissionsListener() { new LocationPermissionsHelper.LocationPermissionsListener() {
@Override @Override
public void onLocationPermissionsChanged(String packageName) { public void onLocationPermissionsChanged(@Nullable String packageName) {
GnssListenerMultiplexer.this.onLocationPermissionsChanged(packageName); GnssListenerMultiplexer.this.onLocationPermissionsChanged(packageName);
} }
@@ -390,7 +390,7 @@ public abstract class GnssListenerMultiplexer<TRequest, TListener extends IInter
updateRegistrations(registration -> registration.getIdentity().getUserId() == userId); updateRegistrations(registration -> registration.getIdentity().getUserId() == userId);
} }
private void onLocationPermissionsChanged(String packageName) { private void onLocationPermissionsChanged(@Nullable String packageName) {
updateRegistrations(registration -> registration.onLocationPermissionsChanged(packageName)); updateRegistrations(registration -> registration.onLocationPermissionsChanged(packageName));
} }

View File

@@ -18,6 +18,7 @@ package com.android.server.location.injector;
import static com.android.server.location.LocationPermissions.PERMISSION_NONE; import static com.android.server.location.LocationPermissions.PERMISSION_NONE;
import android.annotation.Nullable;
import android.location.util.identity.CallerIdentity; import android.location.util.identity.CallerIdentity;
import com.android.server.location.LocationPermissions; import com.android.server.location.LocationPermissions;
@@ -36,9 +37,10 @@ public abstract class LocationPermissionsHelper {
public interface LocationPermissionsListener { public interface LocationPermissionsListener {
/** /**
* Called when something has changed about location permissions for the given package. * Called when something has changed about location permissions for the given package. A
* null package indicates this affects every package.
*/ */
void onLocationPermissionsChanged(String packageName); void onLocationPermissionsChanged(@Nullable String packageName);
/** /**
* Called when something has changed about location permissions for the given uid. * Called when something has changed about location permissions for the given uid.

View File

@@ -528,8 +528,8 @@ public class LocationProviderManager extends
} }
@GuardedBy("mLock") @GuardedBy("mLock")
final boolean onLocationPermissionsChanged(String packageName) { final boolean onLocationPermissionsChanged(@Nullable String packageName) {
if (getIdentity().getPackageName().equals(packageName)) { if (packageName == null || getIdentity().getPackageName().equals(packageName)) {
return onLocationPermissionsChanged(); return onLocationPermissionsChanged();
} }
@@ -1373,7 +1373,7 @@ public class LocationProviderManager extends
private final LocationPermissionsListener mLocationPermissionsListener = private final LocationPermissionsListener mLocationPermissionsListener =
new LocationPermissionsListener() { new LocationPermissionsListener() {
@Override @Override
public void onLocationPermissionsChanged(String packageName) { public void onLocationPermissionsChanged(@Nullable String packageName) {
LocationProviderManager.this.onLocationPermissionsChanged(packageName); LocationProviderManager.this.onLocationPermissionsChanged(packageName);
} }
@@ -2366,7 +2366,7 @@ public class LocationProviderManager extends
} }
} }
private void onLocationPermissionsChanged(String packageName) { private void onLocationPermissionsChanged(@Nullable String packageName) {
synchronized (mLock) { synchronized (mLock) {
updateRegistrations( updateRegistrations(
registration -> registration.onLocationPermissionsChanged(packageName)); registration -> registration.onLocationPermissionsChanged(packageName));