force full acct mention in delete & redraft.
This commit is contained in:
parent
7202698cf5
commit
890377e901
|
@ -765,7 +765,7 @@ class ActPost : AppCompatActivity(),
|
||||||
|
|
||||||
// 再編集の場合はdefault_textは反映されない
|
// 再編集の場合はdefault_textは反映されない
|
||||||
|
|
||||||
val decodeOptions = DecodeOptions(this)
|
val decodeOptions = DecodeOptions(this, mentionFullAcct = true)
|
||||||
|
|
||||||
var text : Spannable
|
var text : Spannable
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,8 @@ class DecodeOptions(
|
||||||
var highlightTrie : WordTrieTree? = null,
|
var highlightTrie : WordTrieTree? = null,
|
||||||
var unwrapEmojiImageTag :Boolean = false,
|
var unwrapEmojiImageTag :Boolean = false,
|
||||||
var enlargeCustomEmoji :Float = 1f,
|
var enlargeCustomEmoji :Float = 1f,
|
||||||
var forceHtml : Boolean = false // force use HTML instead of Misskey Markdown
|
var forceHtml : Boolean = false, // force use HTML instead of Misskey Markdown
|
||||||
|
var mentionFullAcct : Boolean = false
|
||||||
) {
|
) {
|
||||||
|
|
||||||
internal fun isMediaAttachment(url : String?) : Boolean {
|
internal fun isMediaAttachment(url : String?) : Boolean {
|
||||||
|
|
|
@ -315,7 +315,7 @@ object HTMLDecoder {
|
||||||
|
|
||||||
val start = sb.length
|
val start = sb.length
|
||||||
|
|
||||||
sb.append( encodeUrl(options, sb_tmp.toString(), href) )
|
sb.append(encodeUrl(options, sb_tmp.toString(), href))
|
||||||
|
|
||||||
val end = sb.length
|
val end = sb.length
|
||||||
|
|
||||||
|
@ -392,15 +392,33 @@ object HTMLDecoder {
|
||||||
href : String?
|
href : String?
|
||||||
) : CharSequence {
|
) : CharSequence {
|
||||||
|
|
||||||
|
if(display_url.isNotEmpty()) {
|
||||||
|
when(display_url[0]) {
|
||||||
|
'@' -> {
|
||||||
|
// @mention
|
||||||
|
if(href != null && (options.mentionFullAcct || Pref.bpMentionFullAcct(App1.pref))) {
|
||||||
|
val acct = TootAccount.getAcctFromUrl(href)
|
||||||
|
if(acct != null) return "@$acct"
|
||||||
|
}
|
||||||
|
return display_url
|
||||||
|
}
|
||||||
|
|
||||||
|
'#' -> {
|
||||||
|
// #hashtag
|
||||||
|
return display_url
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val context = options.context
|
val context = options.context
|
||||||
|
|
||||||
if(context == null || ! options.short){
|
if(context == null || ! options.short) {
|
||||||
return display_url
|
return display_url
|
||||||
}
|
}
|
||||||
|
|
||||||
// 添付メディアのURLなら絵文字に変換する
|
// 添付メディアのURLなら絵文字に変換する
|
||||||
if( options.isMediaAttachment(href)){
|
if(options.isMediaAttachment(href)) {
|
||||||
return SpannableString(href).apply{
|
return SpannableString(href).apply {
|
||||||
setSpan(
|
setSpan(
|
||||||
EmojiImageSpan(context, R.drawable.emj_1f5bc_fe0f),
|
EmojiImageSpan(context, R.drawable.emj_1f5bc_fe0f),
|
||||||
0,
|
0,
|
||||||
|
@ -412,11 +430,11 @@ object HTMLDecoder {
|
||||||
|
|
||||||
// ニコニコ大百科のURLを変える
|
// ニコニコ大百科のURLを変える
|
||||||
val m = reNicodic.matcher(href)
|
val m = reNicodic.matcher(href)
|
||||||
if( m.find() ){
|
if(m.find()) {
|
||||||
return SpannableString("${m.group(1).decodePercent() }:nicodic:").apply{
|
return SpannableString("${m.group(1).decodePercent()}:nicodic:").apply {
|
||||||
setSpan(
|
setSpan(
|
||||||
EmojiImageSpan(context, R.drawable.nicodic),
|
EmojiImageSpan(context, R.drawable.nicodic),
|
||||||
length -9,
|
length - 9,
|
||||||
length,
|
length,
|
||||||
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
|
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
|
||||||
)
|
)
|
||||||
|
@ -426,17 +444,10 @@ object HTMLDecoder {
|
||||||
// 通常リンクはhttp,httpsだけでなく幾つかのスキーマ名が含まれる
|
// 通常リンクはhttp,httpsだけでなく幾つかのスキーマ名が含まれる
|
||||||
// スキーマ名の直後には必ず :// が出現する
|
// スキーマ名の直後には必ず :// が出現する
|
||||||
// https://github.com/tootsuite/mastodon/pull/7810
|
// https://github.com/tootsuite/mastodon/pull/7810
|
||||||
if( reNormalLink.matcher(display_url).find() ){
|
if(reNormalLink.matcher(display_url).find()) {
|
||||||
return shortenUrl(display_url)
|
return shortenUrl(display_url)
|
||||||
}
|
}
|
||||||
|
|
||||||
// メンションをfull acct にする
|
|
||||||
if( display_url.startsWith("@") && href != null && Pref.bpMentionFullAcct(App1.pref) ){
|
|
||||||
val acct = TootAccount.getAcctFromUrl(href)
|
|
||||||
if(acct != null) return "@$acct"
|
|
||||||
}
|
|
||||||
|
|
||||||
// ハッシュタグやメンションはURLの短縮表示の対象外
|
|
||||||
return display_url
|
return display_url
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue