Skip to content

Commit 53c02f9

Browse files
committed
extract markwon
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
1 parent 05bdb35 commit 53c02f9

2 files changed

Lines changed: 46 additions & 16 deletions

File tree

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/*
2+
* Nextcloud Talk - Android Client
3+
*
4+
* SPDX-FileCopyrightText: 2025 Your Name <your@email.com>
5+
* SPDX-License-Identifier: GPL-3.0-or-later
6+
*/
7+
8+
package com.nextcloud.talk.utils
9+
10+
import android.content.Context
11+
import android.util.Log
12+
import android.view.View
13+
import com.nextcloud.talk.R
14+
import io.noties.markwon.AbstractMarkwonPlugin
15+
import io.noties.markwon.Markwon
16+
import io.noties.markwon.MarkwonConfiguration
17+
import io.noties.markwon.core.MarkwonTheme
18+
import io.noties.markwon.ext.strikethrough.StrikethroughPlugin
19+
import io.noties.markwon.ext.tasklist.TaskListDrawable
20+
import io.noties.markwon.ext.tasklist.TaskListPlugin
21+
22+
object MarkwonUtils {
23+
private const val TAG = "MarkwonUtils"
24+
25+
fun build(context: Context, textColor: Int): Markwon {
26+
val drawable = TaskListDrawable(textColor, textColor, context.getColor(R.color.bg_default))
27+
return Markwon.builder(context)
28+
.usePlugin(object : AbstractMarkwonPlugin() {
29+
override fun configureTheme(builder: MarkwonTheme.Builder) {
30+
builder.isLinkUnderlined(true).headingBreakHeight(0)
31+
}
32+
33+
override fun configureConfiguration(builder: MarkwonConfiguration.Builder) {
34+
builder.linkResolver { view: View?, link: String? ->
35+
Log.i(TAG, "Link action not implemented $view / $link")
36+
}
37+
}
38+
})
39+
.usePlugin(TaskListPlugin.create(drawable))
40+
.usePlugin(StrikethroughPlugin.create())
41+
.build()
42+
}
43+
}

app/src/main/java/com/nextcloud/talk/utils/message/MessageUtils.kt

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ package com.nextcloud.talk.utils.message
99
import android.content.Context
1010
import android.content.Intent
1111
import android.graphics.Typeface
12+
import android.net.Uri
1213
import android.text.SpannableString
1314
import android.text.SpannableStringBuilder
1415
import android.text.Spanned
1516
import android.text.style.StyleSpan
1617
import android.util.Log
1718
import android.view.View
18-
import androidx.core.net.toUri
1919
import com.nextcloud.talk.R
2020
import com.nextcloud.talk.chat.data.model.ChatMessage
2121
import com.nextcloud.talk.ui.theme.ViewThemeUtils
@@ -28,6 +28,7 @@ import io.noties.markwon.ext.strikethrough.StrikethroughPlugin
2828
import io.noties.markwon.ext.tables.TablePlugin
2929
import io.noties.markwon.ext.tasklist.TaskListDrawable
3030
import io.noties.markwon.ext.tasklist.TaskListPlugin
31+
import com.nextcloud.talk.utils.MarkwonUtils
3132

3233
class MessageUtils(val context: Context) {
3334
fun enrichChatReplyMessageText(
@@ -203,21 +204,7 @@ class MessageUtils(val context: Context) {
203204
}
204205

205206
fun getRenderedMarkdownText(context: Context, markdown: String, textColor: Int): Spanned {
206-
val drawable = TaskListDrawable(textColor, textColor, context.getColor(R.color.bg_default))
207-
val markwon = Markwon.builder(context).usePlugin(object : AbstractMarkwonPlugin() {
208-
override fun configureTheme(builder: MarkwonTheme.Builder) {
209-
builder.isLinkUnderlined(true).headingBreakHeight(0)
210-
}
211-
212-
override fun configureConfiguration(builder: MarkwonConfiguration.Builder) {
213-
builder.linkResolver { view: View?, link: String? ->
214-
Log.i(TAG, "Link action not implemented $view / $link")
215-
}
216-
}
217-
})
218-
.usePlugin(TaskListPlugin.create(drawable))
219-
.usePlugin(TablePlugin.create { _ -> })
220-
.usePlugin(StrikethroughPlugin.create()).build()
207+
val markwon = MarkwonUtils.build(context, textColor)
221208
return markwon.toMarkdown(markdown)
222209
}
223210

0 commit comments

Comments
 (0)