summaryrefslogtreecommitdiff
path: root/java/com/android
diff options
context:
space:
mode:
authorwangqi <wangqi@google.com>2018-01-09 11:26:29 -0800
committerCopybara-Service <copybara-piper@google.com>2018-01-09 11:28:56 -0800
commitf4ba34589194d4609cfeed64d53d815a11a1d5d1 (patch)
tree94616583239ba75d6cfc648ad7db2bb48fd9c082 /java/com/android
parenta3305355f1ee123bf981e9d47c82d6a11b5cb4b5 (diff)
Handle android.telephony.event.EVENT_CALL_FORWARDED.
Bug: 33761801 Test: none PiperOrigin-RevId: 181347696 Change-Id: Iaf09d1b45a2e97e4d8da24b5bd7172da152d703c
Diffstat (limited to 'java/com/android')
-rw-r--r--java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java1
-rw-r--r--java/com/android/incallui/CallCardPresenter.java2
-rw-r--r--java/com/android/incallui/call/DialerCall.java13
3 files changed, 15 insertions, 1 deletions
diff --git a/java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java b/java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java
index b01689da4..92e256998 100644
--- a/java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java
+++ b/java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java
@@ -46,6 +46,7 @@ public class TelephonyManagerCompat {
public static final String EVENT_NOTIFY_INTERNATIONAL_CALL_ON_WFC =
"android.telephony.event.EVENT_NOTIFY_INTERNATIONAL_CALL_ON_WFC";
+ public static final String EVENT_CALL_FORWARDED = "android.telephony.event.EVENT_CALL_FORWARDED";
public static final String TELEPHONY_MANAGER_CLASS = "android.telephony.TelephonyManager";
diff --git a/java/com/android/incallui/CallCardPresenter.java b/java/com/android/incallui/CallCardPresenter.java
index 67473d75e..eed076d3d 100644
--- a/java/com/android/incallui/CallCardPresenter.java
+++ b/java/com/android/incallui/CallCardPresenter.java
@@ -484,7 +484,7 @@ public class CallCardPresenter
isWorkCall,
isAttemptingHdAudioCall,
isHdAudioCall,
- !TextUtils.isEmpty(primary.getLastForwardedNumber()),
+ !TextUtils.isEmpty(primary.getLastForwardedNumber()) || primary.isCallForwarded(),
shouldShowContactPhoto,
primary.getConnectTimeMillis(),
primary.isVoiceMailNumber(),
diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java
index 543cc3f07..5d71d0aac 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.IntDef;
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 @@ public class DialerCall implements VideoTechListener, StateChangedListener, Capa
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 @@ public class DialerCall implements VideoTechListener, StateChangedListener, Capa
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 @@ public class DialerCall implements VideoTechListener, StateChangedListener, Capa
return lastForwardedNumber;
}
+ public boolean isCallForwarded() {
+ return isCallForwarded;
+ }
+
/** @return The call subject, or {@code null} if none specified. */
public String getCallSubject() {
return callSubject;