kopia lustrzana https://github.com/meshtastic/Meshtastic-Android
				
				
				
			add a min appVersion check, so devices can tell user when android app needs
updatepull/40/head
							rodzic
							
								
									ecae22d28d
								
							
						
					
					
						commit
						9254a90774
					
				|  | @ -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() | ||||
| 
 | ||||
|  |  | |||
|  | @ -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 { | ||||
|  |  | |||
|  | @ -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) | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -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 | ||||
|  | @ -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 | 
		Ładowanie…
	
		Reference in New Issue
	
	 geeksville
						geeksville