Added support for Calls.FEATURES_VOLTE in call log.
Test: CTS test
Bug: 141264508
Change-Id: I78eb1075d2caf2af1c2ce88b75eb1f8caa43fb81
Merged-In: I78eb1075d2caf2af1c2ce88b75eb1f8caa43fb81
diff --git a/src/com/android/server/telecom/Call.java b/src/com/android/server/telecom/Call.java
index b23e198..ed6a20a 100644
--- a/src/com/android/server/telecom/Call.java
+++ b/src/com/android/server/telecom/Call.java
@@ -461,6 +461,7 @@
private boolean mWasConferencePreviouslyMerged = false;
private boolean mWasHighDefAudio = false;
private boolean mWasWifi = false;
+ private boolean mWasVolte = false;
// For conferences which support merge/swap at their level, we retain a notion of an active
// call. This is used for BluetoothPhoneService. In order to support hold/merge, it must have
@@ -2391,6 +2392,13 @@
for (Listener l : mListeners) {
l.onExtrasChanged(this, source, extras);
}
+
+ // If mExtra shows that the call using Volte, record it with mWasVolte
+ if (mExtras.containsKey(TelecomManager.EXTRA_CALL_NETWORK_TYPE) &&
+ mExtras.get(TelecomManager.EXTRA_CALL_NETWORK_TYPE)
+ .equals(TelephonyManager.NETWORK_TYPE_LTE)) {
+ mWasVolte = true;
+ }
// If the change originated from an InCallService, notify the connection service.
if (source == SOURCE_INCALL_SERVICE) {
@@ -3494,7 +3502,7 @@
}
/**
- * Returns wether or not Wifi call was used.
+ * Returns whether or not Wifi call was used.
*
* @return true if wifi call was used during this call.
*/
@@ -3504,6 +3512,15 @@
public void setIsUsingCallFiltering(boolean isUsingCallFiltering) {
mIsUsingCallFiltering = isUsingCallFiltering;
+ }
+
+ /**
+ * Returns whether or not Volte call was used.
+ *
+ * @return true if Volte call was used during this call.
+ */
+ public boolean wasVolte() {
+ return mWasVolte;
}
/**
diff --git a/src/com/android/server/telecom/CallLogManager.java b/src/com/android/server/telecom/CallLogManager.java
index f616b13..b84d37e 100755
--- a/src/com/android/server/telecom/CallLogManager.java
+++ b/src/com/android/server/telecom/CallLogManager.java
@@ -339,7 +339,8 @@
call.wasHighDefAudio(), call.wasWifi(),
(call.getConnectionProperties() & Connection.PROPERTY_ASSISTED_DIALING_USED) ==
Connection.PROPERTY_ASSISTED_DIALING_USED,
- call.wasEverRttCall());
+ call.wasEverRttCall(),
+ call.wasVolte());
if (callLogType == Calls.BLOCKED_TYPE) {
logCall(call.getCallerInfo(), logNumber, call.getPostDialDigits(), formattedViaNumber,
@@ -464,7 +465,7 @@
* @return The call features.
*/
private static int getCallFeatures(int videoState, boolean isPulledCall, boolean isStoreHd,
- boolean isWifi, boolean isUsingAssistedDialing, boolean isRtt) {
+ boolean isWifi, boolean isUsingAssistedDialing, boolean isRtt, boolean isVolte) {
int features = 0;
if (VideoProfile.isVideo(videoState)) {
features |= Calls.FEATURES_VIDEO;
@@ -484,6 +485,9 @@
if (isRtt) {
features |= Calls.FEATURES_RTT;
}
+ if (isVolte) {
+ features |= Calls.FEATURES_VOLTE;
+ }
return features;
}