From 9cea9ce45743464f279f2055019e8dbcc029970e Mon Sep 17 00:00:00 2001 From: geeksville Date: Tue, 8 Sep 2020 12:05:03 -0700 Subject: [PATCH 1/5] fix #123 stop service when disconnected --- app/src/main/java/com/geeksville/mesh/service/MeshService.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt index 8468cbb98..816025b7e 100644 --- a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt +++ b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt @@ -457,7 +457,8 @@ class MeshService : Service(), Logging { * tell android not to kill us */ private fun startForeground() { - val wantForeground = RadioInterfaceService.getBondedDeviceAddress(this) != null + val a = RadioInterfaceService.getBondedDeviceAddress(this) + val wantForeground = a != null && a != "n" info("Requesting foreground service=$wantForeground") From 2fbd0a7a5e993f052890ae5af349f311191033c5 Mon Sep 17 00:00:00 2001 From: geeksville Date: Tue, 8 Sep 2020 12:05:19 -0700 Subject: [PATCH 2/5] show url prefix for debugging --- app/src/main/java/com/geeksville/mesh/model/Channel.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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 a1e568d42..7cd889554 100644 --- a/app/src/main/java/com/geeksville/mesh/model/Channel.kt +++ b/app/src/main/java/com/geeksville/mesh/model/Channel.kt @@ -4,7 +4,6 @@ import android.graphics.Bitmap import android.net.Uri import android.util.Base64 import com.geeksville.mesh.MeshProtos -import com.geeksville.util.anonymize import com.google.zxing.BarcodeFormat import com.google.zxing.MultiFormatWriter import com.journeyapps.barcodescanner.BarcodeEncoder @@ -44,7 +43,7 @@ data class Channel( // Let the path optionally include the # character (or not) so we can work with old URLs generated by old versions of the app val pathRegex = Regex("$prefixRoot#?(.*)") val (base64) = pathRegex.find(urlStr)?.destructured - ?: throw MalformedURLException("Not a meshtastic URL: ${urlStr.anonymize(40)}") + ?: throw MalformedURLException("Not a meshtastic URL: ${urlStr.take(40)}") val bytes = Base64.decode(base64, base64Flags) return MeshProtos.ChannelSettings.parseFrom(bytes) From 01c0554907279f080109df6ce7b07ecdb828c95f Mon Sep 17 00:00:00 2001 From: geeksville Date: Tue, 8 Sep 2020 12:05:26 -0700 Subject: [PATCH 3/5] lib updates --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index ea6b784fc..303868371 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -113,7 +113,7 @@ dependencies { implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:2.0.1' - implementation 'com.google.android.material:material:1.2.0' + implementation 'com.google.android.material:material:1.2.1' implementation 'androidx.viewpager2:viewpager2:1.0.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.2.0' From e07847af878cacd1d52419d3befad3764147c527 Mon Sep 17 00:00:00 2001 From: geeksville Date: Tue, 8 Sep 2020 12:29:28 -0700 Subject: [PATCH 4/5] fix #141 don't let extra # into channel name. thx @moxy-bc and @dzaczek --- .../java/com/geeksville/mesh/ui/ChannelFragment.kt | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) 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 a42958c56..fb3b113b9 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/ChannelFragment.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/ChannelFragment.kt @@ -88,7 +88,11 @@ class ChannelFragment : ScreenFragment("Channel"), Logging { val modemConfig = radioConfig?.channelSettings?.modemConfig val channelOption = ChannelOption.fromConfig(modemConfig) - filled_exposed_dropdown.setText(getString(channelOption?.configRes ?: R.string.modem_config_unrecognized), false) + filled_exposed_dropdown.setText( + getString( + channelOption?.configRes ?: R.string.modem_config_unrecognized + ), false + ) } else { qrView.visibility = View.INVISIBLE @@ -138,7 +142,9 @@ class ChannelFragment : ScreenFragment("Channel"), Logging { requireActivity().hideKeyboard() } - editableCheckbox.setOnCheckedChangeListener { _, checked -> + // Note: Do not use setOnCheckedChanged here because we don't want to be called when we programmatically disable editing + editableCheckbox.setOnClickListener { _ -> + val checked = editableCheckbox.isChecked if (checked) { // User just unlocked for editing - remove the # goo around the channel name UIViewModel.getChannel(model.radioConfig.value)?.let { channel -> @@ -171,7 +177,8 @@ class ChannelFragment : ScreenFragment("Channel"), Logging { newSettings.psk = ByteString.copyFrom(bytes) } else { debug("ASSIGNING NEW default AES128 KEY") - newSettings.name = Channel.defaultChannelName // Fix any case errors + newSettings.name = + Channel.defaultChannelName // Fix any case errors newSettings.psk = ByteString.copyFrom(Channel.channelDefaultKey) } From a60d94d5d29ca3ea7615c0a8a0eda86924d09934 Mon Sep 17 00:00:00 2001 From: geeksville Date: Tue, 8 Sep 2020 12:37:25 -0700 Subject: [PATCH 5/5] 0.9.80 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 303868371..2786f5ca3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -28,8 +28,8 @@ android { applicationId "com.geeksville.mesh" minSdkVersion 21 // The oldest emulator image I have tried is 22 (though 21 probably works) targetSdkVersion 29 - versionCode 10906 // format is Mmmss (where M is 1+the numeric major number - versionName "0.9.06" + versionCode 10980 // format is Mmmss (where M is 1+the numeric major number + versionName "0.9.80" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes {