diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2018-03-09 01:40:21 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-03-09 01:40:21 +0000 |
commit | 7fa0c7172602dca56296d10d5d8b703ab2341ead (patch) | |
tree | 5afeec11dbb9904b38dd2e9ffc71e63f5e0669b2 /java/com/android/incallui/rtt/impl/RttChatAdapter.java | |
parent | 683fdb16ae2f304587bc4ec0ff49e05343483d2c (diff) | |
parent | 724cc8f065b9ea737a11504d3f3c3691451c7914 (diff) |
Merge changes I5e6a3c37,I33bd32fc,I3023b484,I0f0798a5
* changes:
Show bubble when call connected and in-call UI not showing.
Add divider line to nui voicemail alert
Optimize characters sent to remote party for RTT chat.
Refactor array of RttChatMessage to List.
Diffstat (limited to 'java/com/android/incallui/rtt/impl/RttChatAdapter.java')
-rw-r--r-- | java/com/android/incallui/rtt/impl/RttChatAdapter.java | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/java/com/android/incallui/rtt/impl/RttChatAdapter.java b/java/com/android/incallui/rtt/impl/RttChatAdapter.java index 69837188a..912314945 100644 --- a/java/com/android/incallui/rtt/impl/RttChatAdapter.java +++ b/java/com/android/incallui/rtt/impl/RttChatAdapter.java @@ -24,7 +24,6 @@ import android.view.View; import android.view.ViewGroup; import com.android.dialer.common.LogUtil; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; /** Adapter class for holding RTT chat data. */ @@ -76,21 +75,22 @@ public class RttChatAdapter extends RecyclerView.Adapter<RttChatMessageViewHolde if (lastIndexOfRemoteMessage >= 0) { rttChatMessage = rttMessages.get(lastIndexOfRemoteMessage); } - RttChatMessage[] newMessages = RttChatMessage.getRemoteRttChatMessage(rttChatMessage, newText); + List<RttChatMessage> newMessages = + RttChatMessage.getRemoteRttChatMessage(rttChatMessage, newText); if (rttChatMessage == null) { lastIndexOfRemoteMessage = rttMessages.size(); - rttMessages.add(lastIndexOfRemoteMessage, newMessages[0]); - rttMessages.addAll(Arrays.asList(newMessages).subList(1, newMessages.length)); - notifyItemRangeInserted(lastIndexOfRemoteMessage, newMessages.length); + rttMessages.add(lastIndexOfRemoteMessage, newMessages.get(0)); + rttMessages.addAll(newMessages.subList(1, newMessages.size())); + notifyItemRangeInserted(lastIndexOfRemoteMessage, newMessages.size()); lastIndexOfRemoteMessage = rttMessages.size() - 1; } else { - rttMessages.set(lastIndexOfRemoteMessage, newMessages[0]); + rttMessages.set(lastIndexOfRemoteMessage, newMessages.get(0)); int lastIndex = rttMessages.size(); - rttMessages.addAll(Arrays.asList(newMessages).subList(1, newMessages.length)); + rttMessages.addAll(newMessages.subList(1, newMessages.size())); notifyItemChanged(lastIndexOfRemoteMessage); - notifyItemRangeInserted(lastIndex, newMessages.length); + notifyItemRangeInserted(lastIndex, newMessages.size()); } if (rttMessages.get(lastIndexOfRemoteMessage).isFinished()) { lastIndexOfRemoteMessage = -1; @@ -139,6 +139,18 @@ public class RttChatAdapter extends RecyclerView.Adapter<RttChatMessageViewHolde lastIndexOfLocalMessage = -1; } + String computeChangeOfLocalMessage(String newMessage) { + RttChatMessage rttChatMessage = null; + if (lastIndexOfLocalMessage >= 0) { + rttChatMessage = rttMessages.get(lastIndexOfLocalMessage); + } + if (rttChatMessage == null || rttChatMessage.isFinished()) { + return newMessage; + } else { + return RttChatMessage.computeChangedString(rttChatMessage.getContent(), newMessage); + } + } + void addRemoteMessage(String message) { LogUtil.enterBlock("RttChatAdapater.addRemoteMessage"); if (TextUtils.isEmpty(message)) { |