Merge "Make sanitizeLocationInfo System Api."

This commit is contained in:
Xiangyu/Malcolm Chen
2020-01-02 18:30:05 +00:00
committed by Android (Google) Code Review
3 changed files with 17 additions and 5 deletions

View File

@@ -9763,6 +9763,7 @@ package android.telephony {
}
public class ServiceState implements android.os.Parcelable {
method @NonNull public android.telephony.ServiceState createLocationInfoSanitizedCopy(boolean);
method public int getDataRegistrationState();
method @Nullable public android.telephony.NetworkRegistrationInfo getNetworkRegistrationInfo(int, int);
method @NonNull public java.util.List<android.telephony.NetworkRegistrationInfo> getNetworkRegistrationInfoList();

View File

@@ -785,9 +785,11 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
if (checkFineLocationAccess(r, Build.VERSION_CODES.Q)) {
r.callback.onServiceStateChanged(rawSs);
} else if (checkCoarseLocationAccess(r, Build.VERSION_CODES.Q)) {
r.callback.onServiceStateChanged(rawSs.sanitizeLocationInfo(false));
r.callback.onServiceStateChanged(
rawSs.createLocationInfoSanitizedCopy(false));
} else {
r.callback.onServiceStateChanged(rawSs.sanitizeLocationInfo(true));
r.callback.onServiceStateChanged(
rawSs.createLocationInfoSanitizedCopy(true));
}
} catch (RemoteException ex) {
remove(r.binder);
@@ -1142,9 +1144,9 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
if (checkFineLocationAccess(r, Build.VERSION_CODES.Q)) {
stateToSend = new ServiceState(state);
} else if (checkCoarseLocationAccess(r, Build.VERSION_CODES.Q)) {
stateToSend = state.sanitizeLocationInfo(false);
stateToSend = state.createLocationInfoSanitizedCopy(false);
} else {
stateToSend = state.sanitizeLocationInfo(true);
stateToSend = state.createLocationInfoSanitizedCopy(true);
}
if (DBG) {
log("notifyServiceStateForSubscriber: callback.onSSC r=" + r

View File

@@ -1950,9 +1950,18 @@ public class ServiceState implements Parcelable {
* Returns a copy of self with location-identifying information removed.
* Always clears the NetworkRegistrationInfo's CellIdentity fields, but if removeCoarseLocation
* is true, clears other info as well.
*
* @param removeCoarseLocation Whether to also remove coarse location information.
* if false, it only clears fine location information such as
* NetworkRegistrationInfo's CellIdentity fields; If true, it will
* also remove other location information such as operator's MCC
* and MNC.
* @return the copied ServiceState with location info sanitized.
* @hide
*/
public ServiceState sanitizeLocationInfo(boolean removeCoarseLocation) {
@SystemApi
@NonNull
public ServiceState createLocationInfoSanitizedCopy(boolean removeCoarseLocation) {
ServiceState state = new ServiceState(this);
synchronized (state.mNetworkRegistrationInfos) {
List<NetworkRegistrationInfo> networkRegistrationInfos =