diff options
author | wangqi <wangqi@google.com> | 2018-04-19 11:06:19 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-04-19 12:23:53 -0700 |
commit | 168eecd46d139f52084bff66570f1b79cece0b9f (patch) | |
tree | 86515522771353274586e7ccc5d7bef11f1c154b | |
parent | af2757a2c3d7922b4a8bf107b6337f6d70dec939 (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.java | 1 | ||||
-rw-r--r-- | java/com/android/dialer/rtt/RttTranscriptAdapter.java | 26 |
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; } |