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