From fb008c2423a510a57be251d16bc963f64e98c2da Mon Sep 17 00:00:00 2001 From: Roshan Pius Date: Thu, 11 Jun 2015 11:18:49 -0700 Subject: Check if numbers have changed to update the contact cache. Along with checking if the call ID's are the same, add a check to see if the 2 phone call numbers are still the same to correctly update the contact info cache used to present the UI to the user. Bug: 20032056 Change-Id: I81bcc6b31df9fa12c3a399ce6a2897662a1be74b --- InCallUI/src/com/android/incallui/Call.java | 12 ++++++++++++ InCallUI/src/com/android/incallui/CallCardPresenter.java | 6 ++++-- 2 files changed, 16 insertions(+), 2 deletions(-) (limited to 'InCallUI') diff --git a/InCallUI/src/com/android/incallui/Call.java b/InCallUI/src/com/android/incallui/Call.java index 77d6117ac..da2ef3c07 100644 --- a/InCallUI/src/com/android/incallui/Call.java +++ b/InCallUI/src/com/android/incallui/Call.java @@ -30,6 +30,7 @@ import android.telecom.GatewayInfo; import android.telecom.InCallService.VideoCall; import android.telecom.PhoneAccountHandle; import android.telecom.VideoProfile; +import android.text.TextUtils; import java.util.ArrayList; import java.util.List; @@ -538,6 +539,17 @@ public class Call { return call1.getId().equals(call2.getId()); } + public static boolean areSameNumber(Call call1, Call call2) { + if (call1 == null && call2 == null) { + return true; + } else if (call1 == null || call2 == null) { + return false; + } + + // otherwise compare call Numbers + return TextUtils.equals(call1.getNumber(), call2.getNumber()); + } + public int getSessionModificationState() { return mSessionModificationState; } diff --git a/InCallUI/src/com/android/incallui/CallCardPresenter.java b/InCallUI/src/com/android/incallui/CallCardPresenter.java index 5cbffa628..c93fe4cb4 100644 --- a/InCallUI/src/com/android/incallui/CallCardPresenter.java +++ b/InCallUI/src/com/android/incallui/CallCardPresenter.java @@ -201,8 +201,10 @@ public class CallCardPresenter extends Presenter Log.d(this, "Primary call: " + primary); Log.d(this, "Secondary call: " + secondary); - final boolean primaryChanged = !Call.areSame(mPrimary, primary); - final boolean secondaryChanged = !Call.areSame(mSecondary, secondary); + final boolean primaryChanged = !(Call.areSame(mPrimary, primary) && + Call.areSameNumber(mPrimary, primary)); + final boolean secondaryChanged = !(Call.areSame(mSecondary, secondary) && + Call.areSameNumber(mSecondary, secondary)); mSecondary = secondary; Call previousPrimary = mPrimary; -- cgit v1.2.3