Handle android.telephony.event.EVENT_CALL_FORWARDED.
Bug: 33761801
Test: none
PiperOrigin-RevId: 181347696
Change-Id: Iaf09d1b45a2e97e4d8da24b5bd7172da152d703c
diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java
index 543cc3f..5d71d0a 100644
--- a/java/com/android/incallui/call/DialerCall.java
+++ b/java/com/android/incallui/call/DialerCall.java
@@ -29,6 +29,7 @@
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting;
+import android.support.v4.os.BuildCompat;
import android.telecom.Call;
import android.telecom.Call.Details;
import android.telecom.CallAudioState;
@@ -140,6 +141,7 @@
private String childNumber;
private String lastForwardedNumber;
+ private boolean isCallForwarded;
private String callSubject;
private PhoneAccountHandle phoneAccountHandle;
@CallHistoryStatus private int callHistoryStatus = CALL_HISTORY_STATUS_UNKNOWN;
@@ -295,6 +297,13 @@
LogUtil.i("DialerCall.onConnectionEvent", "merge complete");
isMergeInProcess = false;
break;
+ case TelephonyManagerCompat.EVENT_CALL_FORWARDED:
+ // Only handle this event for P+ since it's unreliable pre-P.
+ if (BuildCompat.isAtLeastP()) {
+ isCallForwarded = true;
+ update();
+ }
+ break;
default:
break;
}
@@ -800,6 +809,10 @@
return lastForwardedNumber;
}
+ public boolean isCallForwarded() {
+ return isCallForwarded;
+ }
+
/** @return The call subject, or {@code null} if none specified. */
public String getCallSubject() {
return callSubject;