CustomAdapter.java 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package com.noahvogt.miniprojekt.data;
  2. import android.os.Build;
  3. import android.view.ViewGroup;
  4. import androidx.annotation.NonNull;
  5. import androidx.annotation.RequiresApi;
  6. import androidx.recyclerview.widget.DiffUtil;
  7. import androidx.recyclerview.widget.ListAdapter;
  8. import com.noahvogt.miniprojekt.DataBase.Message;
  9. import java.util.List;
  10. import java.util.Objects;
  11. public class CustomAdapter extends ListAdapter<Message, EmailViewHolder> {
  12. public SelectedMessage selectedMessage;
  13. public List<Message> messageList;
  14. public CustomAdapter(@NonNull DiffUtil.ItemCallback<Message> diffCallback, SelectedMessage selectedMessage) {
  15. super(diffCallback);
  16. this.selectedMessage = selectedMessage;
  17. }
  18. @Override
  19. public EmailViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  20. return EmailViewHolder.create(parent,selectedMessage, messageList);
  21. }
  22. /* bind data to View*/
  23. @Override
  24. public void onBindViewHolder(EmailViewHolder holder, int position) {
  25. Message current = getItem(position);
  26. holder.bind(current.getFrom(),current.getSubject(), current.getDate() ,current.getTextContent()); }
  27. /*get List from adapter which is shown*/
  28. public void getList(List<Message> messageList){
  29. System.out.println("GetList Adapter Loop");
  30. this.messageList = messageList;
  31. }
  32. public interface SelectedMessage{
  33. void selectedMessage(Message messages, EmailViewModel emailViewModel);
  34. }
  35. public static class EmailDiff extends DiffUtil.ItemCallback<Message> {
  36. @Override
  37. public boolean areItemsTheSame(@NonNull Message oldItem, @NonNull Message newItem) {
  38. return oldItem == newItem;
  39. }
  40. @RequiresApi(api = Build.VERSION_CODES.KITKAT)
  41. @Override
  42. public boolean areContentsTheSame(@NonNull Message oldItem, @NonNull Message newItem) {
  43. return Objects.equals(oldItem.getId(), newItem.getId());
  44. }
  45. }
  46. }