aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/net/lacolaco/smileessence/view/ToggleableImageButton.kt
diff options
context:
space:
mode:
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.kt25
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)
+ }
+}