diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-12-02 00:22:15 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-12-02 00:22:15 +0000 |
commit | 3ff7f409ed2c6a862a7490a10eb7290b01958528 (patch) | |
tree | 43d87f6149af5c54d21e7271f87d572bbff64e72 | |
parent | 7a685485c191aba3de26998e95185e0e2a7e3bd3 (diff) | |
parent | 0ca2a0007a9f7be0f4b1d0c74ac25382b1bc94a5 (diff) | |
download | telephony-3ff7f409ed2c6a862a7490a10eb7290b01958528.tar.gz |
Snap for 9358956 from 0ca2a0007a9f7be0f4b1d0c74ac25382b1bc94a5 to tm-qpr2-release
Change-Id: I939541605aaba746cc36c8e61d58248ffa816ee1
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( |