make FCV edittext use binding

This commit is contained in:
Phillip Thelen 2020-03-11 14:06:40 +01:00
parent 771e73714d
commit eccd6467ad

View file

@ -3,21 +3,22 @@ package com.habitrpg.android.habitica.ui.views.settings
import android.content.Context
import android.graphics.Bitmap
import android.graphics.PorterDuff
import android.util.AttributeSet
import android.widget.FrameLayout
import androidx.annotation.ColorRes
import androidx.core.content.ContextCompat
import android.util.AttributeSet
import android.view.View
import android.widget.FrameLayout
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.FixvaluesEdittextBinding
import com.habitrpg.android.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
import kotlinx.android.synthetic.main.fixvalues_edittext.view.*
class FixValuesEditText(context: Context, attrs: AttributeSet) : FrameLayout(context, attrs) {
private val binding: FixvaluesEdittextBinding = FixvaluesEdittextBinding.inflate(context.layoutInflater, this)
var text: String
get() = editText?.text.toString()
get() = binding.editText.text.toString()
set(value) {
editText?.setText(value)
binding.editText.setText(value)
}
@ColorRes
@ -27,34 +28,32 @@ class FixValuesEditText(context: Context, attrs: AttributeSet) : FrameLayout(con
val backgroundDrawable = ContextCompat.getDrawable(context, R.drawable.layout_rounded_bg)
backgroundDrawable?.setColorFilter(field, PorterDuff.Mode.MULTIPLY)
backgroundDrawable?.alpha = 50
iconBackgroundView.background = backgroundDrawable
binding.iconBackgroundView.background = backgroundDrawable
}
init {
View.inflate(context, R.layout.fixvalues_edittext, this)
val attributes = context.theme.obtainStyledAttributes(
attrs,
R.styleable.FixValuesEditText,
0, 0)
editText.hint = attributes.getString(R.styleable.FixValuesEditText_title)
editTextWrapper.hint = editText.hint
editTextWrapper.setHintTextAppearance(attributes.getResourceId(R.styleable.FixValuesEditText_hintStyle, R.style.PurpleTextLabel))
binding.editText.hint = attributes.getString(R.styleable.FixValuesEditText_title)
binding.editTextWrapper.hint = binding.editText.hint
binding.editTextWrapper.setHintTextAppearance(attributes.getResourceId(R.styleable.FixValuesEditText_hintStyle, R.style.PurpleTextLabel))
iconBackgroundColor = attributes.getColor(R.styleable.FixValuesEditText_iconBgColor, 0)
val iconName = attributes.getString(R.styleable.FixValuesEditText_fixIconName)
when (iconName) {
"health" -> iconView.setImageBitmap(HabiticaIconsHelper.imageOfHeartLightBg())
"experience" -> iconView.setImageBitmap(HabiticaIconsHelper.imageOfExperience())
"mana" -> iconView.setImageBitmap(HabiticaIconsHelper.imageOfMagic())
"gold" -> iconView.setImageBitmap(HabiticaIconsHelper.imageOfGold())
"level" -> iconView.setImageBitmap(HabiticaIconsHelper.imageOfRogueLightBg())
"streak" -> iconView.setImageResource(R.drawable.achievement_thermometer)
"health" -> binding.iconView.setImageBitmap(HabiticaIconsHelper.imageOfHeartLightBg())
"experience" -> binding.iconView.setImageBitmap(HabiticaIconsHelper.imageOfExperience())
"mana" -> binding.iconView.setImageBitmap(HabiticaIconsHelper.imageOfMagic())
"gold" -> binding.iconView.setImageBitmap(HabiticaIconsHelper.imageOfGold())
"level" -> binding.iconView.setImageBitmap(HabiticaIconsHelper.imageOfRogueLightBg())
"streak" -> binding.iconView.setImageResource(R.drawable.achievement_thermometer)
}
}
fun setIconBitmap(icon: Bitmap) {
iconView.setImageBitmap(icon)
binding.iconView.setImageBitmap(icon)
}
}