Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.96 KB | None | 0 0
  1. public class MessageAdapter1 extends RecyclerView.Adapter<MessageAdapter1.ViewHolder> {
  2.  
  3. private List<MessageList> mMessages;
  4. private int[] mUsernameColors;
  5. private Context context;
  6.  
  7. public MessageAdapter1(Context context, List<MessageList> messages) {
  8. mMessages = messages;
  9. this.context = context;
  10. }
  11.  
  12. @Override
  13. public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  14. int layout = -1;
  15.  
  16. int type = -1;
  17. if(mMessages.get(viewType).getDir().equals("left")) type = 1;
  18. else if(mMessages.get(viewType).getDir().equals("right")) type = 0;
  19. else if(mMessages.get(viewType).getDir().equals("typing")) type = 2;
  20.  
  21.  
  22. switch (type) {
  23. case MessageList.TYPE_MESSAGE_RIGHT:
  24. layout = R.layout.right_message;
  25. break;
  26. case MessageList.TYPE_MESSAGE_LEFT:
  27. layout = R.layout.left_message;
  28. break;
  29. case MessageList.TYPE_ACTION:
  30. layout = R.layout.message_left;
  31. break;
  32. }
  33.  
  34. View v = LayoutInflater.from(parent.getContext()).inflate(layout, parent, false);
  35.  
  36. return new ViewHolder(v);
  37. }
  38.  
  39. @Override
  40. public void onBindViewHolder(ViewHolder viewHolder, int position) {
  41. MessageList message = mMessages.get(position);
  42.  
  43.  
  44. viewHolder.setGroupMessage(message);
  45. }
  46.  
  47. @Override
  48. public int getItemCount() {
  49. return mMessages.size();
  50. }
  51.  
  52.  
  53.  
  54. @Override
  55. public int getItemViewType(int position) {
  56.  
  57. return position;
  58. }
  59.  
  60.  
  61.  
  62.  
  63. public class ViewHolder extends RecyclerView.ViewHolder {
  64.  
  65. private LinearLayout groupMessage;
  66.  
  67. public ViewHolder(View itemView) {
  68. super(itemView);
  69.  
  70. groupMessage = (LinearLayout)itemView.findViewById(R.id.messages);
  71.  
  72. }
  73.  
  74. public void setGroupMessage(MessageList m) {
  75.  
  76.  
  77. if (null == groupMessage) return;
  78.  
  79. int i = 0;
  80.  
  81. if(m.getMessageStatus() == false){
  82. m.setMessageStatus(true);
  83. for (String message : m.getMessageList()) {
  84.  
  85. //TextView text = new TextView(activity);
  86. TextView text = new MyTextView(context);
  87. LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
  88. p.setMargins(0, 0, 0, 2);
  89.  
  90. if (m.getDir().equals("left")) {
  91.  
  92. text.setTextColor(Color.BLACK);
  93. p.gravity = Gravity.LEFT;
  94. if(m.getMessageList().size() == 1){
  95. text.setBackgroundResource(R.drawable.message_left_default);
  96. }
  97. else if (i == 0) {
  98. text.setBackgroundResource(R.drawable.message_left_first);
  99. } else if (i + 1 == m.getMessageList().size()) {
  100. text.setBackgroundResource(R.drawable.message_left_last);
  101. } else {
  102. text.setBackgroundResource(R.drawable.message_left);
  103. }
  104.  
  105.  
  106. } else{
  107.  
  108. p.gravity = Gravity.RIGHT;
  109. text.setTextColor(Color.WHITE);
  110.  
  111. if(m.getMessageList().size() == 1){
  112. text.setBackgroundResource(R.drawable.message_right_default);
  113. }
  114. else if (i == 0) {
  115. text.setBackgroundResource(R.drawable.message_right_first);
  116. } else if (i + 1 == m.getMessageList().size()) {
  117. text.setBackgroundResource(R.drawable.message_right_last);
  118. } else {
  119. text.setBackgroundResource(R.drawable.message_right);
  120. }
  121.  
  122. }
  123.  
  124.  
  125. text.setLayoutParams(p);
  126. text.setText(message);
  127. text.setPadding(8, 8, 8, 8);
  128.  
  129. text.setTextSize(18f);
  130.  
  131.  
  132.  
  133. //text.setTextAppearance(context, android.R.style.TextAppearance_Large);
  134. groupMessage.addView(text);
  135. i++;
  136. }
  137.  
  138. }
  139. }
  140. }
  141. }
  142.  
  143. public RecyclerView.Adapter mAdapter;
  144. public RecyclerView mMessagesView;
  145. public List<MessageList> Message_List = new ArrayList<MessageList>();
  146.  
  147. mAdapter = new MessageAdapter1(getApplicationContext(), Message_List);
  148. mMessagesView = (RecyclerView) findViewById(R.id.messages);
  149. mMessagesView.setLayoutManager(new LinearLayoutManager(this));
  150. mMessagesView.setAdapter(mAdapter);
  151.  
  152. Message_List.add(data);
  153. mAdapter.notifyItemInserted(Message_List.size() - 1);
  154.  
  155. Message_List.clear();
  156. mAdapter.notifyDataSetChanged();
  157.  
  158. Message_List.add(some data new); // message i am new data (first)
  159. mAdapter.notifyItemInserted(Message_List.size() - 1);
  160.  
  161. Message_List.add(some data new); // message i am new data (second)
  162. mAdapter.notifyItemInserted(Message_List.size() - 1);
  163.  
  164. mAdapter.remove(position);
  165. mAdapter.notifyDataSetChanged();
  166.  
  167. public void refreshMessages(List<Message_List> messages) {
  168. this.mMessages = messages;
  169. notifyItemRangeChanged(0, mMessages.size());
  170. }
  171.  
  172. public void removeAll() {
  173. cardItems.clear(); //clear list
  174. notifyDataSetChanged();
  175. }
  176.  
  177. private void initRecycleView() {
  178. recyclerView.setHasFixedSize(true);
  179.  
  180. // linear layout manager
  181. layoutManager = new LinearLayoutManager(this);
  182. recyclerView.setLayoutManager(layoutManagerTag);
  183.  
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement