Fix button background restore: save/restore original Drawable instead of tint list null -> gray -> teal → grijs blijft grijs na loslaten
This commit is contained in:
parent
a3142ea85b
commit
817f9a0602
6 changed files with 872 additions and 6 deletions
|
|
@ -4,6 +4,7 @@ package com.eddy.atomrelay
|
|||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.content.res.ColorStateList
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
|
|
@ -30,8 +31,8 @@ class MainActivity : AppCompatActivity(), BleCallbacks {
|
|||
private lateinit var relay1Button: Button
|
||||
private lateinit var relay2Button: Button
|
||||
private var lastTheme: String? = null
|
||||
private var originalTint1: ColorStateList? = null
|
||||
private var originalTint2: ColorStateList? = null
|
||||
private var originalBg1: Drawable? = null
|
||||
private var originalBg2: Drawable? = null
|
||||
|
||||
override fun onStatusChanged(status: BleStatus) {
|
||||
when (status) {
|
||||
|
|
@ -149,7 +150,7 @@ class MainActivity : AppCompatActivity(), BleCallbacks {
|
|||
private fun setupRelayButton() {
|
||||
relay1Button.setOnClickListener(null)
|
||||
loadButtonLabel(relay1Button, PrefsHelper.PREF_LABEL1, R.string.button_hold)
|
||||
originalTint1 = relay1Button.backgroundTintList
|
||||
originalBg1 = relay1Button.background.constantState?.newDrawable()
|
||||
|
||||
val accentColor = ColorStateList.valueOf(ContextCompat.getColor(this, R.color.colorAccent))
|
||||
relay1Button.setOnTouchListener { _, event ->
|
||||
|
|
@ -161,7 +162,8 @@ class MainActivity : AppCompatActivity(), BleCallbacks {
|
|||
}
|
||||
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
|
||||
manager.sendRelayCommand(0x00.toByte())
|
||||
relay1Button.backgroundTintList = originalTint1
|
||||
relay1Button.backgroundTintList = null
|
||||
originalBg1?.let { relay1Button.background = it }
|
||||
true
|
||||
}
|
||||
else -> false
|
||||
|
|
@ -172,7 +174,7 @@ class MainActivity : AppCompatActivity(), BleCallbacks {
|
|||
private fun setupRelay2Button() {
|
||||
relay2Button.setOnClickListener(null)
|
||||
loadButtonLabel(relay2Button, PrefsHelper.PREF_LABEL2, R.string.button_hold)
|
||||
originalTint2 = relay2Button.backgroundTintList
|
||||
originalBg2 = relay2Button.background.constantState?.newDrawable()
|
||||
|
||||
val accentColor = ColorStateList.valueOf(ContextCompat.getColor(this, R.color.colorAccent))
|
||||
relay2Button.setOnTouchListener { _, event ->
|
||||
|
|
@ -184,7 +186,8 @@ class MainActivity : AppCompatActivity(), BleCallbacks {
|
|||
}
|
||||
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
|
||||
manager.sendRelayCommand(0x03.toByte())
|
||||
relay2Button.backgroundTintList = originalTint2
|
||||
relay2Button.backgroundTintList = null
|
||||
originalBg2?.let { relay2Button.background = it }
|
||||
true
|
||||
}
|
||||
else -> false
|
||||
|
|
|
|||
Loading…
Reference in a new issue