diff options
author | Tyler Gunn <tgunn@google.com> | 2015-10-07 16:25:32 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-10-07 16:25:32 +0000 |
commit | 608ee2b09bdc04e14913104b373a0c13f94b41ff (patch) | |
tree | c3da2f9664aeeae2cec6b6d21644030f77411de2 | |
parent | 9fa58a624bf3958c14e4a267d06070536328e7aa (diff) | |
parent | 17861cdbd3819ca76a0c36c14ffc957d42852666 (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.
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 + } } |