Merge "Skip notify celllocation of not really changed." am: 87a7929958 am: 96e61153a1 am: 584c1588a6 am: 217369162b

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

Change-Id: Id74634de22b8580a1b73bb5709195e0cae2f8f59
This commit is contained in:
Meng Wang
2020-09-14 22:41:13 +00:00
committed by Automerger Merge Worker

View File

@@ -103,6 +103,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Objects;
/**
* Since phone process can be restarted, this class provides a centralized place
@@ -1828,30 +1829,26 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
}
@Override
public void notifyCellLocationForSubscriber(int subId, CellIdentity cellLocation) {
public void notifyCellLocationForSubscriber(int subId, CellIdentity cellIdentity) {
log("notifyCellLocationForSubscriber: subId=" + subId
+ " cellLocation=" + cellLocation);
+ " cellIdentity=" + cellIdentity);
if (!checkNotifyPermission("notifyCellLocation()")) {
return;
}
if (VDBG) {
log("notifyCellLocationForSubscriber: subId=" + subId
+ " cellLocation=" + cellLocation);
}
int phoneId = getPhoneIdFromSubId(subId);
synchronized (mRecords) {
if (validatePhoneId(phoneId)) {
mCellIdentity[phoneId] = cellLocation;
if (validatePhoneId(phoneId) && !Objects.equals(cellIdentity, mCellIdentity[phoneId])) {
mCellIdentity[phoneId] = cellIdentity;
for (Record r : mRecords) {
if (validateEventsAndUserLocked(r, PhoneStateListener.LISTEN_CELL_LOCATION) &&
idMatch(r.subId, subId, phoneId) &&
checkFineLocationAccess(r, Build.VERSION_CODES.Q)) {
try {
if (DBG_LOC) {
log("notifyCellLocation: cellLocation=" + cellLocation
log("notifyCellLocation: cellIdentity=" + cellIdentity
+ " r=" + r);
}
r.callback.onCellLocationChanged(cellLocation);
r.callback.onCellLocationChanged(cellIdentity);
} catch (RemoteException ex) {
mRemoveList.add(r.binder);
}