aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2019-07-12 04:11:02 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2019-07-12 04:11:02 +0000
commitdd5c3144a3535391b94b4fb220a9ac857ed5e70b (patch)
treea816a715436bc2580d190ac2a212bcc21051e552
parent14f0e3a4cedbb567a3506b4f28065199c6750a95 (diff)
parent397dd849679ec3179863762a7ab8f6afb799a74e (diff)
downloadtelephony-android10-release.tar.gz
Change-Id: Ie56006124d1d4821e3befc49b474ac684fae993d
-rw-r--r--src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
index c2cf4be6e8..9fbef9c583 100644
--- a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
+++ b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
@@ -156,7 +156,8 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
private TelephonyMetrics mMetrics;
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 final MmTelFeatureListener mMmTelFeatureListener = new MmTelFeatureListener();
@@ -2354,6 +2355,11 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
mMetrics.writeOnImsCallTerminated(mPhone.getPhoneId(), imsCall.getCallSession(),
reasonInfo, mCallQualityMetrics.get(callId), conn.getEmergencyNumberInfo(),
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();
mPhone.notifyImsReason(reasonInfo);
@@ -2987,7 +2993,6 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
CallQualityMetrics cqm = mCallQualityMetrics.get(callId);
if (cqm == null) {
cqm = new CallQualityMetrics(mPhone);
- mLeastRecentCallId.add(callId);
}
cqm.saveCallQuality(callQuality);
mCallQualityMetrics.put(callId, cqm);
@@ -3549,6 +3554,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
pw.println(" mVtDataUsageSnapshot=" + mVtDataUsageSnapshot);
pw.println(" mVtDataUsageUidSnapshot=" + mVtDataUsageUidSnapshot);
pw.println(" mCallQualityMetrics=" + mCallQualityMetrics);
+ pw.println(" mCallQualityMetricsHistory=" + mCallQualityMetricsHistory);
pw.flush();
pw.println("++++++++++++++++++++++++++++++++");
@@ -4125,10 +4131,10 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
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() {
- if (mCallQualityMetrics.size() > MAX_CALL_QUALITY_HISTORY) {
- mCallQualityMetrics.remove(mLeastRecentCallId.poll());
+ if (mCallQualityMetricsHistory.size() > MAX_CALL_QUALITY_HISTORY) {
+ mCallQualityMetricsHistory.poll();
}
}