diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/RealmBaseTasksRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/RealmBaseTasksRecyclerViewAdapter.kt index 21123dc36..e7258f314 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/RealmBaseTasksRecyclerViewAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/RealmBaseTasksRecyclerViewAdapter.kt @@ -13,6 +13,7 @@ import com.habitrpg.android.habitica.models.tasks.ChecklistItem import com.habitrpg.android.habitica.models.tasks.Task import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.ui.adapter.BaseRecyclerViewAdapter +import com.habitrpg.android.habitica.ui.adapter.DiffCallback import com.habitrpg.android.habitica.ui.viewHolders.tasks.BaseTaskViewHolder import com.habitrpg.android.habitica.ui.viewmodels.TasksViewModel import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper @@ -88,6 +89,13 @@ abstract class RealmBaseTasksRecyclerViewAdapter( } } + override fun getDiffCallback( + oldList: List, + newList: List + ): DiffCallback? { + return object : DiffCallback(oldList, newList) {} + } + override fun getItemCount(): Int { return data.size + if (showAdventureGuide) 1 else 0 } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/BaseTaskViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/BaseTaskViewHolder.kt index e8881f9df..d61fe4bf8 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/BaseTaskViewHolder.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/BaseTaskViewHolder.kt @@ -169,29 +169,23 @@ abstract class BaseTaskViewHolder( notesTextView?.visibility = View.GONE } - titleTextView.text = data.text - scope.launch(Dispatchers.IO) { - if (data.text.isNotEmpty() && MarkdownParser.containsMarkdown(data.text)) { - val parsedText = MarkdownParser.parseMarkdown(data.text) - withContext(Dispatchers.Main) { - data.parsedText = parsedText - titleTextView.setParsedMarkdown(parsedText) - } - } + val titleText = data.text ?: "" + if (!MarkdownParser.containsMarkdown(titleText)) { + titleTextView.text = titleText + } else { + val parsedText = MarkdownParser.parseMarkdown(titleText) + data.parsedText = parsedText + titleTextView.setParsedMarkdown(parsedText) } + if (displayMode != "minimal") { - notesTextView?.text = data.notes - data.notes?.let { notes -> - scope.launch(Dispatchers.IO) { - if (notes.isEmpty() || !MarkdownParser.containsMarkdown(notes)) { - return@launch - } - val parsedNotes = MarkdownParser.parseMarkdown(notes) - withContext(Dispatchers.Main) { - data.parsedNotes = parsedNotes - notesTextView?.setParsedMarkdown(parsedNotes) - } - } + val notes = data.notes ?: "" + if (!MarkdownParser.containsMarkdown(notes)) { + notesTextView?.text = notes + } else { + val parsedNotes = MarkdownParser.parseMarkdown(notes) + data.parsedNotes = parsedNotes + notesTextView?.setParsedMarkdown(parsedNotes) } } else { notesTextView?.visibility = View.GONE