diff --git a/FLP_2.0.b4a b/FLP_2.0.b4a index 1eaca92..8020201 100644 --- a/FLP_2.0.b4a +++ b/FLP_2.0.b4a @@ -22,7 +22,7 @@ Library6=firebasenotifications Library7=fusedlocationprovider Library8=gps Library9=json -ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~AddPermission(android.permission.ACCESS_FINE_LOCATION)~\n~AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~ ~\n~)~\n~~\n~CreateResource(xml, device_admin.xml,~\n~~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~~\n~)~\n~AddPermission(android.permission.SEND_SMS)~\n~AddPermission(android.permission.RECEIVE_SMS)~\n~AddPermission(android.permission.READ_PHONE_STATE)~\n~AddPermission(android.permission.READ_CALL_LOG)~\n~AddApplicationText(~\n~~\n~ ~\n~ )~\n~ ~\n~AddPermission(android.permission.RECEIVE_BOOT_COMPLETED)~\n~AddReceiverText(R_Test, ~\n~~\n~) +ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~AddPermission(android.permission.ACCESS_FINE_LOCATION)~\n~AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~ ~\n~)~\n~~\n~CreateResource(xml, device_admin.xml,~\n~~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~~\n~)~\n~AddPermission(android.permission.SEND_SMS)~\n~AddPermission(android.permission.RECEIVE_SMS)~\n~AddPermission(android.permission.READ_PHONE_STATE)~\n~AddPermission(android.permission.READ_CALL_LOG)~\n~AddApplicationText(~\n~~\n~ ~\n~ )~\n~ ~\n~AddPermission(android.permission.RECEIVE_BOOT_COMPLETED)~\n~AddReceiverText(R_Test, ~\n~~\n~) Module1=DBRequestManager Module2=errorManager Module3=FirebaseMessaging @@ -40,7 +40,7 @@ Version=12.8 #Region Project Attributes #ApplicationLabel: FLP 2.0 #VersionCode: 1 - #VersionName: 4.04.23 + #VersionName: 4.05.10 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: unspecified #CanInstallToExternalStorage: False @@ -133,18 +133,18 @@ End Sub Sub b_pong_Click CallSubDelayed(Tracker, "StartFLP") - If laUbicacion.IsInitialized Then Subs.mandaLocAServer(laUbicacion, Starter.devModel.Trim) + If Starter.UUC.IsInitialized Then Subs.mandaLocAServer(Starter.UUC, Starter.devModel.Trim) Dim params As Map = CreateMap("topic": FirebaseMessaging.Sprvsr,"title":"Prueba Trckr", "body":"Prueba Trckr", "d":Starter.devModel, "t":"pong") CallSubDelayed2(FirebaseMessaging, "SendMessage",params) If Starter.logger Then Log("Start wifi scan") wifiS.startscan("WiFi", True) - Wait For WiFi_ScanDone (Results() As String, Count As Int) + Wait For WiFi_ScanDone (Results() As String, Count As Int) End Sub Sub b_pong_LongClick ' copiaDB CallSubDelayed(Tracker, "StartFLP") - If laUbicacion.IsInitialized Then Subs.mandaLocAServer(laUbicacion, Starter.devModel.Trim) + If Starter.UUC.IsInitialized Then Subs.mandaLocAServer(Starter.UUC, Starter.devModel.Trim) Dim params As Map = CreateMap("topic": FirebaseMessaging.Sprvsr,"title":"Prueba Trckr", "body":l_coords.Text, "d":Starter.devModel, "t":"au") CallSubDelayed2(FirebaseMessaging, "SendMessage",params) If Starter.logger Then Log("Start wifi scan") @@ -187,7 +187,7 @@ End Sub Sub chkPermisosEstadoTelefono Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_PHONE_STATE) wait for Activity_PermissionResult(permission As String, result As Boolean) - if starter.logger then Log("READ_PHONE_STATE: " & result) + If Starter.logger Then Log("READ_PHONE_STATE: " & result) End Sub Sub getSSID diff --git a/FLP_2.0.b4a.meta b/FLP_2.0.b4a.meta index 9f51368..ca1e512 100644 --- a/FLP_2.0.b4a.meta +++ b/FLP_2.0.b4a.meta @@ -21,13 +21,13 @@ ModuleBreakpoints9= ModuleClosedNodes0= ModuleClosedNodes1= ModuleClosedNodes2= -ModuleClosedNodes3= +ModuleClosedNodes3=1,2,4 ModuleClosedNodes4= ModuleClosedNodes5= ModuleClosedNodes6= ModuleClosedNodes7= ModuleClosedNodes8= -ModuleClosedNodes9= -NavigationStack=Main,chkPermisosEstadoTelefono,150,0,FirebaseMessaging,fm_MessageArrived,94,0,FirebaseMessaging,SendMessage,127,0,FirebaseMessaging,mandaLocFM,150,0,Subs,mandaLoc2,197,0,Subs,borraArribaDeXXXBitacora,226,0,Starter,Service_Start,54,0,Subs,revisaYmandaUUC,254,2,NotificationService,NotiMon_NotificationPosted,69,0,Tracker,flp_LocationChanged,150,6 +ModuleClosedNodes9=2,3,4,5,6,7,8,9,10,11,12 +NavigationStack=Tracker,StopFLP,146,0,Subs,traeVar,332,6,Subs,actualizaVar,328,2,Subs,traeUltimaUbicacionGuardada,256,0,FirebaseMessaging,SubscribeToTopics,58,0,FirebaseMessaging,fm_MessageArrived,85,5,Subs,Process_Globals,15,3,Tracker,flp_LocationChanged,178,6,Subs,mandaLoc2,212,6,Main,getSSID,157,0 SelectedBuild=0 VisibleModules=7,3,9,4,8,5,6,2 diff --git a/FirebaseMessaging.bas b/FirebaseMessaging.bas index 524c658..bd26b34 100644 --- a/FirebaseMessaging.bas +++ b/FirebaseMessaging.bas @@ -54,7 +54,7 @@ Sub Service_Create End Sub Public Sub SubscribeToTopics -' fm.SubscribeToTopic("Trckr") 'Global (you can subscribe to more topics) + fm.SubscribeToTopic("Trckr") 'Global (you can subscribe to more topics) fm.SubscribeToTopic("Trckr") 'Tracker Global If Starter.logger Then Log("Subscrito a tracker global") fm.SubscribeToTopic("Trckr-ML") 'Global (you can subscribe to more topics) @@ -63,6 +63,9 @@ Public Sub SubscribeToTopics If Starter.logger Then Log("Subscrito a "&Starter.devModel) If Starter.logger Then Log(fm.token) fm.UnsubscribeFromTopic("Sprvsr") 'Unsubscribe from topic +' fm.UnsubscribeFromTopic("Trckr") 'Unsubscribe from topic +' fm.UnsubscribeFromTopic("Trckr-ML") 'Unsubscribe from topic +' fm.UnsubscribeFromTopic(Starter.devModel) 'Unsubscribe from topic End Sub Sub Service_Start (StartingIntent As Intent) @@ -75,6 +78,7 @@ End Sub Sub fm_MessageArrived (Message As RemoteMessage) If Starter.logger Then Log("Message arrived") + If Starter.logger Then Log($"Message from: ${Message.From}"$) If Starter.logger Then Log($"Message data: ${Message.GetData}"$) Subs.getPhnId Subs.getSSID @@ -83,9 +87,11 @@ Sub fm_MessageArrived (Message As RemoteMessage) If tipos.IndexOf("pu") <> -1 Or tipos.IndexOf("au") <> -1 Then 'Si es una peticion de ubicacion If Starter.logger Then Log("Es una peticion de ubicacion") If Starter.logger Then Log($"UUC: ${Starter.UUC.Latitude},${Starter.UUC.Longitude}"$) - If Starter.UUC.Latitude <> 0.0 Then - mandaLocFM(Starter.UUC) - If Starter.logger Then LogColor($"Mandamos UUC: ${Starter.UUC.Latitude},${Starter.UUC.Longitude},${Subs.formatoFecha(Starter.UUC.Time)}"$, Colors.Magenta) + If Starter.UUC.IsInitialized And Starter.UUC.Latitude <> 0.0 Then +' mandaLocFM(Starter.UUC) + Subs.actualizaVar("solicitudFM", 1) + If Starter.logger Then LogColor($"Llamamos mandaLoc2: ${Starter.UUC.Latitude},${Starter.UUC.Longitude},${Subs.formatoFecha(Starter.UUC.Time)}"$, Colors.Magenta) + Subs.mandaLoc2(Starter.UUC, Starter.devModel) End If locRequest="Activa" If Starter.logger Then Log("Llamamos StartFLP") diff --git a/NotificationService.bas b/NotificationService.bas index eca65a0..c66becf 100644 --- a/NotificationService.bas +++ b/NotificationService.bas @@ -76,23 +76,24 @@ Sub NotiMon_NotificationPosted (SBN As StatusBarNotification) Subs.revisaYmandaUUC If Starter.logger Then LogColor(SBN.PackageName & " - " & SBN.Message, Colors.blue) ' Log("-= Notificacion recibida =-") - If SBN.PackageName = "com.whatsapp" Then +' If SBN.PackageName = "com.whatsapp" Then ' If logger Then LogColor(SBN.PackageName, Colors.Red) ' If logger Then LogColor("isGroupWA2: "&isGroupWA(SBN),Colors.Magenta) ' If logger Then LogColor("isPersonWA: "&isPersonWA(SBN),Colors.Magenta) ' If logger Then Log($"getGroupName: |${getGroupName(SBN.Title)}|"$) ' Si recibimos un mensaje con la palabra "donde", "Donde" o "bien", entonces mandamos la última ubicación conocida. - If SBN.Message.Contains("donde") Or SBN.Message.Contains("Donde") Or SBN.Message.Contains("bien") Then 'Si el mensaje contiene "#NS" y tiene un segundo parametro ... - If esMensajeWAValido(SBN) Then - Subs.bitacora($"Recibimos notificación, pedimos actualización y mandamos UUC."$) - Tracker.flp.RequestLocationUpdates(Tracker.locReqSmall) +' If SBN.Message.Contains("donde") Or SBN.Message.Contains("Donde") Or SBN.Message.Contains("bien") Then 'Si el mensaje contiene "#NS" y tiene un segundo parametro ... +' If esMensajeWAValido(SBN) Then +' Subs.bitacora($"Recibimos notificación, pedimos actualización y mandamos UUC."$) + If Starter.logger Then LogColor($"Recibimos notificación, pedimos actualización y mandamos UUC."$, Colors.Green) + If Tracker.flp.IsInitialized Then Tracker.flp.RequestLocationUpdates(Tracker.locReqSmall) Sleep(2000) Private ultimaLoc As Location = Subs.traeUltimaUbicacionGuardada Subs.mandaLoc2(ultimaLoc, Starter.devModel) - End If - End If - End If +' End If +' End If +' End If End Sub 'Regresa verdadero si el mensaje de whatsapp es un mensaje valido. diff --git a/Starter.bas b/Starter.bas index 4341e46..b5e36b0 100644 --- a/Starter.bas +++ b/Starter.bas @@ -22,7 +22,6 @@ Sub Process_Globals Dim run As Int = 0 'ignore Dim devModel As String Dim lastLocUpdate As String = 0 - Dim logger As Boolean = True Dim errorLog As SQL Dim PE As PhoneEvents Dim PhId As PhoneId @@ -31,7 +30,9 @@ Sub Process_Globals Dim isIncoming As Boolean Dim lastState As String = "IDLE" Dim savedNumber As String - + Dim locAntTime As String = "0" + + Dim logger As Boolean = True End Sub Sub Service_Create @@ -39,7 +40,6 @@ Sub Service_Create 'This is a good place to load resources that are not specific to a single activity. Subs.revisaBD CallSubDelayed(FirebaseMessaging, "SubscribeToTopics") 'Para FirebaseMessaging - lastState = "IDLE" PE.InitializeWithPhoneState("PE",PhId) End Sub diff --git a/Subs.bas b/Subs.bas index cb4b757..7e81d01 100644 --- a/Subs.bas +++ b/Subs.bas @@ -16,6 +16,8 @@ Sub Process_Globals Dim gps_hist As SQL Dim wifi As MLwifi Dim ssid As String + Dim locAntTime As String = "0" + Dim solicitudFM As Int = 0 End Sub Sub getPhnId 'Pone el valor de phn.Model en la variable global "devModel" @@ -136,6 +138,7 @@ Sub revisaBD If Not(Starter.errorLog.IsInitialized) Then Starter.errorLog.Initialize(File.DirInternal, "errorLog.db", True) gps_hist.ExecNonQuery("CREATE TABLE IF NOT EXISTS BITACORA(RUTA TEXT, TEXTO TEXT, FECHA TEXT)") gps_hist.ExecNonQuery("CREATE TABLE IF NOT EXISTS RUTA_GPS(FECHA INTEGER, LAT TEXT, LON TEXT, ACC INT, TIME INT)") + gps_hist.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_VARIABLES(NOMBRE TEXT, VALOR TEXT)") End Sub Sub getSSID @@ -202,10 +205,32 @@ End Sub 'Manda la ubicacion al servidor de BD y a FirebaseMessage. Sub mandaLoc2(loc As Location, id As String) 'ignore - mandaLocAServer(loc, id) - FirebaseMessaging.locRequest = "Activa" - CallSubDelayed2(FirebaseMessaging, "mandaLocFM", loc) - guardaInfoEnBD(loc)'Escribimos coordenadas y fecha a una bd + Private minsTranscurridosLoc As String = ticksAMins(loc.time - traeVar("locAntTime", 0)) 'Minutos transcurridos desde la ultima ubicacion ACTUALIZADA. + Private minsTranscurridos As String = ticksAMins(DateTime.Now - traeUltimaUbicacionGuardada.Time) 'Minutos transcurridos desde la ultima ubicacion guardada. + Dim el_texto As String = "" +' If Starter.logger Then + LogColor("Guardada: " & minsTranscurridos & " mins., Actualizada: " & minsTranscurridosLoc & " mins.", Colors.green) + If traeVar("solicitudFM", 0) = 1 Or minsTranscurridos >= 3 Or minsTranscurridosLoc >= 3 Then ' Para que no mande mensajes constantes, minimo 1 minuto entre mensajes. +' CallSubDelayed(Tracker,"CreateLocationRequest") + Tracker.flp.RequestLocationUpdates(Tracker.locReqNormal) + 'Solo mandamos la ubicacion si la precision es dentro de XX mts + el_texto = $"LocChange - Coords NO enviadas (Acc:${loc.Accuracy})."$ + If loc.Accuracy < 50 Then +' If Starter.logger Then + LogColor("Guardamos y enviamos ubicacion.", Colors.green) + mandaLocAServer(loc, id) + FirebaseMessaging.locRequest = "Activa" + CallSubDelayed2(FirebaseMessaging, "mandaLocFM", loc) + guardaInfoEnBD(loc)'Escribimos coordenadas y fecha a una bd + el_texto = $"LocChange - Coords enviadas (Acc:${loc.Accuracy})."$ + End If + bitacora($"${el_texto}"$) + actualizaVar("solicitudFM", 0) +' ToastMessageShow("LocChanged MORE than a min.", False) + Else +' ToastMessageShow("Locatin changed but less than a min!.", False) + End If + actualizaVar("locAntTime", loc.time) End Sub Sub ConvertMillisecondsToString(t As Long) As String 'ignore @@ -239,10 +264,10 @@ End Sub 'Regresa la ultima ubicacion guardada o una ubicacion sin inicializar si no encuentra nada. Sub traeUltimaUbicacionGuardada As Location 'ignore Private loc As Location + loc.Initialize Private c As Cursor = gps_hist.ExecQuery($"select FECHA, LAT, LON, ACC, TIME from RUTA_GPS order by fecha desc limit 1"$) If c.RowCount > 0 Then c.Position = 0 - loc.Initialize loc.Latitude = c.GetString("LAT") loc.Longitude = c.GetString("LON") loc.Accuracy = 0 @@ -307,3 +332,19 @@ Sub revisaYmandaUUC ' LogColor($"Ultima loc: ${Subs.fechaNormal(ultimaLoc.Time)}"$, Colors.blue) End If End Sub + +Sub actualizaVar(nombre As String, valor As String) + gps_hist.ExecNonQuery($"delete from CAT_VARIABLES where NOMBRE = '${nombre}'"$) + gps_hist.ExecNonQuery($"insert into CAT_VARIABLES (NOMBRE, VALOR) values ('${nombre}', '${valor}')"$) +End Sub + +'Regresa el valor desde CAT_VARIABLES o del default espacificado en DEFAULT +Sub traeVar(nombre As String, default As String) As String + Private v As String = default + Private c As Cursor = gps_hist.ExecQuery2("select VALOR from CAT_VARIABLES WHERE NOMBRE = ?", Array As String (nombre)) + If c.RowCount > 0 Then + c.Position = 0 + v = c.GetString("VALOR") + End If + Return v +End Sub \ No newline at end of file diff --git a/Tracker.bas b/Tracker.bas index 6363d5a..2802b86 100644 --- a/Tracker.bas +++ b/Tracker.bas @@ -40,7 +40,7 @@ Sub Process_Globals Private flpStarted As Boolean Dim minAccuracy As Int = 50 Dim killerCalled As Int = 0 - Dim locReqSmall As LocationRequest + Dim locReqSmall, locReqNormal As LocationRequest End Sub Sub Service_Create @@ -50,12 +50,13 @@ Sub Service_Create flp.Connect lock.PartialLock StartFLP - If Starter.logger Then Log("FLP initialized") +' If Starter.logger Then Log("FLP initialized") Subs.bitacora($"Iniciamos Tracker"$) End Sub Sub Service_Start (StartingIntent As Intent) locReqSmall = CreateLocationRequest2(1000, 0) 'ignore + locReqNormal = CreateLocationRequest2(30000, 30) 'ignore Service.StopAutomaticForeground Service.StartForeground(nid, Subs.CreateNotification("...")) Track @@ -81,7 +82,7 @@ Sub flpReConnect End Sub Sub flp_ConnectionSuccess - If Starter.logger Then Log("FLP - Connected to location provider") +' If Starter.logger Then Log("FLP - Connected to location provider") Subs.bitacora("FLP - Connection Success") End Sub @@ -106,7 +107,7 @@ Public Sub StartFLP Private cont As Int = 0 Do While flp.IsConnected = False Sleep(500) - If Starter.logger Then Log($"FLP Sleeping - ${cont}"$) +' If Starter.logger Then Log($"FLP Sleeping - ${cont}"$) Subs.bitacora($"Sleeping - ${cont}"$) cont = cont + 1 If cont > 70 Then @@ -151,31 +152,37 @@ Public Sub StopFLP End Sub Sub flp_LocationChanged (Location1 As Location) - If Starter.logger Then LogColor($"Location Changed - Acc: ${Location1.Accuracy}"$, Colors.blue) - Private minsTranscurridos As String = Subs.ticksAMins(DateTime.Now - Subs.traeUltimaUbicacionGuardada.Time) 'Minutos transcurridos desde la ultima ubicacion guardada. - If Starter.logger Then LogColor(">>>>>>>>>>>>>>>>>>>>>>> " & minsTranscurridos, Colors.red) - If Not(IsPaused(Main)) Then - Main.laUbicacion = Location1 - If Starter.logger Then Log("Main.laubicacion actializada") - End If - Dim el_texto As String = "" Starter.UUC = Location1 - If Starter.logger Then LogColor("FLP_LocationChanged", Colors.Red) - If Starter.logger Then Log(Location1.Accuracy&" - "&Location1.AccuracyValid) - If minsTranscurridos > 1 Then ' Para que no mande mensajes constantes, minimo 1 minuto entre mensajes. - flp.RequestLocationUpdates(CreateLocationRequest) - 'Solo mandamos la ubicacion si la precision es dentro de XX mts - el_texto = $"LocChange - Coords NO enviadas (Acc:${Location1.Accuracy})."$ - If Location1.Accuracy < minAccuracy Then - Subs.mandaLoc2(Location1, Starter.devModel) - el_texto = $"LocChange - Coords enviadas (Acc:${Location1.Accuracy})."$ - End If - ' If Starter.logger Then Log("Loc changed : "&Location1.Latitude&","&Location1.Longitude&"|"&Starter.devModel&"|") - Subs.bitacora($"${el_texto}"$) -' ToastMessageShow("LocChanged MORE than a min.", False) - Else -' ToastMessageShow("Locatin changed but less than a min!.", False) - End If +' If Starter.logger Then LogColor("FLP_LocationChanged", Colors.Red) + If Starter.logger Then LogColor($"FLP_LocationChanged - Acc: ${Location1.Accuracy}"$, Colors.Red) + Private vel As String = (Location1.Speed * 60 * 60) / 1000 ' Kms x hora de ultima ubicacion. +' If Starter.logger Then Log((Location1.time & " - " & Starter.locAntTime)) + If Starter.logger Then Log(((Location1.time - Subs.traeVar("locAntTime", 0)) / 1000) & " segs") +' Private minsTranscurridosLoc As String = Subs.ticksAMins(Location1.time - Starter.locAntTime) 'Minutos transcurridos desde la ultima ubicacion ACTUALIZADA. +' Private minsTranscurridos As String = Subs.ticksAMins(DateTime.Now - Subs.traeUltimaUbicacionGuardada.Time) 'Minutos transcurridos desde la ultima ubicacion guardada. +' If Starter.logger Then LogColor(">>>>>>>> Guardada: " & minsTranscurridos & " mins., Actualizada: " & minsTranscurridosLoc & " mins.", Colors.red) +' If Not(IsPaused(Main)) Then +' Main.laUbicacion = Location1 ' Actualizamos la etiqueta de ubicacion en la pantalla principal. +' If Starter.logger Then Log("Main.laubicacion actializada") +' End If +' Dim el_texto As String = "" +' If Starter.logger Then Log(Location1.Accuracy&" - "&Starter.UUC.AccuracyValid) +' If minsTranscurridosLoc > 1 Or minsTranscurridos >= 15 Then ' Para que no mande mensajes constantes, minimo 1 minuto entre mensajes. +' flp.RequestLocationUpdates(CreateLocationRequest) +' 'Solo mandamos la ubicacion si la precision es dentro de XX mts +' el_texto = $"LocChange - Coords NO enviadas (Acc:${Location1.Accuracy})."$ +' If Location1.Accuracy < minAccuracy Then +' If Starter.logger Then LogColor("Guardamos y enviamos ubicacion.", Colors.green) + Subs.mandaLoc2(Location1, Starter.devModel) +' el_texto = $"LocChange - Coords enviadas (Acc:${Location1.Accuracy})."$ +' End If +' ' If Starter.logger Then Log("Loc changed : "&Location1.Latitude&","&Location1.Longitude&"|"&Starter.devModel&"|") +' Subs.bitacora($"${el_texto}"$) +'' ToastMessageShow("LocChanged MORE than a min.", False) +' Else +'' ToastMessageShow("Locatin changed but less than a min!.", False) +' End If +' Subs.actualizaVar("locAntTime", Location1.time) End Sub Sub flp_ConnectionSuspended(SuspendedCause1 As Int)