SubwayTooter-Android-App/app/src/main/java/jp/juggler/subwaytooter/util/DecodeOptions.kt

56 lines
1.7 KiB
Kotlin
Raw Normal View History

package jp.juggler.subwaytooter.util
import android.content.Context
import android.text.Spannable
import android.text.SpannableStringBuilder
import jp.juggler.subwaytooter.api.entity.CustomEmoji
import jp.juggler.subwaytooter.api.entity.NicoProfileEmoji
import jp.juggler.subwaytooter.api.entity.TootAttachmentLike
import jp.juggler.subwaytooter.table.HighlightWord
2019-02-14 04:05:07 +01:00
import jp.juggler.util.WordTrieTree
2018-01-11 10:31:25 +01:00
import java.util.HashMap
class DecodeOptions(
val context : Context? = null,
var linkHelper : LinkHelper? = null,
var short : Boolean = false,
var decodeEmoji : Boolean = false,
var attachmentList : ArrayList<TootAttachmentLike>? = null,
var linkTag : Any? = null,
2018-01-11 10:31:25 +01:00
var emojiMapCustom : HashMap<String, CustomEmoji>? = null,
var emojiMapProfile : HashMap<String, NicoProfileEmoji>? = null,
var highlightTrie : WordTrieTree? = null,
var unwrapEmojiImageTag :Boolean = false,
var enlargeCustomEmoji :Float = 1f,
var forceHtml : Boolean = false, // force use HTML instead of Misskey Markdown
var mentionFullAcct : Boolean = false
) {
internal fun isMediaAttachment(url : String?) : Boolean {
val list_attachment = attachmentList
if(url == null || list_attachment == null) return false
for(a in list_attachment) {
if(a.hasUrl(url)) return true
}
return false
}
2018-01-19 14:15:39 +01:00
// OUTPUT: true if found highlight
var hasHighlight : Boolean = false
2018-01-19 14:15:39 +01:00
// OUTPUT: found highlight with sound
var highlight_sound : HighlightWord? = null
////////////////////////
// decoder
fun decodeHTML(html : String?) : SpannableStringBuilder {
return HTMLDecoder.decodeHTML(this, html)
}
fun decodeEmoji(s : String?) : Spannable {
return EmojiDecoder.decodeEmoji(this, s ?: "")
}
}