Update RTT call with real name/number and timer.

Bug: 67596257
Test: manual
PiperOrigin-RevId: 185561269
Change-Id: I81bdf379dd2411540c012df40dc0461f31aca9ea
diff --git a/java/com/android/incallui/rtt/impl/RttChatFragment.java b/java/com/android/incallui/rtt/impl/RttChatFragment.java
index 82dce3e..c7ee2ff 100644
--- a/java/com/android/incallui/rtt/impl/RttChatFragment.java
+++ b/java/com/android/incallui/rtt/impl/RttChatFragment.java
@@ -45,6 +45,7 @@
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.FragmentUtils;
 import com.android.dialer.common.LogUtil;
+import com.android.incallui.call.DialerCall.State;
 import com.android.incallui.incall.protocol.InCallButtonUi;
 import com.android.incallui.incall.protocol.InCallButtonUiDelegate;
 import com.android.incallui.incall.protocol.InCallButtonUiDelegateFactory;
@@ -69,8 +70,6 @@
         InCallButtonUi {
 
   private static final String ARG_CALL_ID = "call_id";
-  private static final String ARG_NAME_OR_NUMBER = "name_or_number";
-  private static final String ARG_SESSION_START_TIME = "session_start_time";
 
   private RecyclerView recyclerView;
   private RttChatAdapter adapter;
@@ -91,6 +90,9 @@
   private RttCallScreenDelegate rttCallScreenDelegate;
   private InCallButtonUiDelegate inCallButtonUiDelegate;
   private View endCallButton;
+  private TextView nameTextView;
+  private Chronometer chronometer;
+  private boolean isTimerStarted;
 
   /**
    * Create a new instance of RttChatFragment.
@@ -101,8 +103,6 @@
   public static RttChatFragment newInstance(String callId) {
     Bundle bundle = new Bundle();
     bundle.putString(ARG_CALL_ID, callId);
-    bundle.putString(ARG_NAME_OR_NUMBER, "Jane Williamson");
-    bundle.putLong(ARG_SESSION_START_TIME, SystemClock.elapsedRealtime());
     RttChatFragment instance = new RttChatFragment();
     instance.setArguments(bundle);
     return instance;
@@ -171,21 +171,8 @@
           inCallButtonUiDelegate.onEndCallClicked();
         });
 
-    String nameOrNumber = null;
-    Bundle bundle = getArguments();
-    if (bundle != null) {
-      nameOrNumber = bundle.getString(ARG_NAME_OR_NUMBER, getString(R.string.unknown));
-    }
-    TextView nameTextView = view.findViewById(R.id.rtt_name_or_number);
-    nameTextView.setText(nameOrNumber);
-
-    long sessionStartTime = SystemClock.elapsedRealtime();
-    if (bundle != null) {
-      sessionStartTime = bundle.getLong(ARG_SESSION_START_TIME, sessionStartTime);
-    }
-    Chronometer chronometer = view.findViewById(R.id.rtt_timer);
-    chronometer.setBase(sessionStartTime);
-    chronometer.start();
+    nameTextView = view.findViewById(R.id.rtt_name_or_number);
+    chronometer = view.findViewById(R.id.rtt_timer);
     return view;
   }
 
@@ -273,13 +260,26 @@
   @Override
   public void setPrimary(@NonNull PrimaryInfo primaryInfo) {
     LogUtil.i("RttChatFragment.setPrimary", primaryInfo.toString());
+    nameTextView.setText(primaryInfo.name);
   }
 
   @Override
   public void setSecondary(@NonNull SecondaryInfo secondaryInfo) {}
 
   @Override
-  public void setCallState(@NonNull PrimaryCallState primaryCallState) {}
+  public void setCallState(@NonNull PrimaryCallState primaryCallState) {
+    LogUtil.i("RttChatFragment.setCallState", primaryCallState.toString());
+    if (!isTimerStarted && primaryCallState.state == State.ACTIVE) {
+      LogUtil.i(
+          "RttChatFragment.setCallState", "starting timer with base: %d", chronometer.getBase());
+      chronometer.setBase(
+          primaryCallState.connectTimeMillis
+              - System.currentTimeMillis()
+              + SystemClock.elapsedRealtime());
+      chronometer.start();
+      isTimerStarted = true;
+    }
+  }
 
   @Override
   public void setEndCallButtonEnabled(boolean enabled, boolean animate) {}