summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwangqi <wangqi@google.com>2018-04-19 11:06:19 -0700
committerCopybara-Service <copybara-piper@google.com>2018-04-19 12:23:53 -0700
commit168eecd46d139f52084bff66570f1b79cece0b9f (patch)
tree86515522771353274586e7ccc5d7bef11f1c154b
parentaf2757a2c3d7922b4a8bf107b6337f6d70dec939 (diff)
Update RTT transcript screen.
1. default to show first message 2. fix bug that first timestamp is not full format when it's grouped with previous messages Bug: 70177426 Test: RttTranscriptAdapterTest PiperOrigin-RevId: 193542992 Change-Id: Ic7a00f1fad8a9305b6fc1111783d589cc7956d58
-rw-r--r--java/com/android/dialer/rtt/RttTranscriptActivity.java1
-rw-r--r--java/com/android/dialer/rtt/RttTranscriptAdapter.java26
2 files changed, 25 insertions, 2 deletions
diff --git a/java/com/android/dialer/rtt/RttTranscriptActivity.java b/java/com/android/dialer/rtt/RttTranscriptActivity.java
index 2087250b3..a87852000 100644
--- a/java/com/android/dialer/rtt/RttTranscriptActivity.java
+++ b/java/com/android/dialer/rtt/RttTranscriptActivity.java
@@ -61,7 +61,6 @@ public class RttTranscriptActivity extends AppCompatActivity {
RecyclerView recyclerView = findViewById(R.id.rtt_recycler_view);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
- layoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setHasFixedSize(true);
adapter = new RttTranscriptAdapter(this);
diff --git a/java/com/android/dialer/rtt/RttTranscriptAdapter.java b/java/com/android/dialer/rtt/RttTranscriptAdapter.java
index 6e030349d..52f9d84bb 100644
--- a/java/com/android/dialer/rtt/RttTranscriptAdapter.java
+++ b/java/com/android/dialer/rtt/RttTranscriptAdapter.java
@@ -21,6 +21,7 @@ import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import com.android.dialer.common.LogUtil;
import com.android.dialer.glidephotomanager.PhotoInfo;
/** Adapter class for holding RTT chat data. */
@@ -30,6 +31,7 @@ public class RttTranscriptAdapter extends RecyclerView.Adapter<RttTranscriptMess
private final Context context;
private RttTranscript rttTranscript;
+ private int firstPositionToShowTimestamp;
RttTranscriptAdapter(Context context) {
this.context = context;
@@ -65,7 +67,9 @@ public class RttTranscriptAdapter extends RecyclerView.Adapter<RttTranscriptMess
rttChatMessageViewHolder.hideTimestamp();
} else {
rttChatMessageViewHolder.showTimestamp(
- rttTranscriptMessage.getTimestamp(), rttTranscriptMessage.getIsRemote(), i == 0);
+ rttTranscriptMessage.getTimestamp(),
+ rttTranscriptMessage.getIsRemote(),
+ i == firstPositionToShowTimestamp);
}
}
@@ -78,10 +82,30 @@ public class RttTranscriptAdapter extends RecyclerView.Adapter<RttTranscriptMess
}
void setRttTranscript(RttTranscript rttTranscript) {
+ if (rttTranscript == null) {
+ LogUtil.w("RttTranscriptAdapter.setRttTranscript", "null RttTranscript");
+ return;
+ }
this.rttTranscript = rttTranscript;
+ firstPositionToShowTimestamp = findFirstPositionToShowTimestamp(rttTranscript);
+
notifyDataSetChanged();
}
+ /**
+ * Returns first position of message that should show time stamp. This is usually the last one of
+ * first grouped messages.
+ */
+ protected static int findFirstPositionToShowTimestamp(RttTranscript rttTranscript) {
+ int i = 0;
+ while (i + 1 < rttTranscript.getMessagesCount()
+ && rttTranscript.getMessages(i).getIsRemote()
+ == rttTranscript.getMessages(i + 1).getIsRemote()) {
+ i++;
+ }
+ return i;
+ }
+
void setPhotoInfo(PhotoInfo photoInfo) {
this.photoInfo = photoInfo;
}