summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAswin Sankar <apsankar@google.com>2023-05-25 23:14:37 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-05-25 23:14:37 +0000
commit0b5f2f86b2a7a5e14b3399543b4224ce0b4c5603 (patch)
tree55b6e0d9a13419325271b4b90a40926ad37f440a
parent1bcf45c0b244973b43a2cef379fba6250da460b0 (diff)
parent05afdc7987832db83bcfb04d99aef12d2de78b84 (diff)
downloadIwlan-0b5f2f86b2a7a5e14b3399543b4224ce0b4c5603.tar.gz
updateNetwork(): Avoid NPE for null Network object. am: 05afdc7987
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/services/Iwlan/+/23355117 Change-Id: Ic7e115f8b9054d0ced0bff77d27bf487cbe6f6e8 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--src/com/google/android/iwlan/IwlanDataService.java5
-rw-r--r--test/com/google/android/iwlan/IwlanDataServiceTest.java25
2 files changed, 28 insertions, 2 deletions
diff --git a/src/com/google/android/iwlan/IwlanDataService.java b/src/com/google/android/iwlan/IwlanDataService.java
index 239713d..0d564ab 100644
--- a/src/com/google/android/iwlan/IwlanDataService.java
+++ b/src/com/google/android/iwlan/IwlanDataService.java
@@ -81,6 +81,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.LongSummaryStatistics;
import java.util.Map;
+import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
public class IwlanDataService extends DataService {
@@ -956,14 +957,14 @@ public class IwlanDataService extends DataService {
}
private void updateNetwork(
- @NonNull Network network, @Nullable LinkProperties linkProperties) {
+ @Nullable Network network, @Nullable LinkProperties linkProperties) {
if (mIwlanDataService.isNetworkConnected(
isActiveDataOnOtherSub(getSlotIndex()),
IwlanHelper.isCrossSimCallingEnabled(mContext, getSlotIndex()))) {
getTunnelManager().updateNetwork(network, linkProperties);
}
- if (network.equals(sNetwork)) {
+ if (Objects.equals(network, sNetwork)) {
return;
}
for (Map.Entry<String, TunnelState> entry : mTunnelStateForApn.entrySet()) {
diff --git a/test/com/google/android/iwlan/IwlanDataServiceTest.java b/test/com/google/android/iwlan/IwlanDataServiceTest.java
index 6862c97..c4549df 100644
--- a/test/com/google/android/iwlan/IwlanDataServiceTest.java
+++ b/test/com/google/android/iwlan/IwlanDataServiceTest.java
@@ -17,6 +17,7 @@
package com.google.android.iwlan;
import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
+import static android.net.NetworkCapabilities.TRANSPORT_ETHERNET;
import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
@@ -535,6 +536,30 @@ public class IwlanDataServiceTest {
}
@Test
+ public void testOnCrossSimCallingEnable_doNotUpdateTunnelManagerIfNoNetwork() throws Exception {
+ when(mMockImsMmTelManager.isCrossSimCallingEnabled()).thenReturn(true);
+ mIwlanDataService
+ .mIwlanDataServiceHandler
+ .obtainMessage(
+ IwlanEventListener.CROSS_SIM_CALLING_ENABLE_EVENT,
+ DEFAULT_SLOT_INDEX,
+ 0 /* unused */)
+ .sendToTarget();
+ mTestLooper.dispatchAll();
+ verify(mMockEpdgTunnelManager, never())
+ .updateNetwork(any(Network.class), any(LinkProperties.class));
+ }
+
+ @Test
+ public void testOnEthernetConnection_doNotUpdateTunnelManager() throws Exception {
+ Network newNetwork = createMockNetwork(mLinkProperties);
+ onSystemDefaultNetworkConnected(
+ newNetwork, mLinkProperties, TRANSPORT_ETHERNET, DEFAULT_SUB_INDEX);
+ verify(mMockEpdgTunnelManager, never())
+ .updateNetwork(eq(newNetwork), any(LinkProperties.class));
+ }
+
+ @Test
public void testAddDuplicateDataServiceProviderThrows() throws Exception {
when(mMockIwlanDataServiceProvider.getSlotIndex()).thenReturn(DEFAULT_SLOT_INDEX);
assertThrows(