add a min appVersion check, so devices can tell user when android app needs

update
pull/40/head
geeksville 2020-06-03 16:16:51 -07:00
rodzic ecae22d28d
commit 9254a90774
8 zmienionych plików z 27 dodań i 14 usunięć

Wyświetl plik

@ -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()

Wyświetl plik

@ -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 {

Wyświetl plik

@ -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)
}
}

Wyświetl plik

@ -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
}
}

@ -1 +1 @@
Subproject commit e9c7f9b95d490aea3f0f213d4666d2dbf7e2111c
Subproject commit 9d083d5d4ff4ef095135b18468004eaba77cb691

Wyświetl plik

@ -59,4 +59,6 @@
<string name="not_connected">Not connected, select radio below</string>
<string name="connected_sleeping">Connected to radio, but it is sleeping</string>
<string name="update_to">Update to %s</string>
<string name="app_too_old">Application too old</string>
<string name="must_update">You must update this application on the Google Play store (or Github). It is too old to talk to this radio.</string>
</resources>

@ -1 +1 @@
Subproject commit a7b2f95341876ae96525c9cd38fa2fa0cc833351
Subproject commit 62172dbfa2d85a389f6edaea6b416663e8bf4d2c

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 42 KiB