絵文字が沢山並ぶ場合のワークアラウンドを行う条件を変更
This commit is contained in:
parent
ae26ce9b74
commit
351c495042
@ -7,6 +7,7 @@ import android.text.style.ReplacementSpan
|
|||||||
import jp.juggler.subwaytooter.api.entity.*
|
import jp.juggler.subwaytooter.api.entity.*
|
||||||
import jp.juggler.subwaytooter.table.HighlightWord
|
import jp.juggler.subwaytooter.table.HighlightWord
|
||||||
import jp.juggler.util.WordTrieTree
|
import jp.juggler.util.WordTrieTree
|
||||||
|
import org.jetbrains.anko.collections.forEachReversedByIndex
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class DecodeOptions(
|
class DecodeOptions(
|
||||||
@ -49,10 +50,11 @@ class DecodeOptions(
|
|||||||
// AndroidのStaticLayoutはパラグラフ中に絵文字が沢山あると異常に遅いので、絵文字が連続して登場したら改行文字を挿入する
|
// AndroidのStaticLayoutはパラグラフ中に絵文字が沢山あると異常に遅いので、絵文字が連続して登場したら改行文字を挿入する
|
||||||
private fun SpannableStringBuilder.workaroundForEmojiLineBreak() : SpannableStringBuilder {
|
private fun SpannableStringBuilder.workaroundForEmojiLineBreak() : SpannableStringBuilder {
|
||||||
|
|
||||||
|
val maxEmojiPerLine = if(linkHelper?.isMisskey == true) 5 else 12
|
||||||
|
|
||||||
val spans = getSpans(0, length, ReplacementSpan::class.java)
|
val spans = getSpans(0, length, ReplacementSpan::class.java)
|
||||||
if(spans != null && spans.size >= 40) {
|
if(spans != null && spans.size > maxEmojiPerLine) {
|
||||||
|
|
||||||
val maxEmojiPerLine = if(linkHelper?.isMisskey == true) 5 else 12
|
|
||||||
val insertList = ArrayList<Int>()
|
val insertList = ArrayList<Int>()
|
||||||
var emojiCount = 1
|
var emojiCount = 1
|
||||||
var preEnd : Int? = null
|
var preEnd : Int? = null
|
||||||
@ -78,7 +80,7 @@ class DecodeOptions(
|
|||||||
preEnd = getSpanEnd(span)
|
preEnd = getSpanEnd(span)
|
||||||
}
|
}
|
||||||
// 後ろから順に挿入する
|
// 後ろから順に挿入する
|
||||||
insertList.reversed().forEach { insert(it, "\n") }
|
insertList.forEachReversedByIndex { insert(it, "\n") }
|
||||||
}
|
}
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user