Utilize withStyledAttributes KTX extension
This commit is contained in:
parent
1a71242fc6
commit
04afa6a271
5 changed files with 49 additions and 56 deletions
|
@ -20,6 +20,7 @@ import android.graphics.Color
|
|||
import android.util.AttributeSet
|
||||
import androidx.appcompat.widget.AppCompatImageView
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.content.withStyledAttributes
|
||||
import code.name.monkey.appthemehelper.ThemeStore
|
||||
import code.name.monkey.appthemehelper.util.ATHUtil
|
||||
import code.name.monkey.appthemehelper.util.ColorUtil
|
||||
|
@ -38,12 +39,10 @@ class ColorIconsImageView @JvmOverloads constructor(
|
|||
|
||||
init {
|
||||
// Load the styled attributes and set their properties
|
||||
val attributes =
|
||||
context.obtainStyledAttributes(attrs, R.styleable.ColorIconsImageView, 0, 0)
|
||||
val color =
|
||||
attributes.getColor(R.styleable.ColorIconsImageView_iconBackgroundColor, Color.RED)
|
||||
setIconBackgroundColor(color)
|
||||
attributes.recycle()
|
||||
context.withStyledAttributes(attrs, R.styleable.ColorIconsImageView, 0, 0) {
|
||||
val color = getColor(R.styleable.ColorIconsImageView_iconBackgroundColor, Color.RED)
|
||||
setIconBackgroundColor(color)
|
||||
}
|
||||
}
|
||||
|
||||
fun setIconBackgroundColor(color: Int) {
|
||||
|
|
|
@ -18,6 +18,7 @@ import android.content.Context
|
|||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.widget.FrameLayout
|
||||
import androidx.core.content.withStyledAttributes
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.databinding.ListItemViewNoCardBinding
|
||||
import code.name.monkey.retromusic.extensions.hide
|
||||
|
@ -49,20 +50,20 @@ class ListItemView : FrameLayout {
|
|||
private fun init(context: Context, attrs: AttributeSet?) {
|
||||
binding = ListItemViewNoCardBinding.inflate(LayoutInflater.from(context), this, true)
|
||||
|
||||
val typedArray = context.obtainStyledAttributes(attrs, R.styleable.ListItemView)
|
||||
if (typedArray.hasValue(R.styleable.ListItemView_listItemIcon)) {
|
||||
binding.icon.setImageDrawable(typedArray.getDrawable(R.styleable.ListItemView_listItemIcon))
|
||||
} else {
|
||||
binding.icon.hide()
|
||||
}
|
||||
context.withStyledAttributes(attrs, R.styleable.ListItemView) {
|
||||
if (hasValue(R.styleable.ListItemView_listItemIcon)) {
|
||||
binding.icon.setImageDrawable(getDrawable(R.styleable.ListItemView_listItemIcon))
|
||||
} else {
|
||||
binding.icon.hide()
|
||||
}
|
||||
|
||||
binding.title.text = typedArray.getText(R.styleable.ListItemView_listItemTitle)
|
||||
if (typedArray.hasValue(R.styleable.ListItemView_listItemSummary)) {
|
||||
binding.summary.text = typedArray.getText(R.styleable.ListItemView_listItemSummary)
|
||||
} else {
|
||||
binding.summary.hide()
|
||||
binding.title.text = getText(R.styleable.ListItemView_listItemTitle)
|
||||
if (hasValue(R.styleable.ListItemView_listItemSummary)) {
|
||||
binding.summary.text = getText(R.styleable.ListItemView_listItemSummary)
|
||||
} else {
|
||||
binding.summary.hide()
|
||||
}
|
||||
}
|
||||
typedArray.recycle()
|
||||
}
|
||||
|
||||
fun setSummary(appVersion: String) {
|
||||
|
|
|
@ -5,6 +5,7 @@ import android.content.res.ColorStateList
|
|||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.widget.FrameLayout
|
||||
import androidx.core.content.withStyledAttributes
|
||||
import code.name.monkey.appthemehelper.ThemeStore
|
||||
import code.name.monkey.appthemehelper.util.ColorUtil
|
||||
import code.name.monkey.retromusic.R
|
||||
|
@ -21,26 +22,25 @@ class PermissionItem @JvmOverloads constructor(
|
|||
val checkImage get() = binding.checkImage
|
||||
|
||||
init {
|
||||
val attributes = context.obtainStyledAttributes(attrs, R.styleable.PermissionItem, 0, 0)
|
||||
binding = ItemPermissionBinding.inflate(LayoutInflater.from(context), this, true)
|
||||
|
||||
binding.title.text = attributes.getText(R.styleable.PermissionItem_permissionTitle)
|
||||
binding.summary.text =
|
||||
attributes.getText(R.styleable.PermissionItem_permissionTitleSubTitle)
|
||||
binding.number.text = attributes.getText(R.styleable.PermissionItem_permissionTitleNumber)
|
||||
binding.button.text = attributes.getText(R.styleable.PermissionItem_permissionButtonTitle)
|
||||
binding.button.setIconResource(
|
||||
attributes.getResourceId(
|
||||
R.styleable.PermissionItem_permissionIcon,
|
||||
R.drawable.ic_album
|
||||
context.withStyledAttributes(attrs, R.styleable.PermissionItem, 0, 0) {
|
||||
binding.title.text = getText(R.styleable.PermissionItem_permissionTitle)
|
||||
binding.summary.text = getText(R.styleable.PermissionItem_permissionTitleSubTitle)
|
||||
binding.number.text = getText(R.styleable.PermissionItem_permissionTitleNumber)
|
||||
binding.button.text = getText(R.styleable.PermissionItem_permissionButtonTitle)
|
||||
binding.button.setIconResource(
|
||||
getResourceId(
|
||||
R.styleable.PermissionItem_permissionIcon,
|
||||
R.drawable.ic_album
|
||||
)
|
||||
)
|
||||
)
|
||||
val color = ThemeStore.accentColor(context)
|
||||
binding.number.backgroundTintList =
|
||||
ColorStateList.valueOf(ColorUtil.withAlpha(color, 0.22f))
|
||||
val color = ThemeStore.accentColor(context)
|
||||
binding.number.backgroundTintList =
|
||||
ColorStateList.valueOf(ColorUtil.withAlpha(color, 0.22f))
|
||||
|
||||
binding.button.accentOutlineColor()
|
||||
attributes.recycle()
|
||||
binding.button.accentOutlineColor()
|
||||
}
|
||||
}
|
||||
|
||||
fun setButtonClick(callBack: () -> Unit) {
|
||||
|
|
|
@ -18,6 +18,7 @@ import android.graphics.Color
|
|||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.widget.FrameLayout
|
||||
import androidx.core.content.withStyledAttributes
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.databinding.ListSettingItemViewBinding
|
||||
|
||||
|
@ -33,21 +34,15 @@ class SettingListItemView @JvmOverloads constructor(
|
|||
init {
|
||||
val binding: ListSettingItemViewBinding =
|
||||
ListSettingItemViewBinding.inflate(LayoutInflater.from(context), this, true)
|
||||
val typedArray =
|
||||
context.obtainStyledAttributes(attrs, R.styleable.SettingListItemView)
|
||||
binding.icon
|
||||
if (typedArray.hasValue(R.styleable.SettingListItemView_settingListItemIcon)) {
|
||||
binding.icon.setImageDrawable(typedArray.getDrawable(R.styleable.SettingListItemView_settingListItemIcon))
|
||||
}
|
||||
binding.icon.setIconBackgroundColor(
|
||||
typedArray.getColor(
|
||||
R.styleable.SettingListItemView_settingListItemIconColor,
|
||||
Color.WHITE
|
||||
context.withStyledAttributes(attrs, R.styleable.SettingListItemView) {
|
||||
if (hasValue(R.styleable.SettingListItemView_settingListItemIcon)) {
|
||||
binding.icon.setImageDrawable(getDrawable(R.styleable.SettingListItemView_settingListItemIcon))
|
||||
}
|
||||
binding.icon.setIconBackgroundColor(
|
||||
getColor(R.styleable.SettingListItemView_settingListItemIconColor, Color.WHITE)
|
||||
)
|
||||
)
|
||||
binding.title.text =
|
||||
typedArray.getText(R.styleable.SettingListItemView_settingListItemTitle)
|
||||
binding.text.text = typedArray.getText(R.styleable.SettingListItemView_settingListItemText)
|
||||
typedArray.recycle()
|
||||
binding.title.text = getText(R.styleable.SettingListItemView_settingListItemTitle)
|
||||
binding.text.text = getText(R.styleable.SettingListItemView_settingListItemText)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -5,7 +5,7 @@ import android.text.Editable
|
|||
import android.util.AttributeSet
|
||||
import android.widget.SeekBar
|
||||
import android.widget.TextView
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.content.withStyledAttributes
|
||||
import androidx.core.graphics.BlendModeColorFilterCompat
|
||||
import androidx.core.graphics.BlendModeCompat
|
||||
import androidx.core.widget.doAfterTextChanged
|
||||
|
@ -27,13 +27,11 @@ class ATESeekBarPreference @JvmOverloads constructor(
|
|||
var unit: String = ""
|
||||
|
||||
init {
|
||||
val attributes =
|
||||
context.obtainStyledAttributes(attrs, R.styleable.ATESeekBarPreference, 0, 0)
|
||||
|
||||
attributes.getString(R.styleable.ATESeekBarPreference_ateKey_pref_unit)?.let {
|
||||
unit = it
|
||||
context.withStyledAttributes(attrs, R.styleable.ATESeekBarPreference, 0, 0) {
|
||||
getString(R.styleable.ATESeekBarPreference_ateKey_pref_unit)?.let {
|
||||
unit = it
|
||||
}
|
||||
}
|
||||
attributes.recycle()
|
||||
icon?.colorFilter = BlendModeColorFilterCompat.createBlendModeColorFilterCompat(
|
||||
ATHUtil.resolveColor(
|
||||
context,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue