mirror of
https://github.com/cheveguerra/FLP_3.0.git
synced 2026-04-17 19:36:19 +00:00
245 lines
9.1 KiB
QBasic
245 lines
9.1 KiB
QBasic
B4A=true
|
|
Group=Default Group
|
|
ModulesStructureVersion=1
|
|
Type=Class
|
|
Version=9.85
|
|
@EndOfDesignText@
|
|
#Region Shared Files
|
|
'#CustomBuildAction: folders ready, %WINDIR%\System32\Robocopy.exe,"..\..\Shared Files" "..\Files"
|
|
'Ctrl + click to sync files: ide://run?file=%WINDIR%\System32\Robocopy.exe&args=..\..\Shared+Files&args=..\Files&FilesSync=True
|
|
'###########################################################################################################
|
|
'###################### PULL #############################################################
|
|
'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=git&Args=pull
|
|
'###########################################################################################################
|
|
'###################### PUSH #############################################################
|
|
'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=github&Args=.\..\..\
|
|
|
|
'GITHUB DESKTOP ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=github&Args=..\..\
|
|
|
|
'###########################################################################################################
|
|
'###################### PUSH TORTOISE GIT #########################################################
|
|
'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=TortoiseGitProc&Args=/command:commit&Args=/path:"./../../"&Args=/closeonend:2
|
|
'###########################################################################################################
|
|
#End Region
|
|
|
|
'Ctrl + click to export as zip: ide://run?File=%B4X%\Zipper.jar&Args=Project.zip
|
|
|
|
Sub Class_Globals
|
|
Private Root As B4XView
|
|
Private xui As XUI
|
|
Dim wifi As MLwifi
|
|
Dim wifiS As MLScan
|
|
Public manager As AdminManager
|
|
' Dim ruta As String
|
|
Dim fechaRuta As String
|
|
Dim laUbicacion As Location
|
|
Private b_pong As Button
|
|
Private et_id As EditText
|
|
Private b_guardarId As Button
|
|
Private l_coords As Label
|
|
Dim l_lastUpdate As Label
|
|
Private l_id As Label
|
|
' Private b_flpConnect As Button
|
|
Private b_exit As Button
|
|
Private l_version As Label
|
|
End Sub
|
|
|
|
Public Sub Initialize
|
|
' B4XPages.GetManager.LogEvents = True
|
|
End Sub
|
|
|
|
'This event will be called once, before the page becomes visible.
|
|
Private Sub B4XPage_Created (Root1 As B4XView)
|
|
Root = Root1
|
|
Root.LoadLayout("layout")
|
|
l_version.Text = Application.VersionName
|
|
' ruta = File.DirInternal
|
|
Subs.getPhnId
|
|
et_id.Text = Starter.devModel.trim
|
|
getSSID
|
|
b_pong.Left = Round(Root.Width/2)-(b_pong.Width/2)
|
|
' b_flpConnect.Left = Round(Activity.Width/2)-(b_flpConnect.Width/2)
|
|
b_exit.Left = Round(Root.Width/2)-(b_exit.Width/2)
|
|
l_id.Left = (Root.Width / 2) - (l_id.Width / 2)
|
|
l_lastUpdate.Left = (Root.Width / 2) - (l_lastUpdate.Width / 2)
|
|
b_guardarId.Left = (Root.Width / 2) - (b_guardarId.Width / 2)
|
|
et_id.Left = (Root.Width / 2) - (et_id.Width / 2)
|
|
chkPermisosUbicacion 'Permisos de ubicacion para Tracker
|
|
chkPermisosAlmacenamientoExterno
|
|
chkPermisosLeerLlamadas 'Permisos de telefono para registrar llamadas
|
|
chkPermisosEstadoTelefono
|
|
End Sub
|
|
|
|
Sub B4XPage_Appear
|
|
Subs.getPhnId
|
|
et_id.Text = Starter.devModel.Trim
|
|
getSSID
|
|
getAdminRights
|
|
l_lastUpdate.Text = Subs.fechaKMT(Starter.lastLocUpdate)
|
|
' ruta = File.DirInternal
|
|
If Not(CheckNotificationAccess) Then
|
|
Msgbox2Async($"Se necesita acceso a las notificaciones, haga clic en "Aceptar" y en la siguiente pantalla permita el acceso a la aplicación "${Application.LabelName}"."$, "Permisos necesarios", "Aceptar", "Cancelar", "", Null, True)
|
|
Wait For Msgbox_Result (resultado As Int)
|
|
If resultado = DialogResponse.POSITIVE Then
|
|
Dim In As Intent
|
|
In.Initialize("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS", "")
|
|
StartActivity(In)
|
|
End If
|
|
End If
|
|
ponCoords
|
|
End Sub
|
|
|
|
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
|
|
|
|
|
|
Sub b_pong_Click
|
|
CallSubDelayed(Tracker, "StartFLP")
|
|
If Starter.UUC.IsInitialized Then Subs.mandaLocAServer(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)
|
|
End Sub
|
|
|
|
Sub b_pong_LongClick
|
|
' copiaDB
|
|
CallSubDelayed(Tracker, "StartFLP")
|
|
If Starter.UUC.IsInitialized Then Subs.mandaLocAServer(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")
|
|
wifiS.startscan("WiFi", True)
|
|
Wait For WiFi_ScanDone (Results() As String, Count As Int)
|
|
|
|
End Sub
|
|
|
|
'Obtenemos permisos de almacenamiento.
|
|
Sub chkPermisosAlmacenamientoExterno
|
|
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
|
|
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
|
|
If Result Then
|
|
' If Starter.logger Then Log("Permisos de almacenamiento externo OK")
|
|
Else
|
|
' ToastMessageShow("SIN permisos de almacenamiento externo", True)
|
|
End If
|
|
End Sub
|
|
|
|
'Obtenemos permisos de ubicacion.
|
|
Sub chkPermisosUbicacion
|
|
' If Starter.logger Then Log("Revisamos permisos de ubicación.")
|
|
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION)
|
|
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
|
|
If Result Then
|
|
StartService(Tracker)
|
|
If Starter.logger Then Log("Start Tracker")
|
|
Else
|
|
' ToastMessageShow("SIN permisos de ubicacion", True)
|
|
End If
|
|
' Starter.rp.CheckAndRequest(Starter.rp. )
|
|
' Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
|
|
' If Result Then
|
|
' StartService(Tracker)
|
|
' If Starter.logger Then Log("Start Tracker")
|
|
' Else
|
|
'' ToastMessageShow("SIN permisos de ubicacion", True)
|
|
' End If
|
|
End Sub
|
|
|
|
'Obtenemos permisos de llamadas.
|
|
Sub chkPermisosLeerLlamadas
|
|
Starter.rp.CheckAndRequest("android.permission.READ_CALL_LOG")
|
|
wait for Activity_PermissionResult(permission As String, result As Boolean)
|
|
Log("READ_CALL_LOG: " & result)
|
|
End Sub
|
|
|
|
'Obtenemos permisos de estado de telefono.
|
|
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)
|
|
End Sub
|
|
|
|
Sub getSSID
|
|
If wifi.isWifiConnected Then
|
|
Subs.ssid = wifi.WifiSSID
|
|
End If
|
|
End Sub
|
|
|
|
Sub getAdminRights
|
|
If manager.Enabled = False Then
|
|
manager.Enable("Please enable in order to get access to the secured server.")
|
|
End If
|
|
End Sub
|
|
|
|
'Sub wifiScanned_ScanDone
|
|
' Log("//////////////////////////////wifi_conected_result")
|
|
' ToastMessageShow("Wifi_ConnectionResult",True)
|
|
' If wifi.isWifiConnected Then
|
|
' ssid = wifi.WifiSSID
|
|
' End If
|
|
'End Sub
|
|
|
|
Sub copiaDB 'ignore
|
|
' Log("ruta="&ruta)
|
|
' Log("File.DirInternal="&File.DirInternal)
|
|
' Log("File.DirRootExternal="&File.DirRootExternal)
|
|
' Log("File.DirDefaultExternal="&File.DirDefaultExternal)
|
|
' Log(Starter.rp.GetSafeDirDefaultExternal(""))
|
|
' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
|
|
' Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
|
|
' If Result Then
|
|
' If Starter.logger Then Log("Tenemos permisos de escritura.")
|
|
' File.Copy(File.DirInternal , "gps_hist.db", File.DirDefaultExternal, "gps_hist.db")
|
|
' If Starter.logger Then Log($"DB escrita a ${File.DirDefaultExternal}"$)
|
|
' ToastMessageShow($"DB escrita a ${File.DirDefaultExternal}"$, True)
|
|
' End If
|
|
End Sub
|
|
|
|
Private Sub b_guardarId_Click
|
|
If et_id.Text.Length > 2 Then 'Si tenemos valor para ID
|
|
File.WriteString(File.DirInternal, "phnId.txt", et_id.Text.trim) 'Sobreescribimos archivo IdPersonal.txt con ID
|
|
Starter.devModel = et_id.Text.Trim
|
|
If Starter.logger Then Log("Tenemos ID: "& et_id.Text.Trim & " "&File.DirInternal&"/phnId.txt sobreescrito")
|
|
Else If et_id.Text.Length < 3 Then ' Si no tenemos valor, lo leemos de IdPersonal.txt
|
|
Dim s As String = File.ReadString(File.DirInternal, "phnId.txt")
|
|
Starter.devModel = s
|
|
If Starter.logger Then Log("Leemos id de "&File.DirInternal&"/phnId.txt")
|
|
et_id.Text = Starter.devModel.Trim
|
|
If Starter.logger Then Log(Starter.devModel.Trim)
|
|
End If
|
|
If laUbicacion.IsInitialized Then Subs.mandaLocAServer(Starter.devModel.Trim)
|
|
End Sub
|
|
|
|
Sub ponCoords
|
|
l_coords.left = (Root.Width/2) - (l_coords.Width/2)
|
|
l_coords.Text = $"${Starter.UUC.Latitude},${Starter.UUC.Longitude}"$
|
|
End Sub
|
|
|
|
'Revisa si la aplicación tiene permiso para acceder a las notificaciones.
|
|
Sub CheckNotificationAccess As Boolean
|
|
Dim ph As Phone
|
|
Dim nstr, pstr As String
|
|
Dim r As Reflector
|
|
pstr = r.GetStaticField("anywheresoftware.b4a.BA", "packageName")
|
|
nstr = ph.GetSettings("enabled_notification_listeners")
|
|
Return nstr.Contains(pstr)
|
|
End Sub
|
|
|
|
Sub actualizaLabelUU
|
|
l_lastUpdate.Text = Subs.fechaKMT(Starter.lastLocUpdate)
|
|
End Sub
|
|
|
|
'Private Sub b_flpConnect_Click
|
|
' Log("Conectamos a FLP")
|
|
' CallSubDelayed(Tracker, "flpReConnect")
|
|
'End Sub
|
|
|
|
Private Sub b_exit_Click
|
|
' CallSubDelayed(Tracker, "flpReConnect")
|
|
Starter.restartTracker
|
|
End Sub
|
|
|
|
Sub b_exit_LongClick
|
|
ExitApplication
|
|
End Sub |