diff options
Diffstat (limited to 'app/src/main/java/net/lacolaco/smileessence/view/ToggleableImageButton.kt')
-rw-r--r-- | app/src/main/java/net/lacolaco/smileessence/view/ToggleableImageButton.kt | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/ToggleableImageButton.kt b/app/src/main/java/net/lacolaco/smileessence/view/ToggleableImageButton.kt new file mode 100644 index 00000000..47a1821a --- /dev/null +++ b/app/src/main/java/net/lacolaco/smileessence/view/ToggleableImageButton.kt @@ -0,0 +1,25 @@ +package net.lacolaco.smileessence.view + +import android.content.Context +import android.content.res.TypedArray +import android.graphics.drawable.Drawable +import android.util.AttributeSet +import android.widget.ImageButton +import net.lacolaco.smileessence.R + +class ToggleableImageButton @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = android.R.attr.imageButtonStyle, defStyleRes: Int = 0) : ImageButton(context, attrs, defStyleAttr, defStyleRes) { + private val onSrc: Drawable + private val offSrc: Drawable + + init { + + val ta = context.obtainStyledAttributes(attrs, R.styleable.ToggleableImageButton) + offSrc = ta.getDrawable(R.styleable.ToggleableImageButton_offSrc) + onSrc = ta.getDrawable(R.styleable.ToggleableImageButton_onSrc) + ta.recycle() + } + + fun setState(isOn: Boolean) { + setImageDrawable(if (isOn) onSrc else offSrc) + } +} |