-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathChatAdapter.java
More file actions
53 lines (41 loc) · 1.57 KB
/
ChatAdapter.java
File metadata and controls
53 lines (41 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package com.example.scolarai;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
public class ChatAdapter extends RecyclerView.Adapter<ChatAdapter.ChatViewHolder> {
private final ArrayList<ChatMessage> messages;
public ChatAdapter(ArrayList<ChatMessage> messages) {
this.messages = messages;
}
@Override
public int getItemViewType(int position) {
return messages.get(position).isUser() ? 1 : 0; // 1=user, 0=AI
}
@NonNull
@Override
public ChatViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
int layout = viewType == 1 ? R.layout.item_chat_user : R.layout.item_chat_ai;
View view = LayoutInflater.from(parent.getContext()).inflate(layout, parent, false);
return new ChatViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ChatViewHolder holder, int position) {
ChatMessage msg = messages.get(position);
holder.messageText.setText(msg.getMessage());
}
@Override
public int getItemCount() {
return messages.size();
}
static class ChatViewHolder extends RecyclerView.ViewHolder {
TextView messageText;
public ChatViewHolder(@NonNull View itemView) {
super(itemView);
messageText = itemView.findViewById(R.id.text_message);
}
}
}