Skip to content

Commit 42b3f56

Browse files
committed
refactor(symbol): refine the way to get drawable for the adapters
1 parent 715f7a0 commit 42b3f56

File tree

4 files changed

+30
-28
lines changed

4 files changed

+30
-28
lines changed

app/src/main/java/com/osfans/trime/data/theme/ColorManager.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import com.osfans.trime.data.DataManager
1010
import com.osfans.trime.data.sound.SoundEffectManager
1111
import com.osfans.trime.util.ColorUtils
1212
import com.osfans.trime.util.WeakHashSet
13+
import com.osfans.trime.util.appContext
1314
import com.osfans.trime.util.bitmapDrawable
1415
import com.osfans.trime.util.isNightMode
1516
import splitties.dimensions.dp
@@ -331,7 +332,7 @@ object ColorManager {
331332

332333
// 返回图片或背景的drawable,支持null参数。 Config 2.0
333334
fun getDrawable(
334-
context: Context,
335+
context: Context = appContext,
335336
key: String,
336337
borderKey: String = "",
337338
borderColorKey: String = "",

app/src/main/java/com/osfans/trime/ime/symbol/CandidateAdapter.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -52,20 +52,20 @@ class CandidateAdapter(theme: Theme) : RecyclerView.Adapter<CandidateAdapter.Vie
5252
private val mCommentTextSize = theme.style.getFloat("comment_text_size").coerceAtLeast(1f)
5353
private val mCommentFont = FontManager.getTypeface("comment_font")
5454
private val mCommentTextColor = ColorManager.getColor("comment_text_color")
55+
private val mBackground =
56+
ColorManager.getDrawable(
57+
key = "key_back_color",
58+
borderKey = "key_border",
59+
borderColorKey = "key_border_color",
60+
roundCornerKey = "round_corner",
61+
)
5562

5663
override fun onCreateViewHolder(
5764
parent: ViewGroup,
5865
viewType: Int,
5966
): ViewHolder {
6067
val binding = LiquidEntryViewBinding.inflate(LayoutInflater.from(parent.context))
61-
binding.root.background =
62-
ColorManager.getDrawable(
63-
parent.context,
64-
"key_back_color",
65-
"key_border",
66-
"key_border_color",
67-
"round_corner",
68-
)
68+
binding.root.background = mBackground
6969
binding.candidate.apply {
7070
textSize = mCandidateTextSize
7171
typeface = mCandidateFont

app/src/main/java/com/osfans/trime/ime/symbol/FlexibleAdapter.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,20 +56,20 @@ abstract class FlexibleAdapter(theme: Theme) : RecyclerView.Adapter<FlexibleAdap
5656
private val mKeyTextColor = ColorManager.getColor("key_text_color")
5757
private val mKeyLongTextSize = theme.style.getFloat("key_long_text_size")
5858
private val mLabelTextSize = theme.style.getFloat("label_text_size")
59+
private val mBackground =
60+
ColorManager.getDrawable(
61+
key = "long_text_back_color",
62+
borderKey = "key_border",
63+
borderColorKey = "key_long_text_border",
64+
roundCornerKey = "round_corner",
65+
)
5966

6067
override fun onCreateViewHolder(
6168
parent: ViewGroup,
6269
viewType: Int,
6370
): ViewHolder {
6471
val binding = SimpleKeyItemBinding.inflate(LayoutInflater.from(parent.context))
65-
binding.root.background =
66-
ColorManager.getDrawable(
67-
parent.context,
68-
"long_text_back_color",
69-
"key_border",
70-
"key_long_text_border",
71-
"round_corner",
72-
)
72+
binding.root.background = mBackground
7373
binding.simpleKey.apply {
7474
typeface = mTypeface
7575
(mLongTextColor ?: mKeyTextColor)?.let { setTextColor(it) }

app/src/main/java/com/osfans/trime/ime/symbol/SimpleAdapter.kt

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,13 @@ class SimpleAdapter(theme: Theme, private val columnSize: Int) : RecyclerView.Ad
4141
private val mTextSize = theme.style.getFloat("label_text_size")
4242
private val mTextColor = ColorManager.getColor("key_text_color")
4343
private val mTypeface = FontManager.getTypeface("key_font")
44+
private val mBackground =
45+
ColorManager.getDrawable(
46+
key = "key_back_color",
47+
borderKey = "key_border",
48+
borderColorKey = "key_border_color",
49+
roundCornerKey = "round_corner",
50+
)
4451

4552
override fun onCreateViewHolder(
4653
parent: ViewGroup,
@@ -55,22 +62,16 @@ class SimpleAdapter(theme: Theme, private val columnSize: Int) : RecyclerView.Ad
5562
binding.wrapper.addView(sub.root, size, size)
5663
}
5764
val holder = ViewHolder(binding, bindings)
65+
5866
holder.simpleKeyTexts.forEachIndexed { index, textView ->
5967
holder.wrappers[index].tag = index
6068
textView.apply {
6169
mTextSize.takeIf { it > 0f }?.let { this.textSize = it }
6270
mTextColor?.let { setTextColor(it) }
63-
this.typeface = mTypeface
64-
this.gravity = Gravity.CENTER
65-
this.ellipsize = TextUtils.TruncateAt.MARQUEE
66-
this.background =
67-
ColorManager.getDrawable(
68-
context,
69-
"key_back_color",
70-
"key_border",
71-
"key_border_color",
72-
"round_corner",
73-
)
71+
typeface = mTypeface
72+
gravity = Gravity.CENTER
73+
ellipsize = TextUtils.TruncateAt.MARQUEE
74+
background = mBackground
7475
}
7576
}
7677
return holder

0 commit comments

Comments
 (0)