Loading src/java/com/android/internal/telephony/dataconnection/DataEnabledOverride.java +43 −2 Original line number Original line Diff line number Diff line Loading @@ -18,6 +18,8 @@ package com.android.internal.telephony.dataconnection; import android.annotation.IntDef; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.NonNull; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.telephony.data.ApnSetting; import android.telephony.data.ApnSetting; import android.telephony.data.ApnSetting.ApnType; import android.telephony.data.ApnSetting.ApnType; import android.text.TextUtils; import android.text.TextUtils; Loading @@ -26,6 +28,7 @@ import android.util.ArrayMap; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.telephony.Phone; import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.SubscriptionController; import com.android.internal.telephony.SubscriptionController; import com.android.internal.telephony.dataconnection.DataEnabledOverride.OverrideConditions.Condition; import com.android.internal.telephony.dataconnection.DataEnabledOverride.OverrideConditions.Condition; Loading @@ -52,7 +55,9 @@ public class DataEnabledOverride { */ */ private static final OverrideRule OVERRIDE_RULE_ALLOW_DATA_DURING_VOICE_CALL = private static final OverrideRule OVERRIDE_RULE_ALLOW_DATA_DURING_VOICE_CALL = new OverrideRule(ApnSetting.TYPE_ALL, OverrideConditions.CONDITION_IN_VOICE_CALL new OverrideRule(ApnSetting.TYPE_ALL, OverrideConditions.CONDITION_IN_VOICE_CALL | OverrideConditions.CONDITION_NON_DEFAULT); | OverrideConditions.CONDITION_NON_DEFAULT | OverrideConditions.CONDITION_DEFAULT_DATA_ENABLED | OverrideConditions.CONDITION_DSDS_ENABLED); /** /** * The rule for always allowing mms. Without adding any condition to the rule, any condition can * The rule for always allowing mms. Without adding any condition to the rule, any condition can Loading Loading @@ -157,6 +162,12 @@ public class DataEnabledOverride { /** Enable data only when device has ongoing voice call */ /** Enable data only when device has ongoing voice call */ static final int CONDITION_IN_VOICE_CALL = 1 << 1; static final int CONDITION_IN_VOICE_CALL = 1 << 1; /** Enable data only when default data is on */ static final int CONDITION_DEFAULT_DATA_ENABLED = 1 << 2; /** Enable data only when device is in DSDS mode */ static final int CONDITION_DSDS_ENABLED = 1 << 3; /** Enable data unconditionally in string format */ /** Enable data unconditionally in string format */ static final String CONDITION_UNCONDITIONALLY_STRING = "unconditionally"; static final String CONDITION_UNCONDITIONALLY_STRING = "unconditionally"; Loading @@ -166,10 +177,18 @@ public class DataEnabledOverride { /** Enable data only when device has ongoing voice call in string format */ /** Enable data only when device has ongoing voice call in string format */ static final String CONDITION_VOICE_CALL_STRING = "inVoiceCall"; static final String CONDITION_VOICE_CALL_STRING = "inVoiceCall"; /** Enable data only when default data is on in string format */ static final String CONDITION_DEFAULT_DATA_ENABLED_STRING = "DefaultDataOn"; /** Enable data only when device is in DSDS mode in string format */ static final String CONDITION_DSDS_ENABLED_STRING = "dsdsEnabled"; /** @hide */ /** @hide */ @IntDef(flag = true, prefix = { "OVERRIDE_CONDITION_" }, value = { @IntDef(flag = true, prefix = { "OVERRIDE_CONDITION_" }, value = { CONDITION_NON_DEFAULT, CONDITION_NON_DEFAULT, CONDITION_IN_VOICE_CALL, CONDITION_IN_VOICE_CALL, CONDITION_DEFAULT_DATA_ENABLED, CONDITION_DSDS_ENABLED }) }) @Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE) public @interface Condition {} public @interface Condition {} Loading @@ -182,6 +201,10 @@ public class DataEnabledOverride { CONDITION_NON_DEFAULT_STRING); CONDITION_NON_DEFAULT_STRING); OVERRIDE_CONDITION_INT_MAP.put(CONDITION_IN_VOICE_CALL, OVERRIDE_CONDITION_INT_MAP.put(CONDITION_IN_VOICE_CALL, CONDITION_VOICE_CALL_STRING); CONDITION_VOICE_CALL_STRING); OVERRIDE_CONDITION_INT_MAP.put(CONDITION_DEFAULT_DATA_ENABLED, CONDITION_DEFAULT_DATA_ENABLED_STRING); OVERRIDE_CONDITION_INT_MAP.put(CONDITION_DSDS_ENABLED, CONDITION_DSDS_ENABLED_STRING); OVERRIDE_CONDITION_STRING_MAP.put(CONDITION_UNCONDITIONALLY_STRING, OVERRIDE_CONDITION_STRING_MAP.put(CONDITION_UNCONDITIONALLY_STRING, CONDITION_UNCONDITIONALLY); CONDITION_UNCONDITIONALLY); Loading @@ -189,6 +212,10 @@ public class DataEnabledOverride { CONDITION_NON_DEFAULT); CONDITION_NON_DEFAULT); OVERRIDE_CONDITION_STRING_MAP.put(CONDITION_VOICE_CALL_STRING, OVERRIDE_CONDITION_STRING_MAP.put(CONDITION_VOICE_CALL_STRING, CONDITION_IN_VOICE_CALL); CONDITION_IN_VOICE_CALL); OVERRIDE_CONDITION_STRING_MAP.put(CONDITION_DEFAULT_DATA_ENABLED_STRING, CONDITION_DEFAULT_DATA_ENABLED); OVERRIDE_CONDITION_STRING_MAP.put(CONDITION_DSDS_ENABLED_STRING, CONDITION_DSDS_ENABLED); } } private final @Condition int mConditions; private final @Condition int mConditions; Loading Loading @@ -353,9 +380,23 @@ public class DataEnabledOverride { conditions |= OverrideConditions.CONDITION_IN_VOICE_CALL; conditions |= OverrideConditions.CONDITION_IN_VOICE_CALL; } } if (phone.getSubId() != SubscriptionController.getInstance().getDefaultDataSubId()) { int defaultDataSubId = SubscriptionController.getInstance().getDefaultDataSubId(); if (phone.getSubId() != defaultDataSubId) { conditions |= OverrideConditions.CONDITION_NON_DEFAULT; conditions |= OverrideConditions.CONDITION_NON_DEFAULT; } } if (defaultDataSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { int phoneId = SubscriptionController.getInstance().getPhoneId(defaultDataSubId); Phone defaultDataPhone = PhoneFactory.getPhone(phoneId); if (defaultDataPhone.isUserDataEnabled()) { conditions |= OverrideConditions.CONDITION_DEFAULT_DATA_ENABLED; } } if (TelephonyManager.from(phone.getContext()).isMultiSimEnabled()) { conditions |= OverrideConditions.CONDITION_DSDS_ENABLED; } } } return conditions; return conditions; Loading src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +11 −5 Original line number Original line Diff line number Diff line Loading @@ -156,7 +156,8 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { private TelephonyMetrics mMetrics; private TelephonyMetrics mMetrics; private final Map<String, CallQualityMetrics> mCallQualityMetrics = new ConcurrentHashMap<>(); private final Map<String, CallQualityMetrics> mCallQualityMetrics = new ConcurrentHashMap<>(); private final ConcurrentLinkedQueue<String> mLeastRecentCallId = new ConcurrentLinkedQueue<>(); private final ConcurrentLinkedQueue<CallQualityMetrics> mCallQualityMetricsHistory = new ConcurrentLinkedQueue<>(); private boolean mCarrierConfigLoaded = false; private boolean mCarrierConfigLoaded = false; private final MmTelFeatureListener mMmTelFeatureListener = new MmTelFeatureListener(); private final MmTelFeatureListener mMmTelFeatureListener = new MmTelFeatureListener(); Loading Loading @@ -2354,6 +2355,11 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { mMetrics.writeOnImsCallTerminated(mPhone.getPhoneId(), imsCall.getCallSession(), mMetrics.writeOnImsCallTerminated(mPhone.getPhoneId(), imsCall.getCallSession(), reasonInfo, mCallQualityMetrics.get(callId), conn.getEmergencyNumberInfo(), reasonInfo, mCallQualityMetrics.get(callId), conn.getEmergencyNumberInfo(), getNetworkCountryIso()); getNetworkCountryIso()); // Remove info for the callId from the current calls and add it to the history CallQualityMetrics lastCallMetrics = mCallQualityMetrics.remove(callId); if (lastCallMetrics != null) { mCallQualityMetricsHistory.add(lastCallMetrics); } pruneCallQualityMetricsHistory(); pruneCallQualityMetricsHistory(); mPhone.notifyImsReason(reasonInfo); mPhone.notifyImsReason(reasonInfo); Loading Loading @@ -2987,7 +2993,6 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { CallQualityMetrics cqm = mCallQualityMetrics.get(callId); CallQualityMetrics cqm = mCallQualityMetrics.get(callId); if (cqm == null) { if (cqm == null) { cqm = new CallQualityMetrics(mPhone); cqm = new CallQualityMetrics(mPhone); mLeastRecentCallId.add(callId); } } cqm.saveCallQuality(callQuality); cqm.saveCallQuality(callQuality); mCallQualityMetrics.put(callId, cqm); mCallQualityMetrics.put(callId, cqm); Loading Loading @@ -3549,6 +3554,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { pw.println(" mVtDataUsageSnapshot=" + mVtDataUsageSnapshot); pw.println(" mVtDataUsageSnapshot=" + mVtDataUsageSnapshot); pw.println(" mVtDataUsageUidSnapshot=" + mVtDataUsageUidSnapshot); pw.println(" mVtDataUsageUidSnapshot=" + mVtDataUsageUidSnapshot); pw.println(" mCallQualityMetrics=" + mCallQualityMetrics); pw.println(" mCallQualityMetrics=" + mCallQualityMetrics); pw.println(" mCallQualityMetricsHistory=" + mCallQualityMetricsHistory); pw.flush(); pw.flush(); pw.println("++++++++++++++++++++++++++++++++"); pw.println("++++++++++++++++++++++++++++++++"); Loading Loading @@ -4125,10 +4131,10 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { mIsDataEnabled = isDataEnabled; mIsDataEnabled = isDataEnabled; } } // Removes old call quality metrics if mCallQualityMetrics exceeds its max size // Removes old call quality metrics if mCallQualityMetricsHistory exceeds its max size private void pruneCallQualityMetricsHistory() { private void pruneCallQualityMetricsHistory() { if (mCallQualityMetrics.size() > MAX_CALL_QUALITY_HISTORY) { if (mCallQualityMetricsHistory.size() > MAX_CALL_QUALITY_HISTORY) { mCallQualityMetrics.remove(mLeastRecentCallId.poll()); mCallQualityMetricsHistory.poll(); } } } } Loading tests/telephonytests/src/com/android/internal/telephony/dataconnection/DataEnabledOverrideTest.java +2 −3 Original line number Original line Diff line number Diff line Loading @@ -210,10 +210,9 @@ public class DataEnabledOverrideTest extends TelephonyTest { doReturn(2).when(mSubscriptionController).getDefaultSmsSubId(); doReturn(2).when(mSubscriptionController).getDefaultSmsSubId(); doReturn(PhoneConstants.State.OFFHOOK).when(mPhone).getState(); doReturn(PhoneConstants.State.OFFHOOK).when(mPhone).getState(); assertTrue(deo.getRules(), deo.shouldOverrideDataEnabledSettings(mPhone, ApnSetting.TYPE_DEFAULT)); deo.setDataAllowedInVoiceCall(false); deo.setDataAllowedInVoiceCall(false); assertFalse(deo.shouldOverrideDataEnabledSettings(mPhone, ApnSetting.TYPE_DEFAULT)); assertFalse(deo.getRules(), deo.shouldOverrideDataEnabledSettings( mPhone, ApnSetting.TYPE_DEFAULT)); assertFalse(deo.isDataAllowedInVoiceCall()); assertFalse(deo.isDataAllowedInVoiceCall()); } } } } tests/telephonytests/src/com/android/internal/telephony/dataconnection/DataEnabledSettingsTest.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -91,7 +91,7 @@ public class DataEnabledSettingsTest extends TelephonyTest { ArgumentCaptor<String> stringCaptor = ArgumentCaptor.forClass(String.class); ArgumentCaptor<String> stringCaptor = ArgumentCaptor.forClass(String.class); verify(mSubscriptionController).setDataEnabledOverrideRules(anyInt(), verify(mSubscriptionController).setDataEnabledOverrideRules(anyInt(), stringCaptor.capture()); stringCaptor.capture()); assertEquals("*=nonDefault&inVoiceCall", stringCaptor.getValue()); assertEquals("*=nonDefault&inVoiceCall&DefaultDataOn&dsdsEnabled", stringCaptor.getValue()); clearInvocations(mSubscriptionController); clearInvocations(mSubscriptionController); Loading Loading
src/java/com/android/internal/telephony/dataconnection/DataEnabledOverride.java +43 −2 Original line number Original line Diff line number Diff line Loading @@ -18,6 +18,8 @@ package com.android.internal.telephony.dataconnection; import android.annotation.IntDef; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.NonNull; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.telephony.data.ApnSetting; import android.telephony.data.ApnSetting; import android.telephony.data.ApnSetting.ApnType; import android.telephony.data.ApnSetting.ApnType; import android.text.TextUtils; import android.text.TextUtils; Loading @@ -26,6 +28,7 @@ import android.util.ArrayMap; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.telephony.Phone; import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.SubscriptionController; import com.android.internal.telephony.SubscriptionController; import com.android.internal.telephony.dataconnection.DataEnabledOverride.OverrideConditions.Condition; import com.android.internal.telephony.dataconnection.DataEnabledOverride.OverrideConditions.Condition; Loading @@ -52,7 +55,9 @@ public class DataEnabledOverride { */ */ private static final OverrideRule OVERRIDE_RULE_ALLOW_DATA_DURING_VOICE_CALL = private static final OverrideRule OVERRIDE_RULE_ALLOW_DATA_DURING_VOICE_CALL = new OverrideRule(ApnSetting.TYPE_ALL, OverrideConditions.CONDITION_IN_VOICE_CALL new OverrideRule(ApnSetting.TYPE_ALL, OverrideConditions.CONDITION_IN_VOICE_CALL | OverrideConditions.CONDITION_NON_DEFAULT); | OverrideConditions.CONDITION_NON_DEFAULT | OverrideConditions.CONDITION_DEFAULT_DATA_ENABLED | OverrideConditions.CONDITION_DSDS_ENABLED); /** /** * The rule for always allowing mms. Without adding any condition to the rule, any condition can * The rule for always allowing mms. Without adding any condition to the rule, any condition can Loading Loading @@ -157,6 +162,12 @@ public class DataEnabledOverride { /** Enable data only when device has ongoing voice call */ /** Enable data only when device has ongoing voice call */ static final int CONDITION_IN_VOICE_CALL = 1 << 1; static final int CONDITION_IN_VOICE_CALL = 1 << 1; /** Enable data only when default data is on */ static final int CONDITION_DEFAULT_DATA_ENABLED = 1 << 2; /** Enable data only when device is in DSDS mode */ static final int CONDITION_DSDS_ENABLED = 1 << 3; /** Enable data unconditionally in string format */ /** Enable data unconditionally in string format */ static final String CONDITION_UNCONDITIONALLY_STRING = "unconditionally"; static final String CONDITION_UNCONDITIONALLY_STRING = "unconditionally"; Loading @@ -166,10 +177,18 @@ public class DataEnabledOverride { /** Enable data only when device has ongoing voice call in string format */ /** Enable data only when device has ongoing voice call in string format */ static final String CONDITION_VOICE_CALL_STRING = "inVoiceCall"; static final String CONDITION_VOICE_CALL_STRING = "inVoiceCall"; /** Enable data only when default data is on in string format */ static final String CONDITION_DEFAULT_DATA_ENABLED_STRING = "DefaultDataOn"; /** Enable data only when device is in DSDS mode in string format */ static final String CONDITION_DSDS_ENABLED_STRING = "dsdsEnabled"; /** @hide */ /** @hide */ @IntDef(flag = true, prefix = { "OVERRIDE_CONDITION_" }, value = { @IntDef(flag = true, prefix = { "OVERRIDE_CONDITION_" }, value = { CONDITION_NON_DEFAULT, CONDITION_NON_DEFAULT, CONDITION_IN_VOICE_CALL, CONDITION_IN_VOICE_CALL, CONDITION_DEFAULT_DATA_ENABLED, CONDITION_DSDS_ENABLED }) }) @Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE) public @interface Condition {} public @interface Condition {} Loading @@ -182,6 +201,10 @@ public class DataEnabledOverride { CONDITION_NON_DEFAULT_STRING); CONDITION_NON_DEFAULT_STRING); OVERRIDE_CONDITION_INT_MAP.put(CONDITION_IN_VOICE_CALL, OVERRIDE_CONDITION_INT_MAP.put(CONDITION_IN_VOICE_CALL, CONDITION_VOICE_CALL_STRING); CONDITION_VOICE_CALL_STRING); OVERRIDE_CONDITION_INT_MAP.put(CONDITION_DEFAULT_DATA_ENABLED, CONDITION_DEFAULT_DATA_ENABLED_STRING); OVERRIDE_CONDITION_INT_MAP.put(CONDITION_DSDS_ENABLED, CONDITION_DSDS_ENABLED_STRING); OVERRIDE_CONDITION_STRING_MAP.put(CONDITION_UNCONDITIONALLY_STRING, OVERRIDE_CONDITION_STRING_MAP.put(CONDITION_UNCONDITIONALLY_STRING, CONDITION_UNCONDITIONALLY); CONDITION_UNCONDITIONALLY); Loading @@ -189,6 +212,10 @@ public class DataEnabledOverride { CONDITION_NON_DEFAULT); CONDITION_NON_DEFAULT); OVERRIDE_CONDITION_STRING_MAP.put(CONDITION_VOICE_CALL_STRING, OVERRIDE_CONDITION_STRING_MAP.put(CONDITION_VOICE_CALL_STRING, CONDITION_IN_VOICE_CALL); CONDITION_IN_VOICE_CALL); OVERRIDE_CONDITION_STRING_MAP.put(CONDITION_DEFAULT_DATA_ENABLED_STRING, CONDITION_DEFAULT_DATA_ENABLED); OVERRIDE_CONDITION_STRING_MAP.put(CONDITION_DSDS_ENABLED_STRING, CONDITION_DSDS_ENABLED); } } private final @Condition int mConditions; private final @Condition int mConditions; Loading Loading @@ -353,9 +380,23 @@ public class DataEnabledOverride { conditions |= OverrideConditions.CONDITION_IN_VOICE_CALL; conditions |= OverrideConditions.CONDITION_IN_VOICE_CALL; } } if (phone.getSubId() != SubscriptionController.getInstance().getDefaultDataSubId()) { int defaultDataSubId = SubscriptionController.getInstance().getDefaultDataSubId(); if (phone.getSubId() != defaultDataSubId) { conditions |= OverrideConditions.CONDITION_NON_DEFAULT; conditions |= OverrideConditions.CONDITION_NON_DEFAULT; } } if (defaultDataSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { int phoneId = SubscriptionController.getInstance().getPhoneId(defaultDataSubId); Phone defaultDataPhone = PhoneFactory.getPhone(phoneId); if (defaultDataPhone.isUserDataEnabled()) { conditions |= OverrideConditions.CONDITION_DEFAULT_DATA_ENABLED; } } if (TelephonyManager.from(phone.getContext()).isMultiSimEnabled()) { conditions |= OverrideConditions.CONDITION_DSDS_ENABLED; } } } return conditions; return conditions; Loading
src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +11 −5 Original line number Original line Diff line number Diff line Loading @@ -156,7 +156,8 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { private TelephonyMetrics mMetrics; private TelephonyMetrics mMetrics; private final Map<String, CallQualityMetrics> mCallQualityMetrics = new ConcurrentHashMap<>(); private final Map<String, CallQualityMetrics> mCallQualityMetrics = new ConcurrentHashMap<>(); private final ConcurrentLinkedQueue<String> mLeastRecentCallId = new ConcurrentLinkedQueue<>(); private final ConcurrentLinkedQueue<CallQualityMetrics> mCallQualityMetricsHistory = new ConcurrentLinkedQueue<>(); private boolean mCarrierConfigLoaded = false; private boolean mCarrierConfigLoaded = false; private final MmTelFeatureListener mMmTelFeatureListener = new MmTelFeatureListener(); private final MmTelFeatureListener mMmTelFeatureListener = new MmTelFeatureListener(); Loading Loading @@ -2354,6 +2355,11 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { mMetrics.writeOnImsCallTerminated(mPhone.getPhoneId(), imsCall.getCallSession(), mMetrics.writeOnImsCallTerminated(mPhone.getPhoneId(), imsCall.getCallSession(), reasonInfo, mCallQualityMetrics.get(callId), conn.getEmergencyNumberInfo(), reasonInfo, mCallQualityMetrics.get(callId), conn.getEmergencyNumberInfo(), getNetworkCountryIso()); getNetworkCountryIso()); // Remove info for the callId from the current calls and add it to the history CallQualityMetrics lastCallMetrics = mCallQualityMetrics.remove(callId); if (lastCallMetrics != null) { mCallQualityMetricsHistory.add(lastCallMetrics); } pruneCallQualityMetricsHistory(); pruneCallQualityMetricsHistory(); mPhone.notifyImsReason(reasonInfo); mPhone.notifyImsReason(reasonInfo); Loading Loading @@ -2987,7 +2993,6 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { CallQualityMetrics cqm = mCallQualityMetrics.get(callId); CallQualityMetrics cqm = mCallQualityMetrics.get(callId); if (cqm == null) { if (cqm == null) { cqm = new CallQualityMetrics(mPhone); cqm = new CallQualityMetrics(mPhone); mLeastRecentCallId.add(callId); } } cqm.saveCallQuality(callQuality); cqm.saveCallQuality(callQuality); mCallQualityMetrics.put(callId, cqm); mCallQualityMetrics.put(callId, cqm); Loading Loading @@ -3549,6 +3554,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { pw.println(" mVtDataUsageSnapshot=" + mVtDataUsageSnapshot); pw.println(" mVtDataUsageSnapshot=" + mVtDataUsageSnapshot); pw.println(" mVtDataUsageUidSnapshot=" + mVtDataUsageUidSnapshot); pw.println(" mVtDataUsageUidSnapshot=" + mVtDataUsageUidSnapshot); pw.println(" mCallQualityMetrics=" + mCallQualityMetrics); pw.println(" mCallQualityMetrics=" + mCallQualityMetrics); pw.println(" mCallQualityMetricsHistory=" + mCallQualityMetricsHistory); pw.flush(); pw.flush(); pw.println("++++++++++++++++++++++++++++++++"); pw.println("++++++++++++++++++++++++++++++++"); Loading Loading @@ -4125,10 +4131,10 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { mIsDataEnabled = isDataEnabled; mIsDataEnabled = isDataEnabled; } } // Removes old call quality metrics if mCallQualityMetrics exceeds its max size // Removes old call quality metrics if mCallQualityMetricsHistory exceeds its max size private void pruneCallQualityMetricsHistory() { private void pruneCallQualityMetricsHistory() { if (mCallQualityMetrics.size() > MAX_CALL_QUALITY_HISTORY) { if (mCallQualityMetricsHistory.size() > MAX_CALL_QUALITY_HISTORY) { mCallQualityMetrics.remove(mLeastRecentCallId.poll()); mCallQualityMetricsHistory.poll(); } } } } Loading
tests/telephonytests/src/com/android/internal/telephony/dataconnection/DataEnabledOverrideTest.java +2 −3 Original line number Original line Diff line number Diff line Loading @@ -210,10 +210,9 @@ public class DataEnabledOverrideTest extends TelephonyTest { doReturn(2).when(mSubscriptionController).getDefaultSmsSubId(); doReturn(2).when(mSubscriptionController).getDefaultSmsSubId(); doReturn(PhoneConstants.State.OFFHOOK).when(mPhone).getState(); doReturn(PhoneConstants.State.OFFHOOK).when(mPhone).getState(); assertTrue(deo.getRules(), deo.shouldOverrideDataEnabledSettings(mPhone, ApnSetting.TYPE_DEFAULT)); deo.setDataAllowedInVoiceCall(false); deo.setDataAllowedInVoiceCall(false); assertFalse(deo.shouldOverrideDataEnabledSettings(mPhone, ApnSetting.TYPE_DEFAULT)); assertFalse(deo.getRules(), deo.shouldOverrideDataEnabledSettings( mPhone, ApnSetting.TYPE_DEFAULT)); assertFalse(deo.isDataAllowedInVoiceCall()); assertFalse(deo.isDataAllowedInVoiceCall()); } } } }
tests/telephonytests/src/com/android/internal/telephony/dataconnection/DataEnabledSettingsTest.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -91,7 +91,7 @@ public class DataEnabledSettingsTest extends TelephonyTest { ArgumentCaptor<String> stringCaptor = ArgumentCaptor.forClass(String.class); ArgumentCaptor<String> stringCaptor = ArgumentCaptor.forClass(String.class); verify(mSubscriptionController).setDataEnabledOverrideRules(anyInt(), verify(mSubscriptionController).setDataEnabledOverrideRules(anyInt(), stringCaptor.capture()); stringCaptor.capture()); assertEquals("*=nonDefault&inVoiceCall", stringCaptor.getValue()); assertEquals("*=nonDefault&inVoiceCall&DefaultDataOn&dsdsEnabled", stringCaptor.getValue()); clearInvocations(mSubscriptionController); clearInvocations(mSubscriptionController); Loading