aboutsummaryrefslogtreecommitdiff
path: root/src/java/com/android/internal/telephony/data/DataNetwork.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/com/android/internal/telephony/data/DataNetwork.java')
-rw-r--r--src/java/com/android/internal/telephony/data/DataNetwork.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/java/com/android/internal/telephony/data/DataNetwork.java b/src/java/com/android/internal/telephony/data/DataNetwork.java
index b99065b142..c1e61c6f08 100644
--- a/src/java/com/android/internal/telephony/data/DataNetwork.java
+++ b/src/java/com/android/internal/telephony/data/DataNetwork.java
@@ -122,6 +122,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -921,6 +922,14 @@ public class DataNetwork extends StateMachine {
*/
public abstract void onRetryUnsatisfiedNetworkRequest(
@NonNull TelephonyNetworkRequest networkRequest);
+
+ /**
+ * Called when QosBearerSessions bearer changed, which indicates VoNr or VoLte calls.
+ *
+ * @param qosBearerSessions The current qosBearerSessions.
+ */
+ public abstract void onQosSessionsChanged(
+ @NonNull List<QosBearerSession> qosBearerSessions);
}
/**
@@ -2676,6 +2685,12 @@ public class DataNetwork extends StateMachine {
mDefaultQos = response.getDefaultQos();
+
+ Set<QosBearerSession> newSessions = new HashSet<>(response.getQosBearerSessions());
+ if (newSessions.size() != mQosBearerSessions.size()
+ || !newSessions.containsAll(mQosBearerSessions)) {
+ mDataNetworkCallback.onQosSessionsChanged(response.getQosBearerSessions());
+ }
mQosBearerSessions.clear();
mQosBearerSessions.addAll(response.getQosBearerSessions());
if (mQosCallbackTracker != null) {