Skip to content

Commit

Permalink
refactor(symbol): refine the way to get drawable for the adapters
Browse files Browse the repository at this point in the history
  • Loading branch information
WhiredPlanck committed Mar 8, 2024
1 parent 715f7a0 commit 42b3f56
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import com.osfans.trime.data.DataManager
import com.osfans.trime.data.sound.SoundEffectManager
import com.osfans.trime.util.ColorUtils
import com.osfans.trime.util.WeakHashSet
import com.osfans.trime.util.appContext
import com.osfans.trime.util.bitmapDrawable
import com.osfans.trime.util.isNightMode
import splitties.dimensions.dp
Expand Down Expand Up @@ -331,7 +332,7 @@ object ColorManager {

// 返回图片或背景的drawable,支持null参数。 Config 2.0
fun getDrawable(
context: Context,
context: Context = appContext,
key: String,
borderKey: String = "",
borderColorKey: String = "",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,20 +52,20 @@ class CandidateAdapter(theme: Theme) : RecyclerView.Adapter<CandidateAdapter.Vie
private val mCommentTextSize = theme.style.getFloat("comment_text_size").coerceAtLeast(1f)
private val mCommentFont = FontManager.getTypeface("comment_font")
private val mCommentTextColor = ColorManager.getColor("comment_text_color")
private val mBackground =
ColorManager.getDrawable(
key = "key_back_color",
borderKey = "key_border",
borderColorKey = "key_border_color",
roundCornerKey = "round_corner",
)

override fun onCreateViewHolder(
parent: ViewGroup,
viewType: Int,
): ViewHolder {
val binding = LiquidEntryViewBinding.inflate(LayoutInflater.from(parent.context))
binding.root.background =
ColorManager.getDrawable(
parent.context,
"key_back_color",
"key_border",
"key_border_color",
"round_corner",
)
binding.root.background = mBackground
binding.candidate.apply {
textSize = mCandidateTextSize
typeface = mCandidateFont
Expand Down
16 changes: 8 additions & 8 deletions app/src/main/java/com/osfans/trime/ime/symbol/FlexibleAdapter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -56,20 +56,20 @@ abstract class FlexibleAdapter(theme: Theme) : RecyclerView.Adapter<FlexibleAdap
private val mKeyTextColor = ColorManager.getColor("key_text_color")
private val mKeyLongTextSize = theme.style.getFloat("key_long_text_size")
private val mLabelTextSize = theme.style.getFloat("label_text_size")
private val mBackground =
ColorManager.getDrawable(
key = "long_text_back_color",
borderKey = "key_border",
borderColorKey = "key_long_text_border",
roundCornerKey = "round_corner",
)

override fun onCreateViewHolder(
parent: ViewGroup,
viewType: Int,
): ViewHolder {
val binding = SimpleKeyItemBinding.inflate(LayoutInflater.from(parent.context))
binding.root.background =
ColorManager.getDrawable(
parent.context,
"long_text_back_color",
"key_border",
"key_long_text_border",
"round_corner",
)
binding.root.background = mBackground
binding.simpleKey.apply {
typeface = mTypeface
(mLongTextColor ?: mKeyTextColor)?.let { setTextColor(it) }
Expand Down
23 changes: 12 additions & 11 deletions app/src/main/java/com/osfans/trime/ime/symbol/SimpleAdapter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,13 @@ class SimpleAdapter(theme: Theme, private val columnSize: Int) : RecyclerView.Ad
private val mTextSize = theme.style.getFloat("label_text_size")
private val mTextColor = ColorManager.getColor("key_text_color")
private val mTypeface = FontManager.getTypeface("key_font")
private val mBackground =
ColorManager.getDrawable(
key = "key_back_color",
borderKey = "key_border",
borderColorKey = "key_border_color",
roundCornerKey = "round_corner",
)

override fun onCreateViewHolder(
parent: ViewGroup,
Expand All @@ -55,22 +62,16 @@ class SimpleAdapter(theme: Theme, private val columnSize: Int) : RecyclerView.Ad
binding.wrapper.addView(sub.root, size, size)
}
val holder = ViewHolder(binding, bindings)

holder.simpleKeyTexts.forEachIndexed { index, textView ->
holder.wrappers[index].tag = index
textView.apply {
mTextSize.takeIf { it > 0f }?.let { this.textSize = it }
mTextColor?.let { setTextColor(it) }
this.typeface = mTypeface
this.gravity = Gravity.CENTER
this.ellipsize = TextUtils.TruncateAt.MARQUEE
this.background =
ColorManager.getDrawable(
context,
"key_back_color",
"key_border",
"key_border_color",
"round_corner",
)
typeface = mTypeface
gravity = Gravity.CENTER
ellipsize = TextUtils.TruncateAt.MARQUEE
background = mBackground
}
}
return holder
Expand Down

0 comments on commit 42b3f56

Please sign in to comment.