diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas
index 5b79d23..02abf71 100644
--- a/B4A/B4XMainPage.bas
+++ b/B4A/B4XMainPage.bas
@@ -70,8 +70,8 @@ Sub Class_Globals
Private p_dbs As Panel
Private p_servidoresActivos As Panel
Private lv_servidoresActivos As ListView
- Dim jsn As JSONParser
- Dim jsnGnr As JSONGenerator
+' Dim jsn As JSONParser
+' Dim jsnGnr As JSONGenerator
Dim rp As RuntimePermissions
End Sub
@@ -159,25 +159,25 @@ Sub B4XPage_Appear
s.centraEtiqueta(l_ultimoPing, Root.Width)
' s.centraPanel(p_intervalo, Root.Width)
s.centraEtiqueta(Label1, Root.Width)
-' 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
-' b_notifAccess_Click
-' End If
-' Private cd1 As ColorDrawable
-' cd1.Initialize(Colors.red, 10dip)
-' b_notifAccess.Background = cd1
-' b_notifAccess.TextColor = Colors.White
-' b_notifAccess.Text = "Activar Permisos"
-' Else
-' Private cd1 As ColorDrawable
-' cd1.Initialize(Colors.RGB(109, 221, 101), 10dip)
-' b_notifAccess.Background = cd1
-' b_notifAccess.TextColor = Colors.White
-' b_notifAccess.Text = "Permisos Activos"
-' End If
-' CallSubDelayed(Monitor, "Timer1_Tick")
+ 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
+ b_notifAccess_Click
+ End If
+ Private cd1 As ColorDrawable
+ cd1.Initialize(Colors.red, 10dip)
+ b_notifAccess.Background = cd1
+ b_notifAccess.TextColor = Colors.White
+ b_notifAccess.Text = "Activar Permisos"
+ Else
+ Private cd1 As ColorDrawable
+ cd1.Initialize(Colors.RGB(109, 221, 101), 10dip)
+ b_notifAccess.Background = cd1
+ b_notifAccess.TextColor = Colors.White
+ b_notifAccess.Text = "Permisos Activos"
+ End If
+ CallSubDelayed(Monitor, "Timer1_Tick")
End Sub
Private Sub B4XPage_CloseRequest As ResumableSub
@@ -193,11 +193,11 @@ End Sub
'Revisa si la aplicación tiene permiso para acceder a las notificaciones.
Sub CheckNotificationAccess As Boolean
-' 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)
+ 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
Private Sub tb_monitorActivo_CheckedChange(Checked As Boolean)
@@ -310,9 +310,9 @@ End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub b_notifAccess_Click
-' Dim In As Intent
-' In.Initialize("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS", "")
-' StartActivity(In)
+ Dim In As Intent
+ In.Initialize("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS", "")
+ StartActivity(In)
End Sub
Sub CreateListItem(Text As String, Width As Int, Height As Int) As Panel 'ignore
diff --git a/B4A/C_Subs.bas b/B4A/C_Subs.bas
index cd763d3..b3fc960 100644
--- a/B4A/C_Subs.bas
+++ b/B4A/C_Subs.bas
@@ -449,32 +449,36 @@ End Sub
Sub ping
Private ph As Phone
Wait For (ph.ShellAsync("ping", Array As String("-c 1","-W 5", "8.8.8.8"))) Complete (Success As Boolean, ExitValue As Int, StdOut As String, StdErr As String)
- If Success Then
+ Try
+ If Success Then
' Log("ExitValue:" & ExitValue)
' Log("StdError:" & StdErr)
- Private res() As String = Regex.Split(",", StdOut)
- For i = 0 To res.Length - 1
- If res(i).Contains("1 received") Then
- If Starter.logger Then LogColor(">>> HAY CONEXION", Colors.Green)
- Starter.ping = True
- Else If res(i).Contains("0 received") Then
- If Starter.logger Then LogColor(">>> NO HAY CONEXION", Colors.Red)
- Starter.ping = False
- End If
+ Private res() As String = Regex.Split(",", StdOut)
+ For i = 0 To res.Length - 1
+ If res(i).Contains("1 received") Then
+ If Starter.logger Then LogColor(">>> HAY CONEXION", Colors.Green)
+ Starter.ping = True
+ Else If res(i).Contains("0 received") Then
+ If Starter.logger Then LogColor(">>> NO HAY CONEXION", Colors.Red)
+ Starter.ping = False
+ End If
' Log(res(i))
- Next
+ Next
' LogColor("StdOut: " & res, Colors.Blue)
- If B4XPages.IsInitialized Then B4XPages.MainPage.cb_internet.Checked = Starter.ping
- If Not(Starter.ping) Then
- If Starter.logger Then Log("Sin conexión a Google!!!")
- notiLowReturn("SIN INTERNET ❌", "NO hay conexion a Google.", Monitor.nid)
- Dim cs As CSBuilder
- cs.Initialize
- If B4XPages.IsInitialized Then B4XPages.MainPage.l_status.Text = cs.Color(Colors.red).append("NO hay conexión a Google!!").PopAll
+ If B4XPages.IsInitialized Then B4XPages.MainPage.cb_internet.Checked = Starter.ping
+ If Not(Starter.ping) Then
+ If Starter.logger Then Log("Sin conexión a Google!!!")
+ notiLowReturn("SIN INTERNET ❌", "NO hay conexion a Google.", Monitor.nid)
+ Dim cs As CSBuilder
+ cs.Initialize
+ If B4XPages.IsInitialized Then B4XPages.MainPage.l_status.Text = cs.Color(Colors.red).append("NO hay conexión a Google!!").PopAll
+ End If
+ Else
+ Log("Error: " & LastException)
End If
- Else
- Log("Error: " & LastException)
- End If
+ Catch
+ Log(LastException)
+ End Try
End Sub
Sub traeServidorDesdeBD(id As Int) As Map
diff --git a/B4A/Monitor-Keymon.b4a b/B4A/Monitor-Keymon.b4a
index 647e360..1c49662 100644
--- a/B4A/Monitor-Keymon.b4a
+++ b/B4A/Monitor-Keymon.b4a
@@ -20,6 +20,7 @@ Library11=runtimepermissions
Library12=sql
Library13=xcustomlistview
Library14=xui
+Library15=replyauto
Library2=byteconverter
Library3=core
Library4=fusedlocationprovider
@@ -28,23 +29,23 @@ Library6=json
Library7=okhttputils2
Library8=phone
Library9=randomaccessfile
-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~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~''''' CAMBIA LA CLAVE API~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~AddApplicationText(~\n~~\n~)~\n~'AddManifestText(~\n~'~\n~')~\n~ 'End of default text.~\n~ ~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~AddManifestText()~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~AddManifestText()~\n~AddManifestText() 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~AddManifestText()~\n~'AddManifestText()~\n~'AddManifestText()~\n~'AddManifestText()~\n~'AddPermission(android.permission.REQUEST_INSTALL_PACKAGES)~\n~AddPermission(android.permission.INTERNET)~\n~'AddPermission(android.permission.INSTALL_PACKAGES)~\n~'AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~'AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.READ_PHONE_STATE)~\n~AddPermission(android.permission.WAKE_LOCK)~\n~AddPermission(android.permission.ACCESS_NETWORK_STATE)~\n~~\n~'AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~'SetApplicationAttribute(android:largeHeap, "true")~\n~~\n~AddManifestText()~\n~AddPermission(android.permission.INTERNET)~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~'AddApplicationText(~\n~'~\n~' ~\n~' ~\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~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~''''' CAMBIA LA CLAVE API~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~AddApplicationText(~\n~~\n~)~\n~'AddManifestText(~\n~'~\n~')~\n~ 'End of default text.~\n~ ~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~AddManifestText()~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~AddManifestText()~\n~AddManifestText() 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~AddManifestText()~\n~'AddManifestText()~\n~'AddManifestText()~\n~'AddManifestText()~\n~'AddPermission(android.permission.REQUEST_INSTALL_PACKAGES)~\n~AddPermission(android.permission.INTERNET)~\n~'AddPermission(android.permission.INSTALL_PACKAGES)~\n~'AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~'AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.READ_PHONE_STATE)~\n~AddPermission(android.permission.WAKE_LOCK)~\n~AddPermission(android.permission.ACCESS_NETWORK_STATE)~\n~~\n~'AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~'SetApplicationAttribute(android:largeHeap, "true")~\n~~\n~AddManifestText()~\n~AddPermission(android.permission.INTERNET)~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~AddApplicationText(~\n~~\n~ ~\n~ ~\n~ ~\n~)
Module1=B4XMainPage
Module2=BatteryUtilities
Module3=C_Subs
Module4=DBRequestManager
Module5=Monitor
-Module6=NotificationServiceXXX
+Module6=NotificationService
Module7=Starter
NumberOfFiles=7
-NumberOfLibraries=14
+NumberOfLibraries=15
NumberOfModules=7
Version=12.8
@EndOfDesignText@
#Region Project Attributes
#ApplicationLabel: Monitor Keymon
#VersionCode: 1
- #VersionName: 4.12.04
+ #VersionName: 4.12.11
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False
diff --git a/B4A/Monitor-Keymon.b4a.meta b/B4A/Monitor-Keymon.b4a.meta
index a7486b8..353563a 100644
--- a/B4A/Monitor-Keymon.b4a.meta
+++ b/B4A/Monitor-Keymon.b4a.meta
@@ -22,6 +22,6 @@ ModuleClosedNodes4=
ModuleClosedNodes5=5
ModuleClosedNodes6=
ModuleClosedNodes7=
-NavigationStack=Monitor,Service_Create,38,0,Monitor,Service_Start,47,1,Monitor,Process_Globals,17,4,Monitor,Timer1_Tick,61,0,Starter,Process_Globals,22,0,Starter,Service_Create,30,0,Monitor,probamosConexion,95,3,Monitor,JobDone,147,0,Monitor,reinicializaReqManager,125,0,B4XMainPage,B4XPage_Created,95,6
+NavigationStack=C_Subs,ping,445,1,Main,Globals,26,0,B4XMainPage,Class_Globals,66,0,Monitor,Process_Globals,19,0,Monitor,JobDone,162,4,NotificationService,Service_Create,14,0,B4XMainPage,B4XPage_Created,79,0,NotificationService,Service_Start,18,0,NotificationService,MonitorKeymon_NotificationPosted,44,0,Starter,Service_Start,60,0,Monitor,Service_Start,43,0
SelectedBuild=0
-VisibleModules=1,7,3,5,4
+VisibleModules=1,7,3,5,4,6
diff --git a/B4A/NotificationService.bas b/B4A/NotificationService.bas
index e70e840..3e8dde5 100644
--- a/B4A/NotificationService.bas
+++ b/B4A/NotificationService.bas
@@ -11,44 +11,44 @@ Version=11
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
-' Dim rp As ReplyAuto
-' Dim activo As Boolean = True
+ Dim rp As ReplyAuto
+ Dim activo As Boolean = True
Dim ultimaNoti As String
- Dim logger As Boolean = False
End Sub
Sub Service_Create
-' rp.Initialize("MonitorKeymon")
- #if not(DEBUG)
- logger = False
- #end if
- If logger Then Log("**************** Iniciamos Monitor Keymon ***********************")
+ rp.Initialize("MonitorKeymon")
+ If Starter.logger Then Log("**************** Iniciamos Monitor Keymon ***********************")
End Sub
Sub Service_Start (StartingIntent As Intent)
-' Log("NotificationService Start")
-' If rp.HandleIntent(StartingIntent) Then Return
+ Log("Monitor - NotificationService Start")
+ If rp.HandleIntent(StartingIntent) Then Return
DateTime.DateFormat = "mm"
ultimaNoti = DateTime.Date(DateTime.now)
- If logger Then LogColor($"Ultima notificación en el minuto ${ultimaNoti}"$, Colors.green)
+ If Starter.logger Then LogColor($"Ultima notificación en el minuto ${ultimaNoti}"$, Colors.green)
End Sub
Sub Service_Destroy
End Sub
-'Sub MonitorKeymon_NotificationPosted (SBN As StatusBarNotification)
-' If ultimaNoti = "" Then ultimaNoti = 0
-' DateTime.DateFormat = "mm"
-' Private estaNoti As String = DateTime.Date(DateTime.now)
-' If estaNoti > 60 Then estaNoti = estaNoti - 60
-' If logger Then LogColor("Diferencia de tiempo entre notis = " & (estaNoti - ultimaNoti), Colors.blue)
-' If logger Then LogColor($"Esta noti en el minuto ${DateTime.Date(DateTime.now)}, ultima noti = ${ultimaNoti}"$, Colors.green)
-' If logger Then Log(SBN.PackageName)
-' If ultimaNoti < estaNoti Then
-' If logger Then LogColor($"******** TIEMPO *******"$, Colors.red)
-' ultimaNoti = estaNoti
-' If IsPaused(Monitor) Then StartService(Monitor)
-' End If
-' If logger Then LogColor("Monitor inicializado:" & Monitor.Timer1.IsInitialized, Colors.Magenta)
-'End Sub
+Sub MonitorKeymon_NotificationPosted (SBN As StatusBarNotification)
+' Log("|" & ultimaNoti & "|")
+ If ultimaNoti = "" Then ultimaNoti = 0
+ DateTime.DateFormat = "mm"
+ Private estaNoti As String = DateTime.Date(DateTime.now)
+' Log("|" & estaNoti & "|")
+ If estaNoti > 60 Then estaNoti = estaNoti - 60
+' Log("|" & estaNoti & "|")
+ If Starter.logger Then LogColor("Diferencia de tiempo entre notis = " & (estaNoti - ultimaNoti), Colors.blue)
+ If Starter.logger Then LogColor($"Esta noti en el minuto ${DateTime.Date(DateTime.now)}, ultima noti = ${ultimaNoti}"$, Colors.green)
+ If Starter.logger Then Log(SBN.PackageName)
+ If (ultimaNoti + 2) < estaNoti Then '3 minutos
+ If Starter.logger Then LogColor($"******** Revisamos el Monitor *******"$, Colors.red)
+ ultimaNoti = estaNoti
+ If Starter.logger Then Log($"Monitor activo: ${Not(IsPaused(Monitor))}"$)
+ If IsPaused(Monitor) Then StartService(Monitor)
+ End If
+ If Starter.logger Then LogColor("Monitor inicializado: " & Monitor.Timer1.IsInitialized, Colors.Magenta)
+End Sub
diff --git a/B4A/Starter.bas b/B4A/Starter.bas
index bb3ada7..c931e4e 100644
--- a/B4A/Starter.bas
+++ b/B4A/Starter.bas
@@ -24,7 +24,7 @@ Sub Process_Globals
' Dim InternetOk As Boolean = True
' Dim DBReqServerOk As Boolean = True
' Dim DBOk As Boolean = True
- Dim logger As Boolean = False
+ Dim logger As Boolean = True
Dim ping As Boolean = False
Dim servidores As List
End Sub
diff --git a/B4A/monitor.bas b/B4A/monitor.bas
index 5f4a5dc..43b186a 100644
--- a/B4A/monitor.bas
+++ b/B4A/monitor.bas
@@ -68,61 +68,61 @@ End Sub
Sub probamosConexion
If logger Then Log("###################### "& CRLF& " probamos probamosConexion"& CRLF& " ############")
- If B4XPages.IsInitialized Then
- B4XPages.MainPage.lv_servidores.Clear
- B4XPages.MainPage.lv_dbs.Clear
- B4XPages.MainPage.cb_conexion.Checked = False
- B4XPages.MainPage.cb_internet.Checked = False
+ Try
+ If B4XPages.IsInitialized Then
+ B4XPages.MainPage.lv_servidores.Clear
+ B4XPages.MainPage.lv_dbs.Clear
+ B4XPages.MainPage.cb_conexion.Checked = False
+ B4XPages.MainPage.cb_internet.Checked = False
' B4XPages.MainPage.cb_dbreqserver.Checked = False
' B4XPages.MainPage.cb_db.Checked = False
- End If
- If IsConnectedToInternet Then
- s.ping
- InternetOk = True
- If B4XPages.IsInitialized Then
- B4XPages.MainPage.cb_conexion.Checked = True
- B4XPages.MainPage.cb_internet.Checked = Starter.ping
- Dim cd1 As ColorDrawable
- cd1.Initialize(Colors.RGB(16, 141, 0), 10dip)
- B4XPages.MainPage.b_ping.Background = cd1
- B4XPages.MainPage.b_ping.Text = "Internet Ok"
End If
- Dim cmd As DBCommand
- s.notiLowReturn("Hay conexion a internet ✅️", "Revisando servidor ...", nid)
- If B4XPages.IsInitialized Then B4XPages.MainPage.l_status.Text = "Hay conexion a internet!!"
- Dim cmd As DBCommand
- For i = 0 To Starter.servidores.Size - 1
- Private esteServidor As Map = Starter.servidores.Get(i).As(Map)
- Log(esteServidor.Get("servidor"))
- reqManager.Initialize(Me, esteServidor.Get("servidor"))
- cmd.Initialize
- cmd.Name = "select_conexion"
- reqManager.ExecuteQuery(cmd, 0, "select_conexion_" & i, esteServidor.get("timeout"))
- Next
- Private sa As Cursor = Starter.skmt.ExecQuery("select * from cat_servidores")
- If sa.RowCount > 0 Then
- For i = 0 To sa.RowCount - 1
- sa.Position = i
- reqManager.Initialize(Me, sa.GetString("url"))
+ If IsConnectedToInternet Then
+ s.ping
+ InternetOk = True
+ If B4XPages.IsInitialized Then
+ B4XPages.MainPage.cb_conexion.Checked = True
+ B4XPages.MainPage.cb_internet.Checked = Starter.ping
+ Dim cd1 As ColorDrawable
+ cd1.Initialize(Colors.RGB(16, 141, 0), 10dip)
+ B4XPages.MainPage.b_ping.Background = cd1
+ B4XPages.MainPage.b_ping.Text = "Internet Ok"
+ End If
+ Dim cmd As DBCommand
+ s.notiLowReturn("Hay conexion a internet ✅️", "Revisando servidor ...", nid)
+ If B4XPages.IsInitialized Then B4XPages.MainPage.l_status.Text = "Hay conexion a internet!!"
+ Dim cmd As DBCommand
+ For i = 0 To Starter.servidores.Size - 1
+ Private esteServidor As Map = Starter.servidores.Get(i).As(Map)
+ Log(esteServidor.Get("servidor"))
+ reqManager.Initialize(Me, esteServidor.Get("servidor"))
cmd.Initialize
cmd.Name = "select_conexion"
- reqManager.ExecuteQuery(cmd, 0, "select_conexion_" & sa.GetString("id"), sa.GetString("timeout"))
+ reqManager.ExecuteQuery(cmd, 0, "select_conexion_" & i, esteServidor.get("timeout"))
Next
+ Private sa As Cursor = Starter.skmt.ExecQuery("select * from cat_servidores")
+ If sa.RowCount > 0 Then
+ For i = 0 To sa.RowCount - 1
+ sa.Position = i
+ reqManager.Initialize(Me, sa.GetString("url"))
+ cmd.Initialize
+ cmd.Name = "select_conexion"
+ reqManager.ExecuteQuery(cmd, 0, "select_conexion_" & sa.GetString("id"), sa.GetString("timeout"))
+ Next
+ End If
+ 'Reiniciamos el timer para cuando llamamos el Sub desde "seleccion"
+ Timer1.Enabled = False
+ Timer1.Interval = Interval * 1000
+ Timer1.Enabled = True
+ Else
+ If logger Then Log("Sin conexión a internet!!!")
+ s.notiLowReturn("SIN INTERNET ❌", "NO hay conexion a internet.", nid)
+ cs.Initialize
+ If B4XPages.IsInitialized Then B4XPages.MainPage.l_status.Text = cs.Color(Colors.red).append("NO hay conexión a internet!!").PopAll
End If
-
-
-
- 'Reiniciamos el timer para cuando llamamos el Sub desde "seleccion"
- Timer1.Enabled = False
- Timer1.Interval = Interval * 1000
- Timer1.Enabled = True
- Else
- If logger Then Log("Sin conexión a internet!!!")
- s.notiLowReturn("SIN INTERNET ❌", "NO hay conexion a internet.", nid)
- cs.Initialize
- If B4XPages.IsInitialized Then B4XPages.MainPage.l_status.Text = cs.Color(Colors.red).append("NO hay conexión a internet!!").PopAll
- End If
-
+ Catch
+ Log(LastException)
+ End Try
End Sub
Sub reinicializaReqManager 'ignore
@@ -137,21 +137,24 @@ Sub JobDone(Job As HttpJob)
If Job.JobName = "DBRequest" Then DBReqServerOk = False
Dim cd1 As ColorDrawable
cd1.Initialize(Colors.Red, 10dip)
- If B4XPages.IsInitialized Then B4XPages.MainPage.b_ping.Background = cd1
- If B4XPages.IsInitialized Then B4XPages.MainPage.b_ping.Text = "DBReqServer KO"
- Log("Guardamos error en BD")
- If Job.Tag.As(String).StartsWith("select_conexion_") Then
- Private idServidorX() As String = Regex.Split("_", Job.Tag)
+ Try
+ If B4XPages.IsInitialized Then B4XPages.MainPage.b_ping.Background = cd1
+ If B4XPages.IsInitialized Then B4XPages.MainPage.b_ping.Text = "DBReqServer KO"
+ Log("Guardamos error en BD")
+ If Job.Tag.As(String).StartsWith("select_conexion_") Then
+ Private idServidorX() As String = Regex.Split("_", Job.Tag)
' Log("|" & idServidorX(2) & "|")
- Private idServidor As String = idServidorX(2)
- Private m As Map = s.traeServidorDesdeBD(idServidor)
- s.notiHigh("ERROR ❌", $"El servidor ${m.Get("url").As(String).Replace("http://", "")} NO responde!!"$, nid, Main)
- cs.Initialize
- B4XPages.MainPage.lv_servidores.AddSingleLine(cs.Color(Colors.red).append($"${m.Get("url").As(String).Replace("http://", "")} - ERROR"$).PopAll)
- B4XPages.MainPage.lv_servidores.SetSelection(B4XPages.MainPage.lv_servidores.Size - 1)
+ Private idServidor As String = idServidorX(2)
+ Private m As Map = s.traeServidorDesdeBD(idServidor)
+ s.notiHigh("ERROR ❌", $"El servidor ${m.Get("url").As(String).Replace("http://", "")} NO responde!!"$, nid, Main)
+ cs.Initialize
+ If B4XPages.IsInitialized Then B4XPages.MainPage.lv_servidores.AddSingleLine(cs.Color(Colors.red).append($"${m.Get("url").As(String).Replace("http://", "")} - ERROR"$).PopAll)
+ If B4XPages.IsInitialized Then B4XPages.MainPage.lv_servidores.SetSelection(B4XPages.MainPage.lv_servidores.Size - 1)
' B4XPages.MainPage.lv_servidores.AddSingleLine($"${m.Get("url").As(String).Replace("http://", "")} - ERROR"$)
- End If
-
+ End If
+ Catch
+ Log(LastException)
+ End Try
Starter.skmt.ExecNonQuery($"insert into error_log(error, fecha) values ('El servidor ${Starter.DBReqServer} NO responde!!', '${s.fechaKMT(DateTime.Now)}')"$)
If Job.ErrorMessage.Contains("failed to connect") Or Job.ErrorMessage.Contains("Failed to connect") Then
' ToastMessageShow("¡Hubo un error contactando al servidor, por favor revise su conexión!", True)
@@ -162,56 +165,64 @@ Sub JobDone(Job As HttpJob)
If Job.JobName = "DBRequest" Then
Dim resultado As DBResult = reqManager.HandleJob(Job)
If resultado.Tag.As(String).StartsWith("select_conexion_") Then
- Log("select_conexion")
+ If Starter.logger Then Log("select_conexion")
Private idServidorX() As String = Regex.Split("_", resultado.Tag)
Private idServidor As String = idServidorX(2)
Private m As Map = s.traeServidorDesdeBD(idServidor)
- B4XPages.MainPage.lbl.TextColor = Colors.black
- B4XPages.MainPage.lv_servidores.AddSingleLine($"${m.Get("url").As(String).Replace("http://", "")} - OK"$)
- For Each records() As Object In resultado.Rows
- Private valor As String = records(resultado.Columns.Get("VALOR"))
- If valor = "OK" Then
- DBOk = True
- s.notiLowReturn($"El servidor esta respondiendo ✅"$, "Servidor OK ✅", nid)
- If B4XPages.IsInitialized Then
- B4XPages.MainPage.l_status.Text = "El servidor esta respondiendo!!"
- B4XPages.MainPage.lv_dbs.AddSingleLine($"${m.Get("url").As(String).Replace("http://", "")} - OK"$)
- Dim cd1 As ColorDrawable
- cd1.Initialize(Colors.RGB(16, 141, 0), 10dip)
- B4XPages.MainPage.b_ping.Background = cd1
- B4XPages.MainPage.b_ping.Text = "Servidor Ok"
- End If
- Else
- s.notiHigh("ERROR ❌", $"La base de datos ${m.Get("url").As(String).Replace("http://", "")} NO responde!!"$, nid, Main)
- If B4XPages.IsInitialized Then
- B4XPages.MainPage.l_status.Text = "La base de datos NO esta respondiendo!!"
- Log("Guardamos error en BD")
+ Try
+ If B4XPages.IsInitialized Then B4XPages.MainPage.lbl.TextColor = Colors.black
+ If B4XPages.IsInitialized Then B4XPages.MainPage.lv_servidores.AddSingleLine($"${m.Get("url").As(String).Replace("http://", "")} - OK"$)
+ For Each records() As Object In resultado.Rows
+ Private valor As String = records(resultado.Columns.Get("VALOR"))
+ If valor = "OK" Then
+ DBOk = True
+ s.notiLowReturn($"El servidor esta respondiendo ✅"$, "Servidor OK ✅", nid)
+ If B4XPages.IsInitialized Then
+ B4XPages.MainPage.l_status.Text = "El servidor esta respondiendo!!"
+ B4XPages.MainPage.lv_dbs.AddSingleLine($"${m.Get("url").As(String).Replace("http://", "")} - OK"$)
+ Dim cd1 As ColorDrawable
+ cd1.Initialize(Colors.RGB(16, 141, 0), 10dip)
+ B4XPages.MainPage.b_ping.Background = cd1
+ B4XPages.MainPage.b_ping.Text = "Servidor Ok"
+ End If
+ Else
+ s.notiHigh("ERROR ❌", $"La base de datos ${m.Get("url").As(String).Replace("http://", "")} NO responde!!"$, nid, Main)
+ If B4XPages.IsInitialized Then
+ B4XPages.MainPage.l_status.Text = "La base de datos NO esta respondiendo!!"
+ Log("Guardamos error en BD")
' B4XPages.MainPage.lbl.TextColor = Colors.red
' Sleep(200)
- cs.Initialize
- B4XPages.MainPage.lv_dbs.AddSingleLine(cs.Color(Colors.red).append($"${m.Get("url").As(String).Replace("http://", "")} - ERROR"$).PopAll)
- B4XPages.MainPage.lv_servidores.SetSelection(B4XPages.MainPage.lv_servidores.Size - 1)
+ cs.Initialize
+ B4XPages.MainPage.lv_dbs.AddSingleLine(cs.Color(Colors.red).append($"${m.Get("url").As(String).Replace("http://", "")} - ERROR"$).PopAll)
+ B4XPages.MainPage.lv_servidores.SetSelection(B4XPages.MainPage.lv_servidores.Size - 1)
' B4XPages.MainPage.lv_dbs.AddSingleLine($"${m.Get("url").As(String).Replace("http://", "")} - ERROR"$)
- Starter.skmt.ExecNonQuery($"insert into error_log(error, fecha) values ('La BD NO esta respondiendo!!', '${s.fechaKMT(DateTime.Now)}')"$)
- Dim cd1 As ColorDrawable
- cd1.Initialize(Colors.Red, 10dip)
- B4XPages.MainPage.b_ping.Background = cd1
- B4XPages.MainPage.b_ping.Text = "Servidor KO"
+ Starter.skmt.ExecNonQuery($"insert into error_log(error, fecha) values ('La BD NO esta respondiendo!!', '${s.fechaKMT(DateTime.Now)}')"$)
+ Dim cd1 As ColorDrawable
+ cd1.Initialize(Colors.Red, 10dip)
+ B4XPages.MainPage.b_ping.Background = cd1
+ B4XPages.MainPage.b_ping.Text = "Servidor KO"
+ End If
End If
- End If
- Next
+ Next
+ Catch
+ Log(LastException)
+ End Try
End If
' s.logJobDoneResultados(resultado)
If resultado.Rows.Size = 0 Then DBOk = False
' Log(resultado.Rows.Size)
End If
- If B4XPages.IsInitialized Then
- B4XPages.MainPage.cb_conexion.Checked = InternetOk
- B4XPages.MainPage.cb_internet.Checked = Starter.ping
- If DBReqServerOk Then B4XPages.MainPage.cb_internet.Checked = True
+ Try
+ If B4XPages.IsInitialized Then
+ B4XPages.MainPage.cb_conexion.Checked = InternetOk
+ B4XPages.MainPage.cb_internet.Checked = Starter.ping
+ If DBReqServerOk Then B4XPages.MainPage.cb_internet.Checked = True
' B4XPages.MainPage.cb_dbreqserver.Checked = DBReqServerOk
' B4XPages.MainPage.cb_db.Checked = DBOk
- End If
+ End If
+ Catch
+ Log(LastException)
+ End Try
Job.Release
End If
End Sub