summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Gunn <tgunn@google.com>2015-10-07 16:25:32 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-10-07 16:25:32 +0000
commit608ee2b09bdc04e14913104b373a0c13f94b41ff (patch)
treec3da2f9664aeeae2cec6b6d21644030f77411de2
parent9fa58a624bf3958c14e4a267d06070536328e7aa (diff)
parent17861cdbd3819ca76a0c36c14ffc957d42852666 (diff)
am 0de21104: am 177debf2: am 9849b290: am 070463fa: Merge "Handle child number changes after the call starts." into mnc-dr-dev
* commit '0de21104d5ca7aca9b1e3a092a706d0bffcf90b3': Handle child number changes after the call starts.
-rw-r--r--InCallUI/src/com/android/incallui/AnswerPresenter.java5
-rw-r--r--InCallUI/src/com/android/incallui/Call.java5
-rw-r--r--InCallUI/src/com/android/incallui/CallCardPresenter.java13
-rw-r--r--InCallUI/src/com/android/incallui/CallList.java20
-rw-r--r--InCallUI/src/com/android/incallui/StatusBarNotifier.java5
5 files changed, 46 insertions, 2 deletions
diff --git a/InCallUI/src/com/android/incallui/AnswerPresenter.java b/InCallUI/src/com/android/incallui/AnswerPresenter.java
index fc75bf030..97f60c05f 100644
--- a/InCallUI/src/com/android/incallui/AnswerPresenter.java
+++ b/InCallUI/src/com/android/incallui/AnswerPresenter.java
@@ -113,6 +113,11 @@ public class AnswerPresenter extends Presenter<AnswerPresenter.AnswerUi>
// no-op
}
+ @Override
+ public void onChildNumberChange() {
+ // no-op
+ }
+
private boolean isVideoUpgradePending(Call call) {
return call.getSessionModificationState()
== Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST;
diff --git a/InCallUI/src/com/android/incallui/Call.java b/InCallUI/src/com/android/incallui/Call.java
index c82b7a5c9..185558eca 100644
--- a/InCallUI/src/com/android/incallui/Call.java
+++ b/InCallUI/src/com/android/incallui/Call.java
@@ -449,12 +449,13 @@ public class Call {
Bundle callExtras = mTelecomCall.getDetails().getExtras();
if (callExtras != null) {
- // Child address arrives when the call is first set up, so we do not need to notify the
- // UI of this.
+ // Check for a change in the child address and notify any listeners.
if (callExtras.containsKey(Connection.EXTRA_CHILD_ADDRESS)) {
String childNumber = callExtras.getString(Connection.EXTRA_CHILD_ADDRESS);
+
if (!Objects.equals(childNumber, mChildNumber)) {
mChildNumber = childNumber;
+ CallList.getInstance().onChildNumberChange(this);
}
}
diff --git a/InCallUI/src/com/android/incallui/CallCardPresenter.java b/InCallUI/src/com/android/incallui/CallCardPresenter.java
index 59f6e7fe6..e0abffe0c 100644
--- a/InCallUI/src/com/android/incallui/CallCardPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallCardPresenter.java
@@ -350,6 +350,19 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
updatePrimaryDisplayInfo();
}
+ /**
+ * Handles a change to the child number by refreshing the primary call info.
+ */
+ @Override
+ public void onChildNumberChange() {
+ Log.v(this, "onChildNumberChange");
+
+ if (mPrimary == null) {
+ return;
+ }
+ updatePrimaryDisplayInfo();
+ }
+
private String getSubscriptionNumber() {
// If it's an emergency call, and they're not populating the callback number,
// then try to fall back to the phone sub info (to hopefully get the SIM's
diff --git a/InCallUI/src/com/android/incallui/CallList.java b/InCallUI/src/com/android/incallui/CallList.java
index bed1d607a..d70b789ba 100644
--- a/InCallUI/src/com/android/incallui/CallList.java
+++ b/InCallUI/src/com/android/incallui/CallList.java
@@ -187,6 +187,21 @@ public class CallList {
}
}
+ /**
+ * Called when the child number changes for a call. The child number can be received after a
+ * call is initially set up, so we need to be able to inform listeners of the change.
+ *
+ * @param call The call.
+ */
+ public void onChildNumberChange(Call call) {
+ final List<CallUpdateListener> listeners = mCallUpdateListenerMap.get(call.getId());
+ if (listeners != null) {
+ for (CallUpdateListener listener : listeners) {
+ listener.onChildNumberChange();
+ }
+ }
+ }
+
public void notifyCallUpdateListeners(Call call) {
final List<CallUpdateListener> listeners = mCallUpdateListenerMap.get(call.getId());
if (listeners != null) {
@@ -647,5 +662,10 @@ public class CallList {
* Notifies of a change to the last forwarded number for a call.
*/
public void onLastForwardedNumberChange();
+
+ /**
+ * Notifies of a change to the child number for a call.
+ */
+ public void onChildNumberChange();
}
}
diff --git a/InCallUI/src/com/android/incallui/StatusBarNotifier.java b/InCallUI/src/com/android/incallui/StatusBarNotifier.java
index df29dc240..5619ef292 100644
--- a/InCallUI/src/com/android/incallui/StatusBarNotifier.java
+++ b/InCallUI/src/com/android/incallui/StatusBarNotifier.java
@@ -655,4 +655,9 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener,
public void onLastForwardedNumberChange() {
// no-op
}
+
+ @Override
+ public void onChildNumberChange() {
+ // no-op
+ }
}