diff --git a/Habitica/res/layout/activity_fixcharacter.xml b/Habitica/res/layout/activity_fixcharacter.xml index 359ce75ee..7dce1e80b 100644 --- a/Habitica/res/layout/activity_fixcharacter.xml +++ b/Habitica/res/layout/activity_fixcharacter.xml @@ -35,72 +35,266 @@ android:background="@color/gray_700" android:layout_marginBottom="16dp" /> - - - + + + + + + + + + + - + + + + + + + + + + - + + + + + + + + + + - + + + + + + + + + + - + + + + + + + + + + + android:layout_marginBottom="12dp" > + + + + + + + + + \ No newline at end of file diff --git a/Habitica/res/layout/fixvalues_edittext.xml b/Habitica/res/layout/fixvalues_edittext.xml index 9a96a3015..12b720da0 100644 --- a/Habitica/res/layout/fixvalues_edittext.xml +++ b/Habitica/res/layout/fixvalues_edittext.xml @@ -24,7 +24,7 @@ android:background="@drawable/layout_rounded_bg_gray_700" android:paddingTop="8dp" android:paddingStart="16dp"> - { - binding.levelEditText.iconBackgroundColor = ContextCompat.getColor(this, R.color.red_500) - binding.levelEditText.setIconBitmap(HabiticaIconsHelper.imageOfWarriorLightBg()) + setIconBackground(levelIconBackgroundView, ContextCompat.getColor(this, R.color.red_500)) + binding.levelIconView.setImageBitmap(HabiticaIconsHelper.imageOfWarriorLightBg()) } Stats.MAGE -> { - binding.levelEditText.iconBackgroundColor = ContextCompat.getColor(this, R.color.blue_500) - binding.levelEditText.setIconBitmap(HabiticaIconsHelper.imageOfMageLightBg()) + setIconBackground(levelIconBackgroundView, ContextCompat.getColor(this, R.color.blue_500)) + binding.levelIconView.setImageBitmap(HabiticaIconsHelper.imageOfMageLightBg()) } Stats.HEALER -> { - binding.levelEditText.iconBackgroundColor = ContextCompat.getColor(this, R.color.yellow_500) - binding.levelEditText.setIconBitmap(HabiticaIconsHelper.imageOfHealerLightBg()) + setIconBackground(levelIconBackgroundView, ContextCompat.getColor(this, R.color.yellow_500)) + binding.levelIconView.setImageBitmap(HabiticaIconsHelper.imageOfHealerLightBg()) } Stats.ROGUE -> { - binding.levelEditText.iconBackgroundColor = ContextCompat.getColor(this, R.color.brand_500) - binding.levelEditText.setIconBitmap(HabiticaIconsHelper.imageOfRogueLightBg()) + setIconBackground(levelIconBackgroundView, ContextCompat.getColor(this, R.color.brand_500)) + binding.levelIconView.setImageBitmap(HabiticaIconsHelper.imageOfRogueLightBg()) } } } - private fun FixValuesEditText.getDoubleValue(): Double { - val stringValue = this.text + private fun setIconBackground(view: View, color: Int) { + val backgroundDrawable = ContextCompat.getDrawable(this, R.drawable.layout_rounded_bg) + backgroundDrawable?.setColorFilter(color, PorterDuff.Mode.MULTIPLY) + backgroundDrawable?.alpha = 50 + view.background = backgroundDrawable + } + + private fun EditText.getDoubleValue(): Double { + val stringValue = this.text.toString() return try { stringValue.toDouble() } catch (_: NumberFormatException) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/settings/FixValuesEditText.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/settings/FixValuesEditText.kt index 44359a55c..abda534f4 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/settings/FixValuesEditText.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/settings/FixValuesEditText.kt @@ -14,11 +14,12 @@ import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper class FixValuesEditText(context: Context, attrs: AttributeSet) : FrameLayout(context, attrs) { - private val binding: FixvaluesEdittextBinding = FixvaluesEdittextBinding.inflate(context.layoutInflater, this) + private var binding: FixvaluesEdittextBinding var text: String get() = binding.editText.text.toString() set(value) { binding.editText.setText(value) + binding.editText.hint = value } @ColorRes @@ -37,6 +38,9 @@ class FixValuesEditText(context: Context, attrs: AttributeSet) : FrameLayout(con R.styleable.FixValuesEditText, 0, 0) + val view = context.layoutInflater.inflate(R.layout.fixvalues_edittext, this, true) + binding = FixvaluesEdittextBinding.bind(view) + 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))