Merge "Fix include location data to check for coarse location first." into tm-dev am: f8e43432fd

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

Change-Id: I4de37ecec9c1a035ff88347495b302d4a0a133ba
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2022-04-01 23:49:34 +00:00
committed by Automerger Merge Worker
2 changed files with 15 additions and 25 deletions

View File

@@ -1036,12 +1036,6 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
callingFeatureId, callback, eventList, notifyNow, subId);
}
private void listen(String callingPackage, @Nullable String callingFeatureId,
IPhoneStateListener callback, Set<Integer> events, boolean notifyNow, int subId) {
listen(false, false, callingPackage,
callingFeatureId, callback, events, notifyNow, subId);
}
private void listen(boolean renounceFineLocationAccess,
boolean renounceCoarseLocationAccess, String callingPackage,
@Nullable String callingFeatureId, IPhoneStateListener callback,

View File

@@ -12190,15 +12190,7 @@ public class TelephonyManager {
})
@RequiresFeature(PackageManager.FEATURE_TELEPHONY_RADIO_ACCESS)
public @Nullable ServiceState getServiceState() {
if (getRenouncedPermissions().contains(Manifest.permission.ACCESS_FINE_LOCATION)) {
if (getRenouncedPermissions().contains(Manifest.permission.ACCESS_COARSE_LOCATION)) {
return getServiceState(INCLUDE_LOCATION_DATA_NONE);
} else {
return getServiceState(INCLUDE_LOCATION_DATA_COARSE);
}
}
return getServiceState(INCLUDE_LOCATION_DATA_FINE);
return getServiceState(getLocationData());
}
/**
@@ -16189,17 +16181,21 @@ public class TelephonyManager {
*/
public void registerTelephonyCallback(@NonNull @CallbackExecutor Executor executor,
@NonNull TelephonyCallback callback) {
if (getRenouncedPermissions().contains(Manifest.permission.ACCESS_FINE_LOCATION)) {
if (getRenouncedPermissions().contains(Manifest.permission.ACCESS_COARSE_LOCATION)) {
registerTelephonyCallback(INCLUDE_LOCATION_DATA_NONE, executor, callback);
return;
} else {
registerTelephonyCallback(INCLUDE_LOCATION_DATA_COARSE, executor, callback);
return;
}
}
registerTelephonyCallback(getLocationData(), executor, callback);
}
registerTelephonyCallback(INCLUDE_LOCATION_DATA_FINE, executor, callback);
private int getLocationData() {
boolean renounceCoarseLocation =
getRenouncedPermissions().contains(Manifest.permission.ACCESS_COARSE_LOCATION);
boolean renounceFineLocation =
getRenouncedPermissions().contains(Manifest.permission.ACCESS_FINE_LOCATION);
if (renounceCoarseLocation) {
return INCLUDE_LOCATION_DATA_NONE;
} else if (renounceFineLocation) {
return INCLUDE_LOCATION_DATA_COARSE;
} else {
return INCLUDE_LOCATION_DATA_FINE;
}
}
/** @hide */