From aec2c705a2a86c062605a5d021b58d0a14b4d13d Mon Sep 17 00:00:00 2001 From: Jose Alberto Guerra Ugalde Date: Thu, 4 Jan 2024 03:08:56 -0600 Subject: [PATCH] 4/1/2024 - Se puso codigo de prueba para guardar en bitacora llamadas entrantes y salientes --- FLP_2.0.b4a | 6 +++-- FLP_2.0.b4a.meta | 8 +++--- Files/layout.bal | Bin 4320 -> 4739 bytes Starter.bas | 62 ++++++++++++++++++++++++++++++++++++++++++++++- Subs.bas | 22 ++++++++--------- Tracker.bas | 6 ++++- 6 files changed, 85 insertions(+), 19 deletions(-) diff --git a/FLP_2.0.b4a b/FLP_2.0.b4a index 3c63bbb..e9e0bb8 100644 --- a/FLP_2.0.b4a +++ b/FLP_2.0.b4a @@ -21,7 +21,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=FirebaseMessaging Module3=Mods @@ -38,7 +38,7 @@ Version=12.5 #Region Project Attributes #ApplicationLabel: FLP 2.0 #VersionCode: 1 - #VersionName: 3.10.01 + #VersionName: 3.11.11 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: unspecified #CanInstallToExternalStorage: False @@ -83,10 +83,12 @@ Sub Globals Private l_id As Label ' Private b_flpConnect As Button Private b_exit As Button + Private l_version As Label End Sub Sub Activity_Create(FirstTime As Boolean) Activity.LoadLayout("Layout") + l_version.Text = Application.VersionName ' ruta = File.DirInternal Subs.getPhnId et_id.Text = Starter.devModel.trim diff --git a/FLP_2.0.b4a.meta b/FLP_2.0.b4a.meta index a4a5af7..a3f0082 100644 --- a/FLP_2.0.b4a.meta +++ b/FLP_2.0.b4a.meta @@ -18,13 +18,13 @@ ModuleBreakpoints7= ModuleBreakpoints8= ModuleClosedNodes0=12,13 ModuleClosedNodes1= -ModuleClosedNodes2=5,6,7,9,10 +ModuleClosedNodes2=6,9,10 ModuleClosedNodes3=1 ModuleClosedNodes4= ModuleClosedNodes5= ModuleClosedNodes6= -ModuleClosedNodes7=2,3,4,5,6,7,9,10,11,13,14,15,16,17,19,20,22 -ModuleClosedNodes8=8,10,11,12 -NavigationStack=Tracker,flp_ConnectionSuccess,78,3,Tracker,flp_ConnectionFailed,83,1,NotificationService,NotiMon_NotificationPosted,72,0,Tracker,flp_ConnectionSuspended,173,0,Starter,Timer1_Tick,47,2,Subs,revisaYmandaUUC,279,6,Starter,Service_Start,30,0,Subs,revisaBD,130,0,Subs,traeUltimaUbicacionGuardada,243,5,Subs,bitacora,222,0 +ModuleClosedNodes7=2,5,6,7,9,11,13,14,16,19,20 +ModuleClosedNodes8=8,11,12 +NavigationStack=Tracker,StartFLP,107,0,Main,b_pong_Click,92,0,Starter,Service_Start,31,0,Starter,Application_Error,56,0,Starter,Timer1_Tick,49,0,Starter,Service_TaskRemoved,53,0,Starter,Service_Create,37,0,Starter,Process_Globals,26,0,Starter,restartTracker,84,0,Starter,PE_PhoneStateChanged,90,6 SelectedBuild=0 VisibleModules=6,2,8,3,7,4,5 diff --git a/Files/layout.bal b/Files/layout.bal index d273394c38450e70958f756c06f951ac23d5662b..c059ea190cbb252819c5fbe984812295f26dda69 100644 GIT binary patch delta 124 zcmaE$*sRLS%D}*|nUR5k3rGu0 ${Error}"$) Return True End Sub @@ -69,9 +82,56 @@ Sub Service_Destroy End Sub Sub restartTracker - Log("Llamamos RESTART-TRACKER") + If logger Then Log("Llamamos RESTART-TRACKER") Subs.bitacora("Llamamos RESTART-TRACKER") StopService(Tracker) Sleep(1000) StartService(Tracker) +End Sub + +Sub PE_PhoneStateChanged (State As String, IncomingNumber As String, Intent As Intent) + 'Incoming call- goes from IDLE To RINGING when it rings, To OFFHOOK when it's answered, to IDLE when its hung up + 'Outgoing call- goes from IDLE To OFFHOOK when it dials out, To IDLE when hung up + Log($">>>>> Phone State Changed -> ${State} -> "$ & IncomingNumber) + If IncomingNumber = "" Then + Return + End If + Log($">>>>> Phone State Changed 2 -> ${State} -> "$ & IncomingNumber) + Select State + Case "RINGING" + 'calling in progress + isIncoming = True + callStartTime = DateTime.Now + savedNumber = IncomingNumber + Subs.bitacora($"RINGING - ${IncomingNumber}"$) + Exit + Case "OFFHOOK" + 'Transition of ringing->offhook are pickups of incoming calls. Nothing donw on them + If lastState <> "RINGING" Then + 'outgoing call start + isIncoming = False + callStartTime = DateTime.Now + Subs.bitacora($"OFFHOOK - ${savedNumber}"$) + End If + Exit + Case "IDLE" + 'Went to idle- this is the end of a call. What type depends on previous state(s) + If lastState = "RINGING" Then + 'missed call + callEndTime = 0 + Subs.bitacora($"IDLE - Missed call (${IncomingNumber}): ${callEndTime}"$) + else if isIncoming Then + 'incoming call is finished + callEndTime = DateTime.Now + Subs.bitacora($"IDLE - Incoming call is finished (${IncomingNumber}): ${callEndTime}"$) + Else + 'outgoing call is finished + callEndTime = DateTime.Now + Subs.bitacora($"IDLE - Outgoing call is finished (${IncomingNumber}): ${callEndTime}"$) + End If + Exit + End Select + lastState = State + + 'Log("PhoneStateChanged, State = " & State & ", IncomingNumber = " & IncomingNumber & "; PhoneFlag = " & PhoneFlag) End Sub \ No newline at end of file diff --git a/Subs.bas b/Subs.bas index 2413798..4c8562c 100644 --- a/Subs.bas +++ b/Subs.bas @@ -41,20 +41,20 @@ End Sub Sub compress(str As String) As String ' Compresion Dim compressed() As Byte = GZip.compress(str) - Log($"CompressedBytesLength: ${compressed.Length}"$) + If Starter.logger Then Log($"CompressedBytesLength: ${compressed.Length}"$) Dim base64 As String = su.EncodeBase64(compressed) - Log($"CompressedBytes converted to base64 Length: ${base64.Length}"$) - Log($"CompressedBytes converted to base64: ${base64}"$) + If Starter.logger Then Log($"CompressedBytes converted to base64 Length: ${base64.Length}"$) + If Starter.logger Then Log($"CompressedBytes converted to base64: ${base64}"$) Return base64 End Sub Sub decompress(base64 As String) As String ' Descompresion 'ignore Dim decompressedbytes() As Byte = su.DecodeBase64(base64) - Log($"decompressedbytesLength: ${decompressedbytes.Length}"$) + If Starter.logger Then Log($"decompressedbytesLength: ${decompressedbytes.Length}"$) Dim bc As ByteConverter Dim uncompressed As String = bc.StringFromBytes(decompressedbytes,"UTF8") - Log($"uncompressedLength: ${uncompressed.Length}"$) - Log($"Decompressed String = ${uncompressed}"$) + If Starter.logger Then Log($"uncompressedLength: ${uncompressed.Length}"$) + If Starter.logger Then Log($"Decompressed String = ${uncompressed}"$) Return uncompressed End Sub @@ -167,12 +167,12 @@ Sub fechaKMT2Ticks(fKMT As String) As Long 'ignore DateTime.DateFormat=OrigFormat 'return to original date format Return ticks Else - Log("Formato de fecha incorrecto, debe de ser 'YYMMDDHHMMSS', no '"&fKMT&"' largo="&fKMT.Length) + If Starter.logger Then Log("Formato de fecha incorrecto, debe de ser 'YYMMDDHHMMSS', no '"&fKMT&"' largo="&fKMT.Length) Return 0 End If Catch - Log(LastException) - LogColor($"Fecha dada: ${fKMT}, Parte Fecha: ${parteFecha}, Parte Hora: ${parteHora}"$, Colors.Red) + Log("FLP-fechaKMT2Ticks Error -> " & LastException) + If Starter.logger Then LogColor($"Fecha dada: ${fKMT}, Parte Fecha: ${parteFecha}, Parte Hora: ${parteHora}"$, Colors.Red) Return 0 End Try End Sub @@ -194,7 +194,7 @@ Sub mandaLocAServer(loc As Location, id As String) Starter.cmd.Name = "guardaDatos" Starter.cmd.Parameters = Array As Object(fechaKMT(DateTime.Now), id, fechaKMT(DateTime.Now), $"${loc.Latitude},${loc.Longitude},${loc.Accuracy},${loc.AccuracyValid},${loc.Speed},${loc.SpeedValid}"$, "Coords") ' If Starter.logger Then - If Starter.logger Then Log($"Mandamos loc a server: ${fechaKMT(DateTime.Now)}|${id}|${fechaKMT(DateTime.Now)}|${loc.Latitude},${loc.Longitude}|Coords"$) + If Starter.logger Then Log($">>>> Mandamos loc a server: ${fechaKMT(DateTime.Now)}|${id}|${fechaKMT(DateTime.Now)}|${loc.Latitude},${loc.Longitude}|Coords"$) ' End If Starter.reqManager.ExecuteCommand(Starter.cmd,"guardaDatos") End Sub @@ -285,7 +285,7 @@ Sub revisaYmandaUUC StartService(Tracker) else If minsTranscurridos >= 30 Then If Tracker.flp.IsInitialized Then LogColor($"FLP.Connected: ${Tracker.flp.IsConnected}"$, Colors.Red) - If Tracker.flp.IsInitialized and Not(Tracker.flp.IsConnecting) Then 'Si NO esta en proceso de conectarse ... + If Tracker.flp.IsInitialized And Not(Tracker.flp.IsConnecting) Then 'Si NO esta en proceso de conectarse ... LogColor("RESTART-APP", Colors.red) bitacora("Mas de 30 mins - RESTART-APP") ' bitacora(Tracker.flp.SuspendedCause) 'ignore diff --git a/Tracker.bas b/Tracker.bas index 5807282..e738d94 100644 --- a/Tracker.bas +++ b/Tracker.bas @@ -76,7 +76,7 @@ Sub flpReConnect ExitApplication End If Catch - Log(LastException) + Log("FLP-Tracker Error -> " & LastException) End Try End Sub @@ -152,6 +152,10 @@ End Sub Sub flp_LocationChanged (Location1 As Location) LogColor($"Location Changed - Acc: ${Location1.Accuracy}"$, Colors.blue) + 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 flp.RequestLocationUpdates(CreateLocationRequest)