Files
assistant-android/app/src/main/java/com/gh/common/view/HighlightableTextView.kt

33 lines
1.3 KiB
Kotlin

package com.gh.common.view
import android.content.ClipboardManager
import android.content.Context
import android.graphics.Color
import android.util.AttributeSet
import android.widget.TextView
import com.gh.common.util.SimpleCallback
import com.gh.common.util.TextHelper
import com.gh.gamecenter.R
import com.halo.assistant.HaloApp
import com.lightgame.utils.Utils
/**
* 默认用 ###高亮内容### 格式来高亮文字并添加点击复制至剪贴板功能的 TextView
*/
class HighlightableTextView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : TextView(context, attrs) {
init {
movementMethod = CustomLinkMovementMethod.getInstance()
highlightColor = Color.TRANSPARENT
}
override fun setText(text: CharSequence?, type: BufferType?) {
super.setText(TextHelper.getHighlightedSpannableStringThatIsWrappedInsideWrapper(context, text.toString(), "###", R.color.theme_font, object : SimpleCallback<String> {
override fun onCallback(arg: String) {
val application = HaloApp.getInstance().application
val cmb = application.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
cmb.text = arg
Utils.toast(application, "已复制:$arg")
}
}), BufferType.SPANNABLE)
}
}