Show SIM auto select reason in in call UI

The assisted dialed string will also along show with the "calling via" label. To handle the long string, Top row is now a marquee.

Bug: 72571130
Test: Unit tests
PiperOrigin-RevId: 190156719
Change-Id: I18a13712bdc9d780f744ef65a1773d249e40fb15
diff --git a/java/com/android/incallui/CallCardPresenter.java b/java/com/android/incallui/CallCardPresenter.java
index 8eb07c5..49f819b 100644
--- a/java/com/android/incallui/CallCardPresenter.java
+++ b/java/com/android/incallui/CallCardPresenter.java
@@ -54,6 +54,7 @@
 import com.android.dialer.oem.MotorolaUtils;
 import com.android.dialer.phonenumberutil.PhoneNumberHelper;
 import com.android.dialer.postcall.PostCall;
+import com.android.dialer.preferredsim.suggestion.SuggestionProvider;
 import com.android.incallui.ContactInfoCache.ContactCacheEntry;
 import com.android.incallui.ContactInfoCache.ContactInfoCacheCallback;
 import com.android.incallui.InCallPresenter.InCallDetailsListener;
@@ -478,6 +479,7 @@
                   .setSessionModificationState(primary.getVideoTech().getSessionModificationState())
                   .setDisconnectCause(primary.getDisconnectCause())
                   .setConnectionLabel(getConnectionLabel())
+                  .setSimSuggestionReason(getSimSuggestionReason())
                   .setConnectionIcon(getCallStateIcon())
                   .setGatewayNumber(getGatewayNumber())
                   .setCallSubject(shouldShowCallSubject(primary) ? primary.getCallSubject() : null)
@@ -988,6 +990,21 @@
     return primary.getCallProviderLabel();
   }
 
+  @Nullable
+  private SuggestionProvider.Reason getSimSuggestionReason() {
+    String value =
+        primary.getIntentExtras().getString(SuggestionProvider.EXTRA_SIM_SUGGESTION_REASON);
+    if (value == null) {
+      return null;
+    }
+    try {
+      return SuggestionProvider.Reason.valueOf(value);
+    } catch (IllegalArgumentException e) {
+      LogUtil.e("CallCardPresenter.getConnectionLabel", "unknown reason " + value);
+      return null;
+    }
+  }
+
   private Drawable getCallStateIcon() {
     // Return connection icon if one exists.
     StatusHints statusHints = primary.getStatusHints();