diff options
author | Stefan Niedermann <info@niedermann.it> | 2020-06-10 14:10:49 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2020-06-10 14:10:49 +0300 |
commit | 56ab5105e785ca463602c204f59af93938ae0bef (patch) | |
tree | 3bef79a12633f2b1aef27da650ec1502183880b0 /app/src | |
parent | 6b0e47da8593afbf45eb9e240094647a5106bc84 (diff) |
Use stable ids in adapter
Diffstat (limited to 'app/src')
3 files changed, 13 insertions, 5 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/model/ItemAdapter.java b/app/src/main/java/it/niedermann/owncloud/notes/model/ItemAdapter.java index 05a5bcfb..32fa3f1a 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/model/ItemAdapter.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/model/ItemAdapter.java @@ -47,6 +47,14 @@ public class ItemAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> i this.gridView = gridView; this.mainColor = context.getResources().getColor(R.color.defaultBrand); this.textColor = Color.WHITE; + setHasStableIds(true); + } + + @Override + public long getItemId(int position) { + return getItemViewType(position) == TYPE_SECTION + ? ((SectionItem) getItem(position)).getTitle().hashCode() + : ((DBNote) getItem(position)).getId(); } /** diff --git a/app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewHolder.java b/app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewHolder.java index db8f39f8..2c6a339a 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewHolder.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewHolder.java @@ -138,7 +138,6 @@ public abstract class NoteViewHolder extends RecyclerView.ViewHolder implements } private void bindContent(@NonNull TextView textView, @NonNull CharSequence charSequence) { - textView.setText(charSequence); if (renderMarkdown) { new Thread(() -> { try { @@ -148,6 +147,8 @@ public abstract class NoteViewHolder extends RecyclerView.ViewHolder implements // Workaround for RxMarkdown: https://github.com/stefan-niedermann/nextcloud-notes/issues/668 } }).start(); + } else { + textView.setText(charSequence); } } diff --git a/app/src/main/java/it/niedermann/owncloud/notes/model/SectionViewHolder.java b/app/src/main/java/it/niedermann/owncloud/notes/model/SectionViewHolder.java index 45eeb140..801ea822 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/model/SectionViewHolder.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/model/SectionViewHolder.java @@ -11,13 +11,12 @@ public class SectionViewHolder extends RecyclerView.ViewHolder { public SectionViewHolder(ItemNotesListSectionItemBinding binding) { super(binding.getRoot()); this.binding = binding; - - if (itemView.getLayoutParams() != null && itemView.getLayoutParams() instanceof StaggeredGridLayoutManager.LayoutParams) { - ((StaggeredGridLayoutManager.LayoutParams) itemView.getLayoutParams()).setFullSpan(true); - } } public void bind(SectionItem item) { binding.sectionTitle.setText(item.getTitle()); + if (itemView.getLayoutParams() != null && itemView.getLayoutParams() instanceof StaggeredGridLayoutManager.LayoutParams) { + ((StaggeredGridLayoutManager.LayoutParams) itemView.getLayoutParams()).setFullSpan(true); + } } }
\ No newline at end of file |