summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
}