diff --git a/app/src/main/java/com/geeksville/mesh/model/Channel.kt b/app/src/main/java/com/geeksville/mesh/model/Channel.kt
index 06855b66a..b07c383f4 100644
--- a/app/src/main/java/com/geeksville/mesh/model/Channel.kt
+++ b/app/src/main/java/com/geeksville/mesh/model/Channel.kt
@@ -78,6 +78,10 @@ data class Channel(
return "#${name}-${suffix}"
}
+
+ override fun equals(o: Any?): Boolean = (o is Channel)
+ && psk.toByteArray() contentEquals o.psk.toByteArray()
+ && name == o.name
}
fun xorHash(b: ByteArray) = b.fold(0, { acc, x -> acc xor (x.toInt() and 0xff) })
\ No newline at end of file
diff --git a/app/src/main/java/com/geeksville/mesh/ui/ChannelFragment.kt b/app/src/main/java/com/geeksville/mesh/ui/ChannelFragment.kt
index a8f5457b1..8caa6b9d6 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/ChannelFragment.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/ChannelFragment.kt
@@ -85,7 +85,7 @@ class ChannelFragment : ScreenFragment("Channel"), Logging {
// Only let buttons work if we are connected to the radio
binding.shareButton.isEnabled = connected
- binding.resetButton.isEnabled = connected
+ binding.resetButton.isEnabled = connected && Channel.defaultChannel != channel
binding.editableCheckbox.isChecked = false // start locked
if (channel != null) {
@@ -185,7 +185,7 @@ class ChannelFragment : ScreenFragment("Channel"), Logging {
.setNeutralButton(R.string.cancel) { _, _ ->
setGUIfromModel() // throw away any edits
}
- .setPositiveButton(getString(R.string.accept)) { _, _ ->
+ .setPositiveButton(R.string.apply) { _, _ ->
debug("Switching back to default channel")
installSettings(Channel.defaultChannel.settings)
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c91839d96..8e2d4774d 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -101,4 +101,5 @@
Reset
Are you sure you want to change to the default channel?
Reset to defaults
+ Apply