package com.stand.standapp.ui.chat.components

import android.content.Context
import android.util.AttributeSet
import android.widget.TextView

/**
 * 安全的可选择文本 TextView，捕获 setTextIsSelectable 导致的 IndexOutOfBoundsException 崩溃。
 * 问题根源：当文本更新时用户正在拖动选择手柄，resetDragAcceleratorState 尝试设置无效范围 (-1, -1)。
 */
class SafeSelectableTextView @JvmOverloads constructor(
    context: Context,
    attrs: AttributeSet? = null,
    defStyleAttr: Int = 0
) : TextView(context, attrs, defStyleAttr) {

    override fun onTouchEvent(event: android.view.MotionEvent): Boolean {
        return try {
            super.onTouchEvent(event)
        } catch (e: IndexOutOfBoundsException) {
            // 吞掉异常，避免崩溃
            true
        }
    }
}
