Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.DiffUtil;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.ListAdapter;
import androidx.recyclerview.widget.RecyclerView;

import com.d4rk.androidtutorials.java.R;
Expand All @@ -18,7 +20,6 @@
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate;
import com.google.android.material.textview.MaterialTextView;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
Expand Down Expand Up @@ -74,7 +75,7 @@ private void loadNotes() {
if (!executor.isShutdown()) {
executor.execute(() -> {
List<Note> notes = db.noteDao().getAll();
runOnUiThread(() -> adapter.setNotes(notes));
runOnUiThread(() -> adapter.submitList(notes));
});
}
}
Expand All @@ -86,14 +87,24 @@ protected void onDestroy() {
handler.removeCallbacksAndMessages(null);
}

private static class NotesAdapter extends RecyclerView.Adapter<NotesAdapter.NoteViewHolder> {
private List<Note> notes = new ArrayList<>();

void setNotes(List<Note> notes) {
this.notes = notes;
notifyDataSetChanged();
private static class NotesAdapter extends ListAdapter<Note, NotesAdapter.NoteViewHolder> {
NotesAdapter() {
super(DIFF_CALLBACK);
}

private static final DiffUtil.ItemCallback<Note> DIFF_CALLBACK =
new DiffUtil.ItemCallback<Note>() {
@Override
public boolean areItemsTheSame(@NonNull Note oldItem, @NonNull Note newItem) {
return oldItem.id == newItem.id;
}

@Override
public boolean areContentsTheSame(@NonNull Note oldItem, @NonNull Note newItem) {
return oldItem.text.equals(newItem.text);
}
};

@NonNull
@Override
public NoteViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
Expand All @@ -104,12 +115,7 @@ public NoteViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType

@Override
public void onBindViewHolder(@NonNull NoteViewHolder holder, int position) {
holder.textView.setText(notes.get(position).getText());
}

@Override
public int getItemCount() {
return notes.size();
holder.textView.setText(getItem(position).getText());
}

static class NoteViewHolder extends RecyclerView.ViewHolder {
Expand Down