aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-12-02 00:22:15 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-12-02 00:22:15 +0000
commit3ff7f409ed2c6a862a7490a10eb7290b01958528 (patch)
tree43d87f6149af5c54d21e7271f87d572bbff64e72
parent7a685485c191aba3de26998e95185e0e2a7e3bd3 (diff)
parent0ca2a0007a9f7be0f4b1d0c74ac25382b1bc94a5 (diff)
downloadtelephony-3ff7f409ed2c6a862a7490a10eb7290b01958528.tar.gz
Snap for 9358956 from 0ca2a0007a9f7be0f4b1d0c74ac25382b1bc94a5 to tm-qpr2-release
Change-Id: I939541605aaba746cc36c8e61d58248ffa816ee1
-rw-r--r--src/java/com/android/internal/telephony/metrics/ImsStats.java1
-rw-r--r--src/java/com/android/internal/telephony/metrics/ServiceStateStats.java40
-rw-r--r--tests/telephonytests/src/com/android/internal/telephony/metrics/ServiceStateStatsTest.java30
-rw-r--r--tests/telephonytests/src/com/android/internal/telephony/metrics/VoiceCallSessionStatsTest.java59
4 files changed, 106 insertions, 24 deletions
diff --git a/src/java/com/android/internal/telephony/metrics/ImsStats.java b/src/java/com/android/internal/telephony/metrics/ImsStats.java
index d93210c1fb..427595ff8c 100644
--- a/src/java/com/android/internal/telephony/metrics/ImsStats.java
+++ b/src/java/com/android/internal/telephony/metrics/ImsStats.java
@@ -369,7 +369,6 @@ public class ImsStats {
* TelephonyManager#NETWORK_TYPE_UNKNOWN} if there isn't any.
*/
@NetworkType
- @VisibleForTesting
public synchronized int getImsVoiceRadioTech() {
if (mLastRegistrationStats == null
|| !mLastAvailableFeatures.isCapable(CAPABILITY_TYPE_VOICE)) {
diff --git a/src/java/com/android/internal/telephony/metrics/ServiceStateStats.java b/src/java/com/android/internal/telephony/metrics/ServiceStateStats.java
index 42dc55de3c..263399ed69 100644
--- a/src/java/com/android/internal/telephony/metrics/ServiceStateStats.java
+++ b/src/java/com/android/internal/telephony/metrics/ServiceStateStats.java
@@ -16,8 +16,6 @@
package com.android.internal.telephony.metrics;
-import static com.android.internal.telephony.TelephonyStatsLog.VOICE_CALL_SESSION__BEARER_AT_END__CALL_BEARER_CS;
-
import android.annotation.Nullable;
import android.os.SystemClock;
import android.telephony.AccessNetworkConstants;
@@ -27,6 +25,10 @@ import android.telephony.NetworkRegistrationInfo;
import android.telephony.ServiceState;
import android.telephony.TelephonyManager;
+import static com.android.internal.telephony.TelephonyStatsLog.VOICE_CALL_SESSION__BEARER_AT_END__CALL_BEARER_CS;
+import static com.android.internal.telephony.TelephonyStatsLog.VOICE_CALL_SESSION__BEARER_AT_END__CALL_BEARER_IMS;
+import static com.android.internal.telephony.TelephonyStatsLog.VOICE_CALL_SESSION__BEARER_AT_END__CALL_BEARER_UNKNOWN;
+
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
@@ -241,22 +243,7 @@ public class ServiceStateStats {
* despite that the device may have emergency service over a certain RAT.
*/
static @NetworkType int getVoiceRat(Phone phone, @Nullable ServiceState state) {
- if (state == null) {
- return TelephonyManager.NETWORK_TYPE_UNKNOWN;
- }
- ImsPhone imsPhone = (ImsPhone) phone.getImsPhone();
- if (imsPhone != null) {
- @NetworkType int imsVoiceRat = imsPhone.getImsStats().getImsVoiceRadioTech();
- if (imsVoiceRat != TelephonyManager.NETWORK_TYPE_UNKNOWN) {
- // If IMS is over WWAN but WWAN PS is not in-service, then IMS RAT is invalid
- boolean isImsVoiceRatValid =
- (imsVoiceRat == TelephonyManager.NETWORK_TYPE_IWLAN
- || getRat(state, NetworkRegistrationInfo.DOMAIN_PS)
- != TelephonyManager.NETWORK_TYPE_UNKNOWN);
- return isImsVoiceRatValid ? imsVoiceRat : TelephonyManager.NETWORK_TYPE_UNKNOWN;
- }
- }
- return getRat(state, NetworkRegistrationInfo.DOMAIN_CS);
+ return getVoiceRat(phone, state, VOICE_CALL_SESSION__BEARER_AT_END__CALL_BEARER_UNKNOWN);
}
/**
@@ -265,6 +252,7 @@ public class ServiceStateStats {
* <p>If the device is not in service, {@code TelephonyManager.NETWORK_TYPE_UNKNOWN} is returned
* despite that the device may have emergency service over a certain RAT.
*/
+ @VisibleForTesting public
static @NetworkType int getVoiceRat(Phone phone, @Nullable ServiceState state, int bearer) {
if (state == null) {
return TelephonyManager.NETWORK_TYPE_UNKNOWN;
@@ -273,15 +261,22 @@ public class ServiceStateStats {
if (bearer != VOICE_CALL_SESSION__BEARER_AT_END__CALL_BEARER_CS && imsPhone != null) {
@NetworkType int imsVoiceRat = imsPhone.getImsStats().getImsVoiceRadioTech();
if (imsVoiceRat != TelephonyManager.NETWORK_TYPE_UNKNOWN) {
- // If IMS is over WWAN but WWAN PS is not in-service, then IMS RAT is invalid
+ // If IMS is registered over WWAN but WWAN PS is not in service,
+ // fallback to WWAN CS RAT
boolean isImsVoiceRatValid =
(imsVoiceRat == TelephonyManager.NETWORK_TYPE_IWLAN
|| getRat(state, NetworkRegistrationInfo.DOMAIN_PS)
!= TelephonyManager.NETWORK_TYPE_UNKNOWN);
- return isImsVoiceRatValid ? imsVoiceRat : TelephonyManager.NETWORK_TYPE_UNKNOWN;
+ if (isImsVoiceRatValid) {
+ return imsVoiceRat;
+ }
}
}
- return getRat(state, NetworkRegistrationInfo.DOMAIN_CS);
+ if (bearer == VOICE_CALL_SESSION__BEARER_AT_END__CALL_BEARER_IMS) {
+ return TelephonyManager.NETWORK_TYPE_UNKNOWN;
+ } else {
+ return getRat(state, NetworkRegistrationInfo.DOMAIN_CS);
+ }
}
/** Returns RAT used by WWAN if WWAN is in service. */
@@ -304,8 +299,7 @@ public class ServiceStateStats {
}
private static boolean isEndc(ServiceState state) {
- if (getRat(state, NetworkRegistrationInfo.DOMAIN_PS)
- != TelephonyManager.NETWORK_TYPE_LTE) {
+ if (getRat(state, NetworkRegistrationInfo.DOMAIN_PS) != TelephonyManager.NETWORK_TYPE_LTE) {
return false;
}
int nrState = state.getNrState();
diff --git a/tests/telephonytests/src/com/android/internal/telephony/metrics/ServiceStateStatsTest.java b/tests/telephonytests/src/com/android/internal/telephony/metrics/ServiceStateStatsTest.java
index 96db966e02..8406bc5cba 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/metrics/ServiceStateStatsTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/metrics/ServiceStateStatsTest.java
@@ -35,6 +35,10 @@ import android.telephony.ServiceState;
import android.telephony.TelephonyManager;
import android.test.suitebuilder.annotation.SmallTest;
+import static com.android.internal.telephony.TelephonyStatsLog.VOICE_CALL_SESSION__BEARER_AT_END__CALL_BEARER_CS;
+import static com.android.internal.telephony.TelephonyStatsLog.VOICE_CALL_SESSION__BEARER_AT_END__CALL_BEARER_IMS;
+import static com.android.internal.telephony.TelephonyStatsLog.VOICE_CALL_SESSION__BEARER_AT_END__CALL_BEARER_UNKNOWN;
+
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.TelephonyTest;
import com.android.internal.telephony.nano.PersistAtomsProto.CellularDataServiceSwitch;
@@ -149,6 +153,7 @@ public class ServiceStateStatsTest extends TelephonyTest {
doReturn(ServiceState.STATE_OUT_OF_SERVICE).when(mServiceState).getDataRegState();
doReturn(TelephonyManager.NETWORK_TYPE_UNKNOWN).when(mServiceState).getVoiceNetworkType();
doReturn(TelephonyManager.NETWORK_TYPE_UNKNOWN).when(mServiceState).getDataNetworkType();
+ mockWwanCsRat(TelephonyManager.NETWORK_TYPE_UNKNOWN);
mockWwanPsRat(TelephonyManager.NETWORK_TYPE_UNKNOWN);
mServiceStateStats.onServiceStateChanged(mServiceState);
@@ -248,6 +253,7 @@ public class ServiceStateStatsTest extends TelephonyTest {
doReturn(ServiceState.STATE_OUT_OF_SERVICE).when(mServiceState).getDataRegState();
doReturn(TelephonyManager.NETWORK_TYPE_UNKNOWN).when(mServiceState).getVoiceNetworkType();
doReturn(TelephonyManager.NETWORK_TYPE_UNKNOWN).when(mServiceState).getDataNetworkType();
+ mockWwanCsRat(TelephonyManager.NETWORK_TYPE_UNKNOWN);
mockWwanPsRat(TelephonyManager.NETWORK_TYPE_UNKNOWN);
doReturn(-1).when(mPhone).getCarrierId();
mServiceStateStats.onServiceStateChanged(mServiceState);
@@ -395,6 +401,7 @@ public class ServiceStateStatsTest extends TelephonyTest {
@SmallTest
public void onServiceStateChanged_differentDataRats() throws Exception {
doReturn(TelephonyManager.NETWORK_TYPE_UNKNOWN).when(mServiceState).getDataNetworkType();
+ mockWwanCsRat(TelephonyManager.NETWORK_TYPE_UNKNOWN);
mockWwanPsRat(TelephonyManager.NETWORK_TYPE_UNKNOWN);
mServiceStateStats.onServiceStateChanged(mServiceState);
@@ -881,6 +888,29 @@ public class ServiceStateStatsTest extends TelephonyTest {
verifyNoMoreInteractions(mPersistAtomsStorage);
}
+ @Test
+ @SmallTest
+ public void getVoiceRat_bearer() throws Exception {
+ mockWwanPsRat(TelephonyManager.NETWORK_TYPE_LTE);
+ mockWwanCsRat(TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_UNKNOWN).when(mImsStats).getImsVoiceRadioTech();
+ assertEquals(TelephonyManager.NETWORK_TYPE_UNKNOWN, mServiceStateStats.getVoiceRat(
+ mPhone, mServiceState, VOICE_CALL_SESSION__BEARER_AT_END__CALL_BEARER_IMS));
+ assertEquals(TelephonyManager.NETWORK_TYPE_LTE, mServiceStateStats.getVoiceRat(
+ mPhone, mServiceState, VOICE_CALL_SESSION__BEARER_AT_END__CALL_BEARER_CS));
+ assertEquals(TelephonyManager.NETWORK_TYPE_LTE, mServiceStateStats.getVoiceRat(
+ mPhone, mServiceState, VOICE_CALL_SESSION__BEARER_AT_END__CALL_BEARER_UNKNOWN));
+ mockWwanPsRat(TelephonyManager.NETWORK_TYPE_UMTS);
+ mockWwanCsRat(TelephonyManager.NETWORK_TYPE_UMTS);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ assertEquals(TelephonyManager.NETWORK_TYPE_LTE, mServiceStateStats.getVoiceRat(
+ mPhone, mServiceState, VOICE_CALL_SESSION__BEARER_AT_END__CALL_BEARER_IMS));
+ assertEquals(TelephonyManager.NETWORK_TYPE_UMTS, mServiceStateStats.getVoiceRat(
+ mPhone, mServiceState, VOICE_CALL_SESSION__BEARER_AT_END__CALL_BEARER_CS));
+ assertEquals(TelephonyManager.NETWORK_TYPE_LTE, mServiceStateStats.getVoiceRat(
+ mPhone, mServiceState, VOICE_CALL_SESSION__BEARER_AT_END__CALL_BEARER_UNKNOWN));
+ }
+
private void mockWwanPsRat(@NetworkType int rat) {
mockWwanRat(
NetworkRegistrationInfo.DOMAIN_PS,
diff --git a/tests/telephonytests/src/com/android/internal/telephony/metrics/VoiceCallSessionStatsTest.java b/tests/telephonytests/src/com/android/internal/telephony/metrics/VoiceCallSessionStatsTest.java
index fd6cbff1d3..14b14b51bb 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/metrics/VoiceCallSessionStatsTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/metrics/VoiceCallSessionStatsTest.java
@@ -217,6 +217,8 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void singleImsCall_moRejected() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ doReturn(mImsPhone).when(mPhone).getImsPhone();
doReturn(false).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
doReturn(0L).when(mImsConnection0).getDurationMillis();
@@ -272,6 +274,8 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void singleImsCall_moFailed() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ doReturn(mImsPhone).when(mPhone).getImsPhone();
doReturn(false).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
doReturn(0L).when(mImsConnection0).getDurationMillis();
@@ -313,6 +317,8 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void singleImsCall_moStartFailed() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ doReturn(mImsPhone).when(mPhone).getImsPhone();
doReturn(false).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
doReturn(0L).when(mImsConnection0).getDurationMillis();
@@ -354,6 +360,8 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void singleImsCall_moAccepted() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ doReturn(mImsPhone).when(mPhone).getImsPhone();
doReturn(false).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
doReturn(1000L).when(mImsConnection0).getDurationMillis();
@@ -415,6 +423,8 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void singleImsCall_mtRejected() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ doReturn(mImsPhone).when(mPhone).getImsPhone();
doReturn(true).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
doReturn(0L).when(mImsConnection0).getDurationMillis();
@@ -462,6 +472,8 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void singleImsCall_mtStartFailed() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ doReturn(mImsPhone).when(mPhone).getImsPhone();
doReturn(true).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
doReturn(0L).when(mImsConnection0).getDurationMillis();
@@ -509,6 +521,8 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void singleImsCall_mtAccepted() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ doReturn(mImsPhone).when(mPhone).getImsPhone();
doReturn(true).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
doReturn(mImsCall0).when(mImsConnection0).getCall();
@@ -570,6 +584,8 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
doReturn(mEsimSlot).when(mUiccController).getUiccSlot(eq(1));
doReturn(mEsimSlot).when(mUiccController).getUiccSlotForPhone(eq(1));
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ doReturn(mImsPhone).when(mPhone).getImsPhone();
doReturn(true).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
doReturn(mImsCall0).when(mImsConnection0).getCall();
@@ -615,6 +631,8 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
doReturn(mEsimSlot).when(mUiccController).getUiccSlot(eq(1));
doReturn(mEsimSlot).when(mUiccController).getUiccSlotForPhone(eq(1));
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ doReturn(mImsPhone).when(mPhone).getImsPhone();
doReturn(true).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
doReturn(mImsCall0).when(mImsConnection0).getCall();
@@ -660,6 +678,8 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
doReturn(mEsimSlot).when(mUiccController).getUiccSlot(eq(1));
doReturn(mEsimSlot).when(mUiccController).getUiccSlotForPhone(eq(1));
setServiceState(mSecondServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ doReturn(mImsPhone).when(mSecondPhone).getImsPhone();
doReturn(true).when(mImsConnection1).isIncoming();
doReturn(2000L).when(mImsConnection1).getCreateTime();
doReturn(mImsCall1).when(mImsConnection1).getCall();
@@ -699,6 +719,8 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void singleImsCall_emergency() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ doReturn(mImsPhone).when(mPhone).getImsPhone();
doReturn(true).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
doReturn(true).when(mImsConnection0).isEmergencyCall();
@@ -740,6 +762,8 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void singleImsCall_roaming() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ doReturn(mImsPhone).when(mPhone).getImsPhone();
doReturn(true).when(mServiceState).getVoiceRoaming();
doReturn(true).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
@@ -781,6 +805,8 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void singleImsCall_codecSwitch() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ doReturn(mImsPhone).when(mPhone).getImsPhone();
doReturn(true).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
doReturn(300000L).when(mImsConnection0).getDurationMillis();
@@ -835,6 +861,8 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void singleImsCall_ratSwitch() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ doReturn(mImsPhone).when(mPhone).getImsPhone();
doReturn(true).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
doReturn(600001L).when(mImsConnection0).getDurationMillis();
@@ -885,9 +913,11 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
mVoiceCallSessionStats0.onCallStateChanged(mImsCall0);
mVoiceCallSessionStats0.setTimeMillis(4000L);
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_HSPA);
+ doReturn(TelephonyManager.NETWORK_TYPE_HSPA).when(mImsStats).getImsVoiceRadioTech();
mVoiceCallSessionStats0.onServiceStateChanged(mServiceState);
mVoiceCallSessionStats0.setTimeMillis(6000L);
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_UMTS);
+ doReturn(TelephonyManager.NETWORK_TYPE_UMTS).when(mImsStats).getImsVoiceRadioTech();
mVoiceCallSessionStats0.onServiceStateChanged(mServiceState);
mVoiceCallSessionStats0.setTimeMillis(8000L);
mVoiceCallSessionStats0.onImsCallTerminated(
@@ -910,6 +940,8 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void singleImsCall_ratSwitchToUnknown() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ doReturn(mImsPhone).when(mPhone).getImsPhone();
doReturn(true).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
doReturn(600001L).when(mImsConnection0).getDurationMillis();
@@ -966,12 +998,15 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
mVoiceCallSessionStats0.onCallStateChanged(mImsCall0);
mVoiceCallSessionStats0.setTimeMillis(4000L);
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_HSPA);
+ doReturn(TelephonyManager.NETWORK_TYPE_HSPA).when(mImsStats).getImsVoiceRadioTech();
mVoiceCallSessionStats0.onServiceStateChanged(mServiceState);
mVoiceCallSessionStats0.setTimeMillis(6000L);
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_UMTS);
+ doReturn(TelephonyManager.NETWORK_TYPE_UMTS).when(mImsStats).getImsVoiceRadioTech();
mVoiceCallSessionStats0.onServiceStateChanged(mServiceState);
mVoiceCallSessionStats0.setTimeMillis(8000L);
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_UNKNOWN);
+ doReturn(TelephonyManager.NETWORK_TYPE_UNKNOWN).when(mImsStats).getImsVoiceRadioTech();
mVoiceCallSessionStats0.onServiceStateChanged(mServiceState);
mVoiceCallSessionStats0.setTimeMillis(10000L);
mVoiceCallSessionStats0.onImsCallTerminated(
@@ -997,6 +1032,8 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void singleImsCall_rttOnDial() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ doReturn(mImsPhone).when(mPhone).getImsPhone();
doReturn(true).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
doReturn(true).when(mImsConnection0).hasRttTextStream();
@@ -1041,6 +1078,8 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void singleImsCall_rttStartedMidCall() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ doReturn(mImsPhone).when(mPhone).getImsPhone();
doReturn(true).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
doReturn(mImsCall0).when(mImsConnection0).getCall();
@@ -1094,6 +1133,8 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void concurrentImsCalls_firstCallHangupFirst() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ doReturn(mImsPhone).when(mPhone).getImsPhone();
// call 0 starts first, MO
doReturn(false).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
@@ -1190,6 +1231,7 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
// RAT change, LTE to HSPA
mVoiceCallSessionStats0.setTimeMillis(80000L);
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_HSPA);
+ doReturn(TelephonyManager.NETWORK_TYPE_HSPA).when(mImsStats).getImsVoiceRadioTech();
mVoiceCallSessionStats0.onServiceStateChanged(mServiceState);
// call 0 hangup by remote
mVoiceCallSessionStats0.setTimeMillis(90000L);
@@ -1199,6 +1241,7 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
// RAT change, HSPA to UMTS
mVoiceCallSessionStats0.setTimeMillis(100000L);
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_UMTS);
+ doReturn(TelephonyManager.NETWORK_TYPE_UMTS).when(mImsStats).getImsVoiceRadioTech();
mVoiceCallSessionStats0.onServiceStateChanged(mServiceState);
// call 1 hangup by local
mVoiceCallSessionStats0.setTimeMillis(120000L);
@@ -1224,6 +1267,8 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void concurrentImsCalls_firstCallHangupLast() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ doReturn(mImsPhone).when(mPhone).getImsPhone();
// call 0 starts first, MO
doReturn(false).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
@@ -1320,6 +1365,7 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
// RAT change, LTE to HSPA
mVoiceCallSessionStats0.setTimeMillis(80000L);
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_HSPA);
+ doReturn(TelephonyManager.NETWORK_TYPE_HSPA).when(mImsStats).getImsVoiceRadioTech();
mVoiceCallSessionStats0.onServiceStateChanged(mServiceState);
// call 1 hangup by remote
mVoiceCallSessionStats0.setTimeMillis(90000L);
@@ -1329,6 +1375,7 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
// RAT change, HSPA to UMTS
mVoiceCallSessionStats0.setTimeMillis(100000L);
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_UMTS);
+ doReturn(TelephonyManager.NETWORK_TYPE_UMTS).when(mImsStats).getImsVoiceRadioTech();
mVoiceCallSessionStats0.onServiceStateChanged(mServiceState);
// call 0 hangup by local
mVoiceCallSessionStats0.setTimeMillis(120000L);
@@ -1354,6 +1401,8 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void concurrentImsCalls_firstCallHangupDuringSecondCallSetup() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
+ doReturn(mImsPhone).when(mPhone).getImsPhone();
// call 0 starts first, MO
doReturn(false).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
@@ -1445,6 +1494,7 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
// RAT change, LTE to HSPA
mVoiceCallSessionStats0.setTimeMillis(80000L);
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_HSPA);
+ doReturn(TelephonyManager.NETWORK_TYPE_HSPA).when(mImsStats).getImsVoiceRadioTech();
mVoiceCallSessionStats0.onServiceStateChanged(mServiceState);
// call 1 hangup by remote
mVoiceCallSessionStats0.setTimeMillis(90000L);
@@ -1562,12 +1612,14 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
mVoiceCallSessionStats0.setTimeMillis(2000L);
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
doReturn(Call.State.DIALING).when(mCsCall0).getState();
doReturn(Call.State.DIALING).when(mGsmConnection0).getState();
doReturn(DisconnectCause.NOT_DISCONNECTED).when(mGsmConnection0).getDisconnectCause();
mVoiceCallSessionStats0.onRilDial(mGsmConnection0);
mVoiceCallSessionStats0.setTimeMillis(3000L);
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_UMTS);
+ doReturn(TelephonyManager.NETWORK_TYPE_UMTS).when(mImsStats).getImsVoiceRadioTech();
mVoiceCallSessionStats0.onServiceStateChanged(mServiceState);
mVoiceCallSessionStats0.setTimeMillis(15000L);
doReturn(DisconnectCause.LOST_SIGNAL).when(mGsmConnection0).getDisconnectCause();
@@ -1770,6 +1822,7 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void singleCall_srvccFailed() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
doReturn(true).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
doReturn(mImsCall0).when(mImsConnection0).getCall();
@@ -1820,6 +1873,7 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
TelephonyManager.SRVCC_STATE_HANDOVER_STARTED);
mVoiceCallSessionStats0.setTimeMillis(10000L);
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_UMTS);
+ doReturn(TelephonyManager.NETWORK_TYPE_UMTS).when(mImsStats).getImsVoiceRadioTech();
mVoiceCallSessionStats0.onServiceStateChanged(mServiceState);
mVoiceCallSessionStats0.setTimeMillis(11000L);
mVoiceCallSessionStats0.onRilSrvccStateChanged(
@@ -1849,6 +1903,7 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void singleCall_srvccCanceled() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
doReturn(true).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
doReturn(mImsCall0).when(mImsConnection0).getCall();
@@ -1917,6 +1972,7 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void singleCall_srvccSuccess() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
doReturn(true).when(mImsConnection0).isIncoming();
doReturn(2000L).when(mImsConnection0).getCreateTime();
doReturn(mImsCall0).when(mImsConnection0).getCall();
@@ -1982,6 +2038,7 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
TelephonyManager.SRVCC_STATE_HANDOVER_STARTED);
mVoiceCallSessionStats0.setTimeMillis(7000L);
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_UMTS);
+ doReturn(TelephonyManager.NETWORK_TYPE_UMTS).when(mImsStats).getImsVoiceRadioTech();
mVoiceCallSessionStats0.onServiceStateChanged(mServiceState);
mVoiceCallSessionStats0.setTimeMillis(8000L);
mVoiceCallSessionStats0.onRilSrvccStateChanged(
@@ -2011,6 +2068,7 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
@SmallTest
public void concurrentCalls_srvcc() {
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_LTE);
+ doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mImsStats).getImsVoiceRadioTech();
doReturn(mImsPhone).when(mPhone).getImsPhone();
doReturn(new ArrayList(List.of(mImsConnection0, mImsConnection1)))
.when(mImsPhone)
@@ -2118,6 +2176,7 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
// RAT change, LTE to UMTS
mVoiceCallSessionStats0.setTimeMillis(80000L);
setServiceState(mServiceState, TelephonyManager.NETWORK_TYPE_UMTS);
+ doReturn(TelephonyManager.NETWORK_TYPE_UMTS).when(mImsStats).getImsVoiceRadioTech();
mVoiceCallSessionStats0.onServiceStateChanged(mServiceState);
mVoiceCallSessionStats0.setTimeMillis(85000L);
mVoiceCallSessionStats0.onRilSrvccStateChanged(