diff options
Diffstat (limited to 'src/java/com/android/internal/telephony/NetworkScanRequestTracker.java')
-rw-r--r-- | src/java/com/android/internal/telephony/NetworkScanRequestTracker.java | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/java/com/android/internal/telephony/NetworkScanRequestTracker.java b/src/java/com/android/internal/telephony/NetworkScanRequestTracker.java index 75675669c1..c09f8fb91f 100644 --- a/src/java/com/android/internal/telephony/NetworkScanRequestTracker.java +++ b/src/java/com/android/internal/telephony/NetworkScanRequestTracker.java @@ -42,7 +42,9 @@ import android.telephony.SubscriptionInfo; import android.telephony.TelephonyScanManager; import android.util.Log; +import com.android.internal.annotations.VisibleForTesting; import com.android.internal.telephony.subscription.SubscriptionManagerService; +import com.android.internal.util.ArrayUtils; import java.util.Collection; import java.util.List; @@ -131,7 +133,7 @@ public final class NetworkScanRequestTracker { } private boolean isValidScan(NetworkScanRequestInfo nsri) { - if (nsri.mRequest == null || nsri.mRequest.getSpecifiers() == null) { + if (nsri.mRequest == null || ArrayUtils.isEmpty(nsri.mRequest.getSpecifiers())) { return false; } if (nsri.mRequest.getSpecifiers().length > NetworkScanRequest.MAX_RADIO_ACCESS_NETWORKS) { @@ -251,9 +253,10 @@ public final class NetworkScanRequestTracker { /** * Tracks info about the radio network scan. * - * Also used to notice when the calling process dies so we can self-expire. + * Also used to notice when the calling process dies, so we can self-expire. */ - class NetworkScanRequestInfo implements IBinder.DeathRecipient { + @VisibleForTesting + public class NetworkScanRequestInfo implements IBinder.DeathRecipient { private final NetworkScanRequest mRequest; private final Messenger mMessenger; private final IBinder mBinder; @@ -265,8 +268,9 @@ public final class NetworkScanRequestTracker { private final String mCallingPackage; private boolean mIsBinderDead; - NetworkScanRequestInfo(NetworkScanRequest r, Messenger m, IBinder b, int id, Phone phone, - int callingUid, int callingPid, String callingPackage, + @VisibleForTesting + public NetworkScanRequestInfo(NetworkScanRequest r, Messenger m, IBinder b, int id, + Phone phone, int callingUid, int callingPid, String callingPackage, boolean renounceFineLocationAccess) { super(); mRequest = r; @@ -445,6 +449,10 @@ public final class NetworkScanRequestTracker { Log.e(TAG, "EVENT_RECEIVE_NETWORK_SCAN_RESULT: nsri is null"); return; } + if (nsri != mLiveRequestInfo) { + Log.e(TAG, "EVENT_RECEIVE_NETWORK_SCAN_RESULT received for inactive scan"); + return; + } LocationAccessPolicy.LocationPermissionQuery locationQuery = new LocationAccessPolicy.LocationPermissionQuery.Builder() .setCallingPackage(nsri.mCallingPackage) |