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.Intent
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
import android.content.res.ColorStateList
|
import android.graphics.drawable.GradientDrawable
|
||||||
import android.graphics.drawable.Drawable
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
|
|
@ -31,8 +30,6 @@ class MainActivity : AppCompatActivity(), BleCallbacks {
|
||||||
private lateinit var relay1Button: Button
|
private lateinit var relay1Button: Button
|
||||||
private lateinit var relay2Button: Button
|
private lateinit var relay2Button: Button
|
||||||
private var lastTheme: String? = null
|
private var lastTheme: String? = null
|
||||||
private var originalBg1: Drawable? = null
|
|
||||||
private var originalBg2: Drawable? = null
|
|
||||||
|
|
||||||
override fun onStatusChanged(status: BleStatus) {
|
override fun onStatusChanged(status: BleStatus) {
|
||||||
when (status) {
|
when (status) {
|
||||||
|
|
@ -150,20 +147,25 @@ class MainActivity : AppCompatActivity(), BleCallbacks {
|
||||||
private fun setupRelayButton() {
|
private fun setupRelayButton() {
|
||||||
relay1Button.setOnClickListener(null)
|
relay1Button.setOnClickListener(null)
|
||||||
loadButtonLabel(relay1Button, PrefsHelper.PREF_LABEL1, R.string.button_hold)
|
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 ->
|
relay1Button.setOnTouchListener { _, event ->
|
||||||
when (event.action) {
|
when (event.action) {
|
||||||
MotionEvent.ACTION_DOWN -> {
|
MotionEvent.ACTION_DOWN -> {
|
||||||
manager.sendRelayCommand(0x01.toByte())
|
manager.sendRelayCommand(0x01.toByte())
|
||||||
relay1Button.backgroundTintList = accentColor
|
relay1Button.background = pressedBg
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
|
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
|
||||||
manager.sendRelayCommand(0x00.toByte())
|
manager.sendRelayCommand(0x00.toByte())
|
||||||
relay1Button.backgroundTintList = null
|
relay1Button.background = defaultBg
|
||||||
originalBg1?.let { relay1Button.background = it }
|
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
else -> false
|
else -> false
|
||||||
|
|
@ -174,20 +176,25 @@ class MainActivity : AppCompatActivity(), BleCallbacks {
|
||||||
private fun setupRelay2Button() {
|
private fun setupRelay2Button() {
|
||||||
relay2Button.setOnClickListener(null)
|
relay2Button.setOnClickListener(null)
|
||||||
loadButtonLabel(relay2Button, PrefsHelper.PREF_LABEL2, R.string.button_hold)
|
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 ->
|
relay2Button.setOnTouchListener { _, event ->
|
||||||
when (event.action) {
|
when (event.action) {
|
||||||
MotionEvent.ACTION_DOWN -> {
|
MotionEvent.ACTION_DOWN -> {
|
||||||
manager.sendRelayCommand(0x02.toByte())
|
manager.sendRelayCommand(0x02.toByte())
|
||||||
relay2Button.backgroundTintList = accentColor
|
relay2Button.background = pressedBg
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
|
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
|
||||||
manager.sendRelayCommand(0x03.toByte())
|
manager.sendRelayCommand(0x03.toByte())
|
||||||
relay2Button.backgroundTintList = null
|
relay2Button.background = defaultBg
|
||||||
originalBg2?.let { relay2Button.background = it }
|
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
else -> false
|
else -> false
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue