parent
44ce6fa9fc
commit
2a9ca1f315
@ -0,0 +1,70 @@ |
||||
package io.legado.app.ui.widget |
||||
|
||||
import android.content.Context |
||||
import android.text.Spannable |
||||
import android.text.SpannableString |
||||
import android.text.style.ForegroundColorSpan |
||||
import android.util.AttributeSet |
||||
import androidx.appcompat.widget.AppCompatTextView |
||||
import io.legado.app.App |
||||
import io.legado.app.R |
||||
import io.legado.app.help.AppConfig |
||||
import io.legado.app.lib.dialogs.alert |
||||
import io.legado.app.lib.theme.Selector |
||||
import io.legado.app.lib.theme.ThemeStore |
||||
import io.legado.app.lib.theme.accentColor |
||||
import io.legado.app.utils.dp |
||||
import io.legado.app.utils.getCompatColor |
||||
import org.jetbrains.anko.sdk27.listeners.onClick |
||||
|
||||
class ChineseConverter(context: Context, attrs: AttributeSet?) : AppCompatTextView(context, attrs) { |
||||
|
||||
private val spannableString = SpannableString("简/繁") |
||||
private val enabledSpan = ForegroundColorSpan(App.INSTANCE.accentColor) |
||||
private var onChanged: (() -> Unit)? = null |
||||
|
||||
init { |
||||
background = Selector.shapeBuild() |
||||
.setCornerRadius(1.dp) |
||||
.setStrokeWidth(1.dp) |
||||
.setDisabledStrokeColor(context.getCompatColor(R.color.md_grey_500)) |
||||
.setDefaultStrokeColor(ThemeStore.textColorSecondary(context)) |
||||
.setSelectedStrokeColor(ThemeStore.accentColor(context)) |
||||
.setPressedBgColor(context.getCompatColor(R.color.transparent30)) |
||||
.create() |
||||
setTextColor( |
||||
Selector.colorBuild() |
||||
.setDefaultColor(ThemeStore.textColorSecondary(context)) |
||||
.setSelectedColor(ThemeStore.accentColor(context)) |
||||
.setDisabledColor(context.getCompatColor(R.color.md_grey_500)) |
||||
.create() |
||||
) |
||||
upUi(AppConfig.chineseConverterType) |
||||
onClick { |
||||
selectType() |
||||
} |
||||
} |
||||
|
||||
private fun upUi(type: Int) { |
||||
spannableString.removeSpan(enabledSpan) |
||||
when (type) { |
||||
1 -> spannableString.setSpan(enabledSpan, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE) |
||||
2 -> spannableString.setSpan(enabledSpan, 2, 3, Spannable.SPAN_INCLUSIVE_EXCLUSIVE) |
||||
} |
||||
text = spannableString |
||||
} |
||||
|
||||
private fun selectType() { |
||||
context.alert(titleResource = R.string.chinese_converter) { |
||||
items(context.resources.getStringArray(R.array.chinese_mode).toList()) { _, i -> |
||||
AppConfig.chineseConverterType = i |
||||
upUi(i) |
||||
onChanged?.invoke() |
||||
} |
||||
}.show() |
||||
} |
||||
|
||||
fun onChanged(unit: () -> Unit) { |
||||
onChanged = unit |
||||
} |
||||
} |
Loading…
Reference in new issue