diff options
| author | 2020-07-10 06:17:03 +0000 | |
|---|---|---|
| committer | 2020-07-10 06:17:03 +0000 | |
| commit | 02d2922f848def99fa17d8367c32d60d48eb24b7 (patch) | |
| tree | 1599de6a3d5fc176579acab127256d220c313ce1 | |
| parent | d7912748cccd48540eab65547cad4c727587dccd (diff) | |
| parent | 2fc2a3b3a38d784588de85685cd5ea24a66b0672 (diff) | |
Merge "Revert "Attribute data usage to 5G for 5G non-standalone mode"" am: 13c5ee8313 am: 56df7e2c1a am: add913a0ae am: d53e749e8a am: 2fc2a3b3a3
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1360157
Change-Id: I6dfb1ec8e41adf39dce5361389e471e83425bc4e
| -rw-r--r-- | services/core/java/com/android/server/net/NetworkStatsSubscriptionsMonitor.java | 15 | ||||
| -rw-r--r-- | tests/net/java/com/android/server/net/NetworkStatsSubscriptionsMonitorTest.java | 52 |
2 files changed, 2 insertions, 65 deletions
diff --git a/services/core/java/com/android/server/net/NetworkStatsSubscriptionsMonitor.java b/services/core/java/com/android/server/net/NetworkStatsSubscriptionsMonitor.java index 5c45e6767e74..db553ee79555 100644 --- a/services/core/java/com/android/server/net/NetworkStatsSubscriptionsMonitor.java +++ b/services/core/java/com/android/server/net/NetworkStatsSubscriptionsMonitor.java @@ -22,7 +22,6 @@ import android.annotation.NonNull; import android.content.Context; import android.os.Looper; import android.telephony.Annotation; -import android.telephony.NetworkRegistrationInfo; import android.telephony.PhoneStateListener; import android.telephony.ServiceState; import android.telephony.SubscriptionManager; @@ -197,19 +196,7 @@ public class NetworkStatsSubscriptionsMonitor extends @Override public void onServiceStateChanged(@NonNull ServiceState ss) { - // In 5G SA (Stand Alone) mode, the primary cell itself will be 5G hence telephony - // would report RAT = 5G_NR. - // However, in 5G NSA (Non Stand Alone) mode, the primary cell is still LTE and - // network allocates a secondary 5G cell so telephony reports RAT = LTE along with - // NR state as connected. In such case, attributes the data usage to NR. - // See b/160727498. - final boolean is5GNsa = (ss.getDataNetworkType() == TelephonyManager.NETWORK_TYPE_LTE - || ss.getDataNetworkType() == TelephonyManager.NETWORK_TYPE_LTE_CA) - && ss.getNrState() == NetworkRegistrationInfo.NR_STATE_CONNECTED; - - final int networkType = - (is5GNsa ? TelephonyManager.NETWORK_TYPE_NR : ss.getDataNetworkType()); - + final int networkType = ss.getDataNetworkType(); final int collapsedRatType = getCollapsedRatType(networkType); if (collapsedRatType == mLastCollapsedRatType) return; diff --git a/tests/net/java/com/android/server/net/NetworkStatsSubscriptionsMonitorTest.java b/tests/net/java/com/android/server/net/NetworkStatsSubscriptionsMonitorTest.java index 9adbf21a1219..16fed39bcc74 100644 --- a/tests/net/java/com/android/server/net/NetworkStatsSubscriptionsMonitorTest.java +++ b/tests/net/java/com/android/server/net/NetworkStatsSubscriptionsMonitorTest.java @@ -17,7 +17,6 @@ package com.android.server.net; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyInt; @@ -32,7 +31,6 @@ import static org.mockito.Mockito.when; import android.annotation.NonNull; import android.content.Context; import android.os.test.TestLooper; -import android.telephony.NetworkRegistrationInfo; import android.telephony.PhoneStateListener; import android.telephony.ServiceState; import android.telephony.SubscriptionManager; @@ -63,6 +61,7 @@ public final class NetworkStatsSubscriptionsMonitorTest { private static final String TEST_IMSI3 = "466929999999999"; @Mock private Context mContext; + @Mock private PhoneStateListener mPhoneStateListener; @Mock private SubscriptionManager mSubscriptionManager; @Mock private TelephonyManager mTelephonyManager; @Mock private NetworkStatsSubscriptionsMonitor.Delegate mDelegate; @@ -216,53 +215,4 @@ public final class NetworkStatsSubscriptionsMonitorTest { verify(mTelephonyManager, times(2)).listen(any(), eq(PhoneStateListener.LISTEN_NONE)); assertRatTypeChangedForSub(TEST_IMSI1, TelephonyManager.NETWORK_TYPE_UNKNOWN); } - - @Test - public void test5g() { - mMonitor.start(); - // Insert sim1, verify RAT type is NETWORK_TYPE_UNKNOWN, and never get any callback - // before changing RAT type. Also capture listener for later use. - addTestSub(TEST_SUBID1, TEST_IMSI1); - assertRatTypeNotChangedForSub(TEST_IMSI1, TelephonyManager.NETWORK_TYPE_UNKNOWN); - final ArgumentCaptor<RatTypeListener> ratTypeListenerCaptor = - ArgumentCaptor.forClass(RatTypeListener.class); - verify(mTelephonyManager, times(1)).listen(ratTypeListenerCaptor.capture(), - eq(PhoneStateListener.LISTEN_SERVICE_STATE)); - final RatTypeListener listener = CollectionUtils - .find(ratTypeListenerCaptor.getAllValues(), it -> it.getSubId() == TEST_SUBID1); - assertNotNull(listener); - - // Set RAT type to 5G NSA (non-standalone) mode, verify the monitor outputs NETWORK_TYPE_NR. - final ServiceState serviceState = mock(ServiceState.class); - when(serviceState.getDataNetworkType()).thenReturn(TelephonyManager.NETWORK_TYPE_LTE); - when(serviceState.getNrState()).thenReturn(NetworkRegistrationInfo.NR_STATE_CONNECTED); - listener.onServiceStateChanged(serviceState); - assertRatTypeChangedForSub(TEST_IMSI1, TelephonyManager.NETWORK_TYPE_NR); - reset(mDelegate); - - // Set RAT type to LTE without NR connected, the RAT type should be downgraded to LTE. - when(serviceState.getNrState()).thenReturn(NetworkRegistrationInfo.NR_STATE_NONE); - listener.onServiceStateChanged(serviceState); - assertRatTypeChangedForSub(TEST_IMSI1, TelephonyManager.NETWORK_TYPE_LTE); - reset(mDelegate); - - // Verify NR connected with other RAT type does not take effect. - when(serviceState.getDataNetworkType()).thenReturn(TelephonyManager.NETWORK_TYPE_UMTS); - when(serviceState.getNrState()).thenReturn(NetworkRegistrationInfo.NR_STATE_CONNECTED); - listener.onServiceStateChanged(serviceState); - assertRatTypeChangedForSub(TEST_IMSI1, TelephonyManager.NETWORK_TYPE_UMTS); - reset(mDelegate); - - // Set RAT type to 5G standalone mode, the RAT type should be NR. - setRatTypeForSub(ratTypeListenerCaptor.getAllValues(), TEST_SUBID1, - TelephonyManager.NETWORK_TYPE_NR); - assertRatTypeChangedForSub(TEST_IMSI1, TelephonyManager.NETWORK_TYPE_NR); - reset(mDelegate); - - // Set NR state to none in standalone mode does not change anything. - when(serviceState.getDataNetworkType()).thenReturn(TelephonyManager.NETWORK_TYPE_NR); - when(serviceState.getNrState()).thenReturn(NetworkRegistrationInfo.NR_STATE_NONE); - listener.onServiceStateChanged(serviceState); - assertRatTypeNotChangedForSub(TEST_IMSI1, TelephonyManager.NETWORK_TYPE_NR); - } } |