Button color: GradientDrawable swap (teal/green), no tint magic
This commit is contained in:
parent
817f9a0602
commit
5a1f1da329
1 changed files with 21 additions and 14 deletions
|
|
@ -3,8 +3,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.graphics.drawable.GradientDrawable
|
||||
import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
|
|
@ -31,8 +30,6 @@ class MainActivity : AppCompatActivity(), BleCallbacks {
|
|||
private lateinit var relay1Button: Button
|
||||
private lateinit var relay2Button: Button
|
||||
private var lastTheme: String? = null
|
||||
private var originalBg1: Drawable? = null
|
||||
private var originalBg2: Drawable? = null
|
||||
|
||||
override fun onStatusChanged(status: BleStatus) {
|
||||
when (status) {
|
||||
|
|
@ -150,20 +147,25 @@ class MainActivity : AppCompatActivity(), BleCallbacks {
|
|||
private fun setupRelayButton() {
|
||||
relay1Button.setOnClickListener(null)
|
||||
loadButtonLabel(relay1Button, PrefsHelper.PREF_LABEL1, R.string.button_hold)
|
||||
originalBg1 = relay1Button.background.constantState?.newDrawable()
|
||||
|
||||
val accentColor = ColorStateList.valueOf(ContextCompat.getColor(this, R.color.colorAccent))
|
||||
val defaultBg = GradientDrawable().apply {
|
||||
setColor(ContextCompat.getColor(this@MainActivity, R.color.colorPrimary))
|
||||
cornerRadius = 8f * resources.displayMetrics.density
|
||||
}
|
||||
val pressedBg = GradientDrawable().apply {
|
||||
setColor(ContextCompat.getColor(this@MainActivity, R.color.colorAccent))
|
||||
cornerRadius = 8f * resources.displayMetrics.density
|
||||
}
|
||||
relay1Button.setOnTouchListener { _, event ->
|
||||
when (event.action) {
|
||||
MotionEvent.ACTION_DOWN -> {
|
||||
manager.sendRelayCommand(0x01.toByte())
|
||||
relay1Button.backgroundTintList = accentColor
|
||||
relay1Button.background = pressedBg
|
||||
true
|
||||
}
|
||||
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
|
||||
manager.sendRelayCommand(0x00.toByte())
|
||||
relay1Button.backgroundTintList = null
|
||||
originalBg1?.let { relay1Button.background = it }
|
||||
relay1Button.background = defaultBg
|
||||
true
|
||||
}
|
||||
else -> false
|
||||
|
|
@ -174,20 +176,25 @@ class MainActivity : AppCompatActivity(), BleCallbacks {
|
|||
private fun setupRelay2Button() {
|
||||
relay2Button.setOnClickListener(null)
|
||||
loadButtonLabel(relay2Button, PrefsHelper.PREF_LABEL2, R.string.button_hold)
|
||||
originalBg2 = relay2Button.background.constantState?.newDrawable()
|
||||
|
||||
val accentColor = ColorStateList.valueOf(ContextCompat.getColor(this, R.color.colorAccent))
|
||||
val defaultBg = GradientDrawable().apply {
|
||||
setColor(ContextCompat.getColor(this@MainActivity, R.color.colorPrimary))
|
||||
cornerRadius = 8f * resources.displayMetrics.density
|
||||
}
|
||||
val pressedBg = GradientDrawable().apply {
|
||||
setColor(ContextCompat.getColor(this@MainActivity, R.color.colorAccent))
|
||||
cornerRadius = 8f * resources.displayMetrics.density
|
||||
}
|
||||
relay2Button.setOnTouchListener { _, event ->
|
||||
when (event.action) {
|
||||
MotionEvent.ACTION_DOWN -> {
|
||||
manager.sendRelayCommand(0x02.toByte())
|
||||
relay2Button.backgroundTintList = accentColor
|
||||
relay2Button.background = pressedBg
|
||||
true
|
||||
}
|
||||
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
|
||||
manager.sendRelayCommand(0x03.toByte())
|
||||
relay2Button.backgroundTintList = null
|
||||
originalBg2?.let { relay2Button.background = it }
|
||||
relay2Button.background = defaultBg
|
||||
true
|
||||
}
|
||||
else -> false
|
||||
|
|
|
|||
Loading…
Reference in a new issue