Updated call number by NW is not displayed

CallCardPresenter updates a call number if the number is updated by NW.
But the logic is worng. The comparing numbers are always same. Because
it compares with the same objects in DialerCall#areSameNumber.

This is a upstream change from:
https://android-review.googlesource.com/c/platform/packages/apps/Dialer/+/556000

originating number is shown in the call screen.
Bug: 70201489
Test: manual - Verified that a call number that changed from a
PiperOrigin-RevId: 183022988
Change-Id: I04305998e77ca120b1248636c63984b3d20f0db1
diff --git a/java/com/android/incallui/CallCardPresenter.java b/java/com/android/incallui/CallCardPresenter.java
index eed076d..bdbbe8f 100644
--- a/java/com/android/incallui/CallCardPresenter.java
+++ b/java/com/android/incallui/CallCardPresenter.java
@@ -117,7 +117,9 @@
   private final Handler handler = new Handler();
 
   private DialerCall primary;
+  private String primaryNumber;
   private DialerCall secondary;
+  private String secondaryNumber;
   private ContactCacheEntry primaryContactInfo;
   private ContactCacheEntry secondaryContactInfo;
   @Nullable private ContactsPreferences contactsPreferences;
@@ -284,17 +286,27 @@
 
     LogUtil.v("CallCardPresenter.onStateChange", "primary call: " + primary);
     LogUtil.v("CallCardPresenter.onStateChange", "secondary call: " + secondary);
+    String primaryNumber = null;
+    String secondaryNumber = null;
+    if (primary != null) {
+      primaryNumber = primary.getNumber();
+    }
+    if (secondary != null) {
+      secondaryNumber = secondary.getNumber();
+    }
 
     final boolean primaryChanged =
         !(DialerCall.areSame(this.primary, primary)
-            && DialerCall.areSameNumber(this.primary, primary));
+            && TextUtils.equals(this.primaryNumber, primaryNumber));
     final boolean secondaryChanged =
         !(DialerCall.areSame(this.secondary, secondary)
-            && DialerCall.areSameNumber(this.secondary, secondary));
+            && TextUtils.equals(this.secondaryNumber, secondaryNumber));
 
     this.secondary = secondary;
+    this.secondaryNumber = secondaryNumber;
     DialerCall previousPrimary = this.primary;
     this.primary = primary;
+    this.primaryNumber = primaryNumber;
 
     if (this.primary != null) {
       InCallPresenter.getInstance().onForegroundCallChanged(this.primary);
diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java
index a30367f..e581ba3 100644
--- a/java/com/android/incallui/call/DialerCall.java
+++ b/java/com/android/incallui/call/DialerCall.java
@@ -394,17 +394,6 @@
     return call1.getId().equals(call2.getId());
   }
 
-  public static boolean areSameNumber(DialerCall call1, DialerCall 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 void addListener(DialerCallListener listener) {
     Assert.isMainThread();
     listeners.add(listener);