Pārlūkot izejas kodu

Service works fully. Recorded a trip.

Thomas Chef 3 gadi atpakaļ
vecāks
revīzija
8fe99947db

+ 10 - 2
app/src/main/java/com/flacksta/chef/journeygpstracker/backend/BackendClient.kt

@@ -1,9 +1,9 @@
 package com.flacksta.chef.journeygpstracker.backend
 
-import android.os.CountDownTimer
 import android.util.Log
 import com.flacksta.chef.journeygpstracker.JourneyGpsTrackerApplication
 import com.flacksta.chef.journeygpstracker.database.GpsData
+import com.flacksta.chef.journeygpstracker.database.GpsDataDao
 import com.google.gson.GsonBuilder
 import com.google.gson.JsonParser
 import kotlinx.coroutines.*
@@ -32,13 +32,21 @@ class BackendClient {
         val fixedRateTimer = fixedRateTimer(name = "hello-timer",
                 initialDelay = 10000, period = 30000) {
 
+            val  dao :GpsDataDao = trackApp.database.gpsDataDao()
+
             Log.i("Thc","Sending data....")
-            val pos : List<GpsData> = trackApp.database.gpsDataDao().getUnsentGpsPositions()
+            val pos : List<GpsData> = dao.getUnsentGpsPositions()
             val rawJson:String = convertPosListToRawJson(pos)
             Log.i("Thc","Count:" + rawJson)
             Log.i("Thc","Thread A:"+Thread.currentThread())
             val retVal:Boolean = sendGpsPosDataToBackendServer(rawJson)
             Log.i("Thc","retVal post: $retVal")
+            if( retVal == true ) {
+                // Delete the successful ones
+                val first: Long = pos.get(0).ts
+                val last: Long = pos.get(pos.size - 1).ts
+                dao.setAsUploaded(first,last)
+            }
         }
     }
 

+ 3 - 0
app/src/main/java/com/flacksta/chef/journeygpstracker/database/GpsDataDao.kt

@@ -12,6 +12,9 @@ interface GpsDataDao {
     @Query("SELECT * FROM pos_table where uploaded == 0 ORDER BY ts ASC")
     fun getUnsentGpsPositions(): List<GpsData>
 
+    @Query("UPDATE pos_table SET uploaded = 1 where ts >= :from AND ts <= :to")
+    fun setAsUploaded(from:Long, to:Long)
+
     @Insert(onConflict = OnConflictStrategy.IGNORE)
     suspend fun insert(gpsPos: GpsData)