From 9254a907743293d85c16b0895e6d5dd50c449b26 Mon Sep 17 00:00:00 2001 From: geeksville Date: Wed, 3 Jun 2020 16:16:51 -0700 Subject: [PATCH] add a min appVersion check, so devices can tell user when android app needs update --- .../java/com/geeksville/mesh/MainActivity.kt | 13 ++++++++++++- .../main/java/com/geeksville/mesh/MyNodeInfo.kt | 5 ++++- .../com/geeksville/mesh/model/MessagesState.kt | 12 +++++------- .../com/geeksville/mesh/service/MeshService.kt | 5 ++--- app/src/main/proto | 2 +- app/src/main/res/values/strings.xml | 2 ++ geeksville-androidlib | 2 +- images/app-too-old.png | Bin 0 -> 43024 bytes 8 files changed, 27 insertions(+), 14 deletions(-) create mode 100644 images/app-too-old.png diff --git a/app/src/main/java/com/geeksville/mesh/MainActivity.kt b/app/src/main/java/com/geeksville/mesh/MainActivity.kt index bfa50f18e..669db59b7 100644 --- a/app/src/main/java/com/geeksville/mesh/MainActivity.kt +++ b/app/src/main/java/com/geeksville/mesh/MainActivity.kt @@ -548,7 +548,18 @@ class MainActivity : AppCompatActivity(), Logging, model.radioConfig.value = MeshProtos.RadioConfig.parseFrom(service.radioConfig) - model.myNodeInfo.value = service.myNodeInfo + val info = service.myNodeInfo + model.myNodeInfo.value = info + + val isOld = info.minAppVersion > BuildConfig.VERSION_CODE + if (isOld) + MaterialAlertDialogBuilder(this) + .setTitle(getString(R.string.app_too_old)) + .setMessage(getString(R.string.must_update)) + .setPositiveButton("Okay") { _, _ -> + info("User acknowledged app is old") + } + .show() updateNodesFromDevice() diff --git a/app/src/main/java/com/geeksville/mesh/MyNodeInfo.kt b/app/src/main/java/com/geeksville/mesh/MyNodeInfo.kt index ef3d37ef7..e5a447b1c 100644 --- a/app/src/main/java/com/geeksville/mesh/MyNodeInfo.kt +++ b/app/src/main/java/com/geeksville/mesh/MyNodeInfo.kt @@ -17,7 +17,8 @@ data class MyNodeInfo( val currentPacketId: Long, val nodeNumBits: Int, val packetIdBits: Int, - val messageTimeoutMsec: Int + val messageTimeoutMsec: Int, + val minAppVersion: Int ) : Parcelable { /** A human readable description of the software/hardware version */ val firmwareString: String get() = "$model $region/$firmwareVersion" @@ -33,6 +34,7 @@ data class MyNodeInfo( parcel.readLong(), parcel.readInt(), parcel.readInt(), + parcel.readInt(), parcel.readInt() ) { } @@ -49,6 +51,7 @@ data class MyNodeInfo( parcel.writeInt(nodeNumBits) parcel.writeInt(packetIdBits) parcel.writeInt(messageTimeoutMsec) + parcel.writeInt(minAppVersion) } override fun describeContents(): Int { diff --git a/app/src/main/java/com/geeksville/mesh/model/MessagesState.kt b/app/src/main/java/com/geeksville/mesh/model/MessagesState.kt index f35f8c2fd..cdb4c353b 100644 --- a/app/src/main/java/com/geeksville/mesh/model/MessagesState.kt +++ b/app/src/main/java/com/geeksville/mesh/model/MessagesState.kt @@ -5,9 +5,7 @@ import androidx.lifecycle.MutableLiveData import com.geeksville.android.BuildUtils.isEmulator import com.geeksville.android.Logging import com.geeksville.mesh.DataPacket -import com.geeksville.mesh.MeshProtos import com.geeksville.mesh.MessageStatus -import com.geeksville.mesh.utf8 class MessagesState(private val ui: UIViewModel) : Logging { @@ -31,12 +29,14 @@ class MessagesState(private val ui: UIViewModel) : Logging { /// add a message our GUI list of past msgs fun addMessage(m: DataPacket) { + debug("Adding message to view id=${m.id}") // FIXME - don't just slam in a new list each time, it probably causes extra drawing. messages.value = messages.value!! + m } fun updateStatus(id: Int, status: MessageStatus) { // Super inefficent but this is rare + debug("Handling message status change $id: $status") val msgs = messages.value!! msgs.find { it.id == id }?.let { p -> @@ -55,11 +55,8 @@ class MessagesState(private val ui: UIViewModel) : Logging { fun sendMessage(str: String, dest: String = DataPacket.ID_BROADCAST) { val service = ui.meshService - val p = DataPacket( - dest, - str.toByteArray(utf8), - MeshProtos.Data.Type.CLEAR_TEXT_VALUE - ) + val p = DataPacket(dest, str) + if (service != null) try { service.send(p) @@ -69,6 +66,7 @@ class MessagesState(private val ui: UIViewModel) : Logging { else p.errorMessage = "Error: No Mesh service" + // FIXME - why is the first time we are called p is already in the list at this point? addMessage(p) } } 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 d62e6d30f..6ee667a09 100644 --- a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt +++ b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt @@ -1228,7 +1228,8 @@ class MeshService : Service(), Logging { currentPacketId.toLong() and 0xffffffffL, if (nodeNumBits == 0) 8 else nodeNumBits, if (packetIdBits == 0) 8 else packetIdBits, - if (messageTimeoutMsec == 0) 5 * 60 * 1000 else messageTimeoutMsec // constants from current device code + if (messageTimeoutMsec == 0) 5 * 60 * 1000 else messageTimeoutMsec, // constants from current device code + minAppVersion ) } @@ -1543,8 +1544,6 @@ class MeshService : Service(), Logging { "num_data_sent", DataPair(1) ) - - connectionState == ConnectionState.CONNECTED } } diff --git a/app/src/main/proto b/app/src/main/proto index e9c7f9b95..9d083d5d4 160000 --- a/app/src/main/proto +++ b/app/src/main/proto @@ -1 +1 @@ -Subproject commit e9c7f9b95d490aea3f0f213d4666d2dbf7e2111c +Subproject commit 9d083d5d4ff4ef095135b18468004eaba77cb691 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0976c025a..900780f9d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -59,4 +59,6 @@ Not connected, select radio below Connected to radio, but it is sleeping Update to %s + Application too old + You must update this application on the Google Play store (or Github). It is too old to talk to this radio. diff --git a/geeksville-androidlib b/geeksville-androidlib index a7b2f9534..62172dbfa 160000 --- a/geeksville-androidlib +++ b/geeksville-androidlib @@ -1 +1 @@ -Subproject commit a7b2f95341876ae96525c9cd38fa2fa0cc833351 +Subproject commit 62172dbfa2d85a389f6edaea6b416663e8bf4d2c diff --git a/images/app-too-old.png b/images/app-too-old.png new file mode 100644 index 0000000000000000000000000000000000000000..92f98b778f225a913d9c23f016d2c6074713ab0e GIT binary patch literal 43024 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%0Auc8ee~?-4HDz+IU%gKvciA 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 literal 0 HcmV?d00001