From c844375fc1cd1627bf0d6f3539e314bd07466357 Mon Sep 17 00:00:00 2001 From: Kirill Nayduik Date: Wed, 26 Jan 2022 18:50:12 +0300 Subject: [PATCH] Fix codeStyle and optimize text setting --- .../views/text_view/StyleableSubTextView.kt | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/views/src/main/java/ru/touchin/roboswag/views/text_view/StyleableSubTextView.kt b/views/src/main/java/ru/touchin/roboswag/views/text_view/StyleableSubTextView.kt index c14baa0..4156d20 100644 --- a/views/src/main/java/ru/touchin/roboswag/views/text_view/StyleableSubTextView.kt +++ b/views/src/main/java/ru/touchin/roboswag/views/text_view/StyleableSubTextView.kt @@ -14,34 +14,31 @@ class StyleableSubTextView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 -): EllipsizeSpannableTextView(context, attrs, defStyleAttr) { +) : EllipsizeSpannableTextView(context, attrs, defStyleAttr) { private var styleId = typeface.style + var substring: String? = null set(value) { field = value - value?.let(this::setSubstringText) + text = text // call setText after setting substring to reset substring } init { context.withStyledAttributes(attrs, R.styleable.StyleableSubTextView, defStyleAttr, 0) { - val substring = getString(R.styleable.StyleableSubTextView_subtext) getResourceIdOrNull(R.styleable.StyleableSubTextView_subtextStyle)?.let { styleId = it } - - substring?.let(this@StyleableSubTextView::setSubstringText) + substring = getString(R.styleable.StyleableSubTextView_subtext) } } override fun setText(text: CharSequence?, type: BufferType?) { - substring - ?.let { super.setText(text?.toStyleableSubstringText(it, styleId, context), type) } - ?:super.setText(text, type) + val spannableText = when (substring == null) { + true -> text + false -> text?.toStyleableSubstringText(substring.orEmpty(), styleId, context) + } - } - - private fun setSubstringText(substring: String) { - text = text.toStyleableSubstringText(substring, styleId, context) + super.setText(spannableText, type) } }