Add RTT transcript to call details.
1. Save RTT transcript when call is destroyed
2. Show RTT transcript link when it's available
Bug: 67596257,77717594
Test: manual
PiperOrigin-RevId: 192673172
Change-Id: If541ad9137c965166548d2fb449e835b95566727
diff --git a/java/com/android/incallui/RttCallPresenter.java b/java/com/android/incallui/RttCallPresenter.java
index 5e83907..21e28ce 100644
--- a/java/com/android/incallui/RttCallPresenter.java
+++ b/java/com/android/incallui/RttCallPresenter.java
@@ -63,28 +63,34 @@
LogUtil.enterBlock("RttCallPresenter.onRttCallScreenUiReady");
InCallPresenter.getInstance().addListener(this);
startListenOnRemoteMessage();
- DialerCall call = CallList.getInstance().getActiveCall();
+ DialerCall call = CallList.getInstance().getCallById(rttCallScreen.getCallId());
if (call != null) {
rttCallScreen.onRestoreRttChat(call.getRttTranscript());
}
}
@Override
+ public void onSaveRttTranscript() {
+ LogUtil.enterBlock("RttCallPresenter.onSaveRttTranscript");
+ DialerCall call = CallList.getInstance().getCallById(rttCallScreen.getCallId());
+ if (call != null) {
+ saveTranscript(call);
+ }
+ }
+
+ @Override
public void onRttCallScreenUiUnready() {
LogUtil.enterBlock("RttCallPresenter.onRttCallScreenUiUnready");
InCallPresenter.getInstance().removeListener(this);
stopListenOnRemoteMessage();
- DialerCall call = CallList.getInstance().getActiveCall();
- if (call != null) {
- saveTranscript(call);
- }
+ onSaveRttTranscript();
}
private void saveTranscript(DialerCall dialerCall) {
LogUtil.enterBlock("RttCallPresenter.saveTranscript");
RttTranscript.Builder builder = RttTranscript.newBuilder();
builder
- .setId(dialerCall.getNumber() + dialerCall.getCreationTimeMillis())
+ .setId(String.valueOf(dialerCall.getCreationTimeMillis()))
.setTimestamp(dialerCall.getCreationTimeMillis())
.setNumber(dialerCall.getNumber())
.addAllMessages(rttCallScreen.getRttTranscriptMessageList());
@@ -100,9 +106,9 @@
}
private void startListenOnRemoteMessage() {
- DialerCall call = CallList.getInstance().getActiveCall();
+ DialerCall call = CallList.getInstance().getCallById(rttCallScreen.getCallId());
if (call == null) {
- LogUtil.i("RttCallPresenter.startListenOnRemoteMessage", "call is not active yet");
+ LogUtil.i("RttCallPresenter.startListenOnRemoteMessage", "call does not exist");
return;
}
rttCall = call.getRttCall();