From a002249fa26f0b19dab5dcea44f37eded1f4a306 Mon Sep 17 00:00:00 2001 From: Carl Vuorinen Date: Fri, 27 Jul 2018 19:46:32 +0300 Subject: [PATCH] Handle task title emojis & markdown in yesterdailies view Fixes #927 --- .../res/layout/dialog_yesterdaily_task.xml | 3 ++- .../views/yesterdailies/YesterdailyDialog.kt | 23 +++++++++++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/Habitica/res/layout/dialog_yesterdaily_task.xml b/Habitica/res/layout/dialog_yesterdaily_task.xml index c6ebf6365..2935567e7 100644 --- a/Habitica/res/layout/dialog_yesterdaily_task.xml +++ b/Habitica/res/layout/dialog_yesterdaily_task.xml @@ -34,8 +34,9 @@ android:button="@drawable/daily_checkbox" android:gravity="center" /> - diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/yesterdailies/YesterdailyDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/yesterdailies/YesterdailyDialog.kt index 8d97cdd0c..ae745b591 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/yesterdailies/YesterdailyDialog.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/yesterdailies/YesterdailyDialog.kt @@ -16,10 +16,14 @@ import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.models.tasks.ChecklistItem import com.habitrpg.android.habitica.models.tasks.Task +import com.habitrpg.android.habitica.ui.helpers.MarkdownParser import com.habitrpg.android.habitica.ui.helpers.bindColor import io.reactivex.Observable +import io.reactivex.Single import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.functions.Consumer +import io.reactivex.schedulers.Schedulers +import net.pherth.android.emoji_library.EmojiTextView import java.util.* import java.util.concurrent.TimeUnit @@ -114,8 +118,23 @@ class YesterdailyDialog private constructor(context: Context, private val userRe } else { checkboxHolder.setBackgroundResource(task.lightTaskColor) } - val textView = taskView.findViewById(R.id.text_view) as? TextView - textView?.text = task.text + + val emojiView = taskView.findViewById(R.id.text_view) as? EmojiTextView + if (task.parsedText != null) { + emojiView?.text = task.parsedText + } else { + emojiView?.text = task.text + + Single.just(task.text) + .map { MarkdownParser.parseMarkdown(it) } + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(Consumer{ parsedText -> + task.parsedText = parsedText + emojiView?.text = task.parsedText + }, RxErrorHandler.handleEmptyError()) + } + }