mirror of
https://github.com/KeymonSoft/Monitor-Keymon.git
synced 2026-04-17 21:06:19 +00:00
- VERSION 4.11.30
- Se quitaron librerias y permisos que no se usaban. - Se agregó la opción de monitorear mas de un servidor.
This commit is contained in:
@@ -35,8 +35,8 @@ Sub Class_Globals
|
|||||||
Private p_estatus As Panel
|
Private p_estatus As Panel
|
||||||
Dim cb_conexion As CheckBox
|
Dim cb_conexion As CheckBox
|
||||||
Dim cb_internet As CheckBox
|
Dim cb_internet As CheckBox
|
||||||
Dim cb_dbreqserver As CheckBox
|
' Dim cb_dbreqserver As CheckBox
|
||||||
Dim cb_db As CheckBox
|
' Dim cb_db As CheckBox
|
||||||
' Private b_intervalo As Button
|
' Private b_intervalo As Button
|
||||||
' Private b_server As Button
|
' Private b_server As Button
|
||||||
Private et_server As EditText
|
Private et_server As EditText
|
||||||
@@ -60,6 +60,19 @@ Sub Class_Globals
|
|||||||
Private l_server As Label
|
Private l_server As Label
|
||||||
Private l_info As Label
|
Private l_info As Label
|
||||||
Private b_guardaCambios As Button
|
Private b_guardaCambios As Button
|
||||||
|
Dim servidores As List
|
||||||
|
Dim lv_servidores As ListView
|
||||||
|
Dim lbl, lbl2, lbl3 As B4XView
|
||||||
|
Private p_dbreqServidores As Panel
|
||||||
|
Private l_db As Label
|
||||||
|
Private l_dbreqServer As Label
|
||||||
|
Dim lv_dbs As ListView
|
||||||
|
Private p_dbs As Panel
|
||||||
|
Private p_servidoresActivos As Panel
|
||||||
|
Private lv_servidoresActivos As ListView
|
||||||
|
Dim jsn As JSONParser
|
||||||
|
Dim jsnGnr As JSONGenerator
|
||||||
|
DIM rp AS RuntimePermissions
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Sub Initialize
|
Public Sub Initialize
|
||||||
@@ -74,9 +87,9 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
|||||||
B4XPages.AddPage("Login", login)
|
B4XPages.AddPage("Login", login)
|
||||||
s.Initialize
|
s.Initialize
|
||||||
l_version.Text = Application.VersionName
|
l_version.Text = Application.VersionName
|
||||||
lv_server.AddSingleLine("http://keymon.lat:1782")
|
' lv_server.AddSingleLine("http://keymon.lat:1782")
|
||||||
lv_server.AddSingleLine("http://10.0.0.205:1782")
|
' lv_server.AddSingleLine("http://10.0.0.205:1782")
|
||||||
lv_server.AddSingleLine("http://40.123.36.38:1782")
|
' lv_server.AddSingleLine("http://40.123.36.38:1782")
|
||||||
|
|
||||||
clv_server.Add(CreateListItem("http://keymon.lat:1782", clv_server.AsView.Width, 35dip), "http://keymon.lat:1782")
|
clv_server.Add(CreateListItem("http://keymon.lat:1782", clv_server.AsView.Width, 35dip), "http://keymon.lat:1782")
|
||||||
clv_server.Add(CreateListItem("http://10.0.0.205:1782", clv_server.AsView.Width, 35dip), "http://10.0.0.205:1782")
|
clv_server.Add(CreateListItem("http://10.0.0.205:1782", clv_server.AsView.Width, 35dip), "http://10.0.0.205:1782")
|
||||||
@@ -86,14 +99,53 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
|||||||
logger = False
|
logger = False
|
||||||
#end if
|
#end if
|
||||||
s.centraEtiqueta(l_info, Root.Width)
|
s.centraEtiqueta(l_info, Root.Width)
|
||||||
|
servidores.Initialize
|
||||||
|
' Private srv1 As Map = CreateMap("nombre": "1781", "servidor": "http://keymon.lat:1781", "intervalo": 30, "timeout": 11000)
|
||||||
|
' Private srv2 As Map = CreateMap("nombre": "1782", "servidor": "http://keymon.lat:1782", "intervalo": 30, "timeout": 11000)
|
||||||
|
' Private srv3 As Map = CreateMap("nombre": "1783", "servidor": "http://keymon.lat:1783", "intervalo": 30, "timeout": 11000)
|
||||||
|
' servidores.AddAll(Array As Object (srv1, srv2, srv3))
|
||||||
|
' Private srvrsMap As Map
|
||||||
|
' srvrsMap.Initialize
|
||||||
|
' srvrsMap.Put("1781", srv1)
|
||||||
|
' srvrsMap.Put("1782", srv2)
|
||||||
|
' srvrsMap.Put("1783", srv3)
|
||||||
|
' Starter.skmt.ExecNonQuery($"delete from cat_variables where nombre = 'servidores'"$)
|
||||||
|
' jsnGnr.Initialize2(servidores)
|
||||||
|
' Starter.skmt.ExecNonQuery($"insert into cat_variables (nombre, valor) values ("servidores", '${jsnGnr.ToString}')"$)
|
||||||
|
|
||||||
|
|
||||||
|
' Starter.skmt.ExecNonQuery("insert into cat_servidores (nombre, url, intervalo, timeout) values ('1781', 'http://keymon.lat:1781', '30', '11000')")
|
||||||
|
' Starter.skmt.ExecNonQuery("insert into cat_servidores (nombre, url, intervalo, timeout) values ('1782', 'http://keymon.lat:1782', '30', '11000')")
|
||||||
|
' Starter.skmt.ExecNonQuery("insert into cat_servidores (nombre, url, intervalo, timeout) values ('1783', 'http://keymon.lat:1783', '30', '11000')")
|
||||||
|
lv_servidores.SingleLineLayout.ItemHeight = 22dip
|
||||||
|
lbl = lv_servidores.SingleLineLayout.Label
|
||||||
|
lbl.TextColor = Colors.black
|
||||||
|
lbl.SetTextAlignment("CENTER", "CENTER")
|
||||||
|
lbl.TextSize = 14
|
||||||
|
lv_dbs.SingleLineLayout.ItemHeight = 22dip
|
||||||
|
lbl2 = lv_dbs.SingleLineLayout.Label
|
||||||
|
lbl2.TextColor = Colors.black
|
||||||
|
lbl2.SetTextAlignment("CENTER", "CENTER")
|
||||||
|
lbl2.TextSize = 14
|
||||||
|
lv_servidoresActivos.SingleLineLayout.ItemHeight = 30dip
|
||||||
|
lbl3 = lv_servidoresActivos.SingleLineLayout.Label
|
||||||
|
lbl3.TextColor = Colors.black
|
||||||
|
lbl3.SetTextAlignment("CENTER", "CENTER")
|
||||||
|
lbl3.TextSize = 16
|
||||||
|
p_dbreqServidores.Left = (p_estatus.Width / 2) - (lv_servidores.Width / 2)
|
||||||
|
lv_servidores.Top = 10
|
||||||
|
lv_servidores.Left = 0
|
||||||
|
s.centraEtiqueta(l_dbreqServer, p_estatus.Width)
|
||||||
|
s.centraEtiqueta(l_db, p_estatus.Width)
|
||||||
|
s.borraArribaDeXXXErrores(3000)
|
||||||
|
rp.CheckAndRequest(rp.PERMISSION_POST_NOTIFICATIONS)
|
||||||
|
Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) 'change to Activity_PermissionResult if non-B4XPages.
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub B4XPage_Appear
|
Sub B4XPage_Appear
|
||||||
' reqManager.Initialize(Me, Starter.DBReqServer)
|
' reqManager.Initialize(Me, Starter.DBReqServer)
|
||||||
cd1.Initialize(Colors.RGB(16, 141, 0), 10dip)
|
cd1.Initialize(Colors.RGB(16, 141, 0), 10dip)
|
||||||
b_ping.Background = cd1
|
b_ping.Background = cd1
|
||||||
' bu.Initialize
|
|
||||||
' batterystatus = bu.BatteryInformation
|
|
||||||
b_monitorActivo.Left = (Root.Width / 2) - (b_monitorActivo.Width / 2)
|
b_monitorActivo.Left = (Root.Width / 2) - (b_monitorActivo.Width / 2)
|
||||||
b_ping.Left = (Root.Width / 2) - (b_ping.Width / 2)
|
b_ping.Left = (Root.Width / 2) - (b_ping.Width / 2)
|
||||||
s.centraPanel(p_estatus, Root.Width)
|
s.centraPanel(p_estatus, Root.Width)
|
||||||
@@ -101,25 +153,25 @@ Sub B4XPage_Appear
|
|||||||
s.centraEtiqueta(l_ultimoPing, Root.Width)
|
s.centraEtiqueta(l_ultimoPing, Root.Width)
|
||||||
' s.centraPanel(p_intervalo, Root.Width)
|
' s.centraPanel(p_intervalo, Root.Width)
|
||||||
s.centraEtiqueta(Label1, Root.Width)
|
s.centraEtiqueta(Label1, Root.Width)
|
||||||
If Not(CheckNotificationAccess) Then
|
' 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)
|
' 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)
|
' Wait For Msgbox_Result (resultado As Int)
|
||||||
If resultado = DialogResponse.POSITIVE Then
|
' If resultado = DialogResponse.POSITIVE Then
|
||||||
b_notifAccess_Click
|
' b_notifAccess_Click
|
||||||
End If
|
' End If
|
||||||
Private cd1 As ColorDrawable
|
' Private cd1 As ColorDrawable
|
||||||
cd1.Initialize(Colors.red, 10dip)
|
' cd1.Initialize(Colors.red, 10dip)
|
||||||
b_notifAccess.Background = cd1
|
' b_notifAccess.Background = cd1
|
||||||
b_notifAccess.TextColor = Colors.White
|
' b_notifAccess.TextColor = Colors.White
|
||||||
b_notifAccess.Text = "Activar Permisos"
|
' b_notifAccess.Text = "Activar Permisos"
|
||||||
Else
|
' Else
|
||||||
Private cd1 As ColorDrawable
|
' Private cd1 As ColorDrawable
|
||||||
cd1.Initialize(Colors.RGB(109, 221, 101), 10dip)
|
' cd1.Initialize(Colors.RGB(109, 221, 101), 10dip)
|
||||||
b_notifAccess.Background = cd1
|
' b_notifAccess.Background = cd1
|
||||||
b_notifAccess.TextColor = Colors.White
|
' b_notifAccess.TextColor = Colors.White
|
||||||
b_notifAccess.Text = "Permisos Activos"
|
' b_notifAccess.Text = "Permisos Activos"
|
||||||
End If
|
' End If
|
||||||
CallSubDelayed(Monitor, "Timer1_Tick")
|
' CallSubDelayed(Monitor, "Timer1_Tick")
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub B4XPage_CloseRequest As ResumableSub
|
Private Sub B4XPage_CloseRequest As ResumableSub
|
||||||
@@ -135,11 +187,11 @@ End Sub
|
|||||||
|
|
||||||
'Revisa si la aplicación tiene permiso para acceder a las notificaciones.
|
'Revisa si la aplicación tiene permiso para acceder a las notificaciones.
|
||||||
Sub CheckNotificationAccess As Boolean
|
Sub CheckNotificationAccess As Boolean
|
||||||
Dim nstr, pstr As String
|
' Dim nstr, pstr As String
|
||||||
Dim r As Reflector
|
' Dim r As Reflector
|
||||||
pstr = r.GetStaticField("anywheresoftware.b4a.BA", "packageName")
|
' pstr = r.GetStaticField("anywheresoftware.b4a.BA", "packageName")
|
||||||
nstr = ph.GetSettings("enabled_notification_listeners")
|
' nstr = ph.GetSettings("enabled_notification_listeners")
|
||||||
Return nstr.Contains(pstr)
|
' Return nstr.Contains(pstr)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub tb_monitorActivo_CheckedChange(Checked As Boolean)
|
Private Sub tb_monitorActivo_CheckedChange(Checked As Boolean)
|
||||||
@@ -209,6 +261,15 @@ Private Sub i_engrane_Click
|
|||||||
et_timeout.Text = s.traeTimeoutDeBD
|
et_timeout.Text = s.traeTimeoutDeBD
|
||||||
p_engrane.Width = Root.Width
|
p_engrane.Width = Root.Width
|
||||||
p_engrane.Height = Root.Height
|
p_engrane.Height = Root.Height
|
||||||
|
Private sa As Cursor = Starter.skmt.ExecQuery("select * from cat_servidores")
|
||||||
|
If sa.RowCount > 0 Then
|
||||||
|
lv_servidoresActivos.Clear
|
||||||
|
For i = 0 To sa.RowCount - 1
|
||||||
|
sa.Position = i
|
||||||
|
lv_servidoresActivos.AddSingleLine(sa.GetString("url"))
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
|
||||||
s.panelVisible(p_engrane, 0, 0)
|
s.panelVisible(p_engrane, 0, 0)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -221,7 +282,7 @@ Private Sub b_ping_Click
|
|||||||
b_ping.Background = cd1
|
b_ping.Background = cd1
|
||||||
b_ping.Text = "Buscando ..."
|
b_ping.Text = "Buscando ..."
|
||||||
CallSubDelayed(Monitor, "Timer1_Tick")
|
CallSubDelayed(Monitor, "Timer1_Tick")
|
||||||
CallSubDelayed(Monitor, "probamosConexion")
|
' CallSubDelayed(Monitor, "probamosConexion")
|
||||||
' Wait For (ph.ShellAsync("ping", Array As String("-c 1","-W 2", "8.8.8.8"))) Complete (Success As Boolean, ExitValue As Int, StdOut As String, StdErr As String)
|
' Wait For (ph.ShellAsync("ping", Array As String("-c 1","-W 2", "8.8.8.8"))) Complete (Success As Boolean, ExitValue As Int, StdOut As String, StdErr As String)
|
||||||
' If Success Then
|
' If Success Then
|
||||||
' Log("ExitValue:" & ExitValue)
|
' Log("ExitValue:" & ExitValue)
|
||||||
@@ -243,9 +304,9 @@ End Sub
|
|||||||
|
|
||||||
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
|
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
|
||||||
Sub b_notifAccess_Click
|
Sub b_notifAccess_Click
|
||||||
Dim In As Intent
|
' Dim In As Intent
|
||||||
In.Initialize("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS", "")
|
' In.Initialize("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS", "")
|
||||||
StartActivity(In)
|
' StartActivity(In)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub CreateListItem(Text As String, Width As Int, Height As Int) As Panel 'ignore
|
Sub CreateListItem(Text As String, Width As Int, Height As Int) As Panel 'ignore
|
||||||
@@ -287,7 +348,9 @@ Private Sub b_guardaCambios_Click
|
|||||||
Monitor.Interval = et_intervalo.text
|
Monitor.Interval = et_intervalo.text
|
||||||
Starter.skmt.ExecNonQuery($"delete from cat_variables where nombre = 'intervalo'"$)
|
Starter.skmt.ExecNonQuery($"delete from cat_variables where nombre = 'intervalo'"$)
|
||||||
Starter.skmt.ExecNonQuery($"insert into cat_variables (nombre, valor) values ("intervalo", '${et_intervalo.text}')"$)
|
Starter.skmt.ExecNonQuery($"insert into cat_variables (nombre, valor) values ("intervalo", '${et_intervalo.text}')"$)
|
||||||
CallSubDelayed(Monitor, "Timer1_Tick")
|
Starter.skmt.ExecNonQuery($"delete from cat_servidores where url = '${et_server.text}'"$)
|
||||||
|
Starter.skmt.ExecNonQuery($"insert into cat_servidores (url, intervalo, timeout) values ('${et_server.text}', '${et_intervalo.text}', '${et_timeout.text}')"$)
|
||||||
|
' CallSubDelayed(Monitor, "Timer1_Tick")
|
||||||
p_engrane.Visible = False
|
p_engrane.Visible = False
|
||||||
'Guardamos DBReqServer
|
'Guardamos DBReqServer
|
||||||
Starter.DBReqServer = et_server.text
|
Starter.DBReqServer = et_server.text
|
||||||
@@ -295,7 +358,7 @@ Private Sub b_guardaCambios_Click
|
|||||||
Starter.skmt.ExecNonQuery($"insert into cat_variables (nombre, valor) values ("servidor", '${et_server.text}')"$)
|
Starter.skmt.ExecNonQuery($"insert into cat_variables (nombre, valor) values ("servidor", '${et_server.text}')"$)
|
||||||
CallSubDelayed(Monitor, "reinicializaReqManager")
|
CallSubDelayed(Monitor, "reinicializaReqManager")
|
||||||
p_engrane.Visible = False
|
p_engrane.Visible = False
|
||||||
CallSubDelayed(Monitor, "Timer1_Tick")
|
' CallSubDelayed(Monitor, "Timer1_Tick")
|
||||||
'Guardamos Timeout
|
'Guardamos Timeout
|
||||||
Monitor.timeout = et_timeout.text
|
Monitor.timeout = et_timeout.text
|
||||||
Starter.skmt.ExecNonQuery($"delete from cat_variables where nombre = 'timeout'"$)
|
Starter.skmt.ExecNonQuery($"delete from cat_variables where nombre = 'timeout'"$)
|
||||||
@@ -304,3 +367,23 @@ Private Sub b_guardaCambios_Click
|
|||||||
p_engrane.Visible = False
|
p_engrane.Visible = False
|
||||||
ToastMessageShow($"Cambios guardados"$, False)
|
ToastMessageShow($"Cambios guardados"$, False)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
Private Sub lv_servidoresActivos_ItemClick (Position As Int, Value As Object)
|
||||||
|
Private sa As Cursor = Starter.skmt.ExecQuery($"select * from cat_servidores where url = '${Value}'"$)
|
||||||
|
If sa.RowCount > 0 Then
|
||||||
|
sa.Position = 0
|
||||||
|
et_server.Text = sa.GetString("url")
|
||||||
|
et_intervalo.Text = sa.GetString("intervalo")
|
||||||
|
et_timeout.Text = sa.GetString("timeout")
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub lv_servidoresActivos_ItemLongClick (Position As Int, Value As Object)
|
||||||
|
Msgbox2Async($"Esta seguro que desea borrar el servidor ${Value}"$, "AVISO", "SI", "", "NO", Null, True)
|
||||||
|
Wait For Msgbox_Result (Result As Int)
|
||||||
|
If Result = DialogResponse.POSITIVE Then
|
||||||
|
Starter.skmt.ExecNonQuery($"delete from cat_servidores where url = '${Value}'"$)
|
||||||
|
i_engrane_Click
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
@@ -474,3 +474,24 @@ Sub ping
|
|||||||
Log("Error: " & LastException)
|
Log("Error: " & LastException)
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Sub traeServidorDesdeBD(id As Int) As Map
|
||||||
|
Private m As Map
|
||||||
|
m.Initialize
|
||||||
|
Private x As Cursor = Starter.skmt.ExecQuery($"select * from cat_servidores where id = ${id}"$)
|
||||||
|
If x.RowCount > 0 Then
|
||||||
|
For i = 0 To x.RowCount - 1
|
||||||
|
x.Position = i
|
||||||
|
m = CreateMap("nombre":x.GetString("nombre"), "url":x.GetString("url"), "intervalo":x.GetString("intervalo"), "timeout":x.GetString("timeout"))
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
Return m
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'Borramos renglones extra de la tabla de errores
|
||||||
|
Sub borraArribaDeXXXErrores(limite As Int) 'ignore
|
||||||
|
If Starter.logger Then LogColor($"Recortamos la tabla de error_log, limite de ${limite}"$, Colors.Magenta)
|
||||||
|
Starter.skmt.ExecNonQuery($"DELETE FROM error_log WHERE fecha NOT in (SELECT fecha FROM error_log ORDER BY fecha desc LIMIT ${limite})"$)
|
||||||
|
Starter.skmt.ExecNonQuery("vacuum;")
|
||||||
|
' if starter.logger then Log("Borramos mas de 100 de errorLog")
|
||||||
|
End Sub
|
||||||
Binary file not shown.
@@ -13,7 +13,7 @@ FileGroup5=Default Group
|
|||||||
FileGroup6=Default Group
|
FileGroup6=Default Group
|
||||||
Group=Default Group
|
Group=Default Group
|
||||||
Library1=b4xpages
|
Library1=b4xpages
|
||||||
Library10=replyauto
|
Library10=reflection
|
||||||
Library11=runtimepermissions
|
Library11=runtimepermissions
|
||||||
Library12=sql
|
Library12=sql
|
||||||
Library13=xcustomlistview
|
Library13=xcustomlistview
|
||||||
@@ -22,27 +22,27 @@ Library2=byteconverter
|
|||||||
Library3=core
|
Library3=core
|
||||||
Library4=fusedlocationprovider
|
Library4=fusedlocationprovider
|
||||||
Library5=gps
|
Library5=gps
|
||||||
Library6=okhttputils2
|
Library6=json
|
||||||
Library7=phone
|
Library7=okhttputils2
|
||||||
Library8=randomaccessfile
|
Library8=phone
|
||||||
Library9=reflection
|
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~<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="33"/>~\n~<supports-screens android:largeScreens="true" ~\n~ android:normalScreens="true"~\n~ android:smallScreens="true"~\n~ android:anyDensity="true"/>)~\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~<meta-data~\n~ android:name="com.google.android.geo.API_KEY"~\n~ android:value="AIzaSyBlBnx3O-DncOSv3oFIp-12wgujOYYcl-U"/>~\n~ <meta-data android:name="com.google.android.gms.version"~\n~ android:value="@integer/google_play_services_version" />~\n~)~\n~AddApplicationText(~\n~<uses-library~\n~ android:name="org.apache.http.legacy"~\n~ android:required="false" />~\n~)~\n~AddManifestText(~\n~<uses-permission~\n~ android:name="android.permission.WRITE_EXTERNAL_STORAGE"~\n~ android:maxSdkVersion="33" />~\n~)~\n~ 'End of default text.~\n~ ~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~AddManifestText(<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="33" />)~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~AddManifestText(<uses-permission android:name="android.permission.READ_PHONE_STATE" android:maxSdkVersion="33" />)~\n~AddManifestText(<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" android:maxSdkVersion="33" />) 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~AddManifestText(<uses-feature android:name="android.hardware.telephony" android:required="false" />)~\n~AddManifestText(<uses-feature android:name="android.hardware.camera" android:required="false" />)~\n~AddManifestText(<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />)~\n~AddManifestText(<uses-feature android:name="android.hardware.camera.flash" android:required="false" />)~\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.MANAGE_EXTERNAL_STORAGE")~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~~\n~AddManifestText(<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" android:maxSdkVersion="33" />)~\n~AddPermission(android.permission.INTERNET)~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~AddApplicationText(~\n~<service android:name="b4a.jsaplication.com.br.ReplyAuto"~\n~ android:label="MonitorKeymon"~\n~ android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"~\n~ android:exported="true">~\n~ <intent-filter>~\n~ <action android:name="android.service.notification.NotificationListenerService" />~\n~ </intent-filter>~\n~</service>)
|
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~<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="33"/>~\n~<supports-screens android:largeScreens="true" ~\n~ android:normalScreens="true"~\n~ android:smallScreens="true"~\n~ android:anyDensity="true"/>)~\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~<meta-data~\n~ android:name="com.google.android.geo.API_KEY"~\n~ android:value="AIzaSyBlBnx3O-DncOSv3oFIp-12wgujOYYcl-U"/>~\n~ <meta-data android:name="com.google.android.gms.version"~\n~ android:value="@integer/google_play_services_version" />~\n~)~\n~AddApplicationText(~\n~<uses-library~\n~ android:name="org.apache.http.legacy"~\n~ android:required="false" />~\n~)~\n~'AddManifestText(~\n~'<uses-permission~\n~' android:name="android.permission.WRITE_EXTERNAL_STORAGE"~\n~' android:maxSdkVersion="33" />~\n~')~\n~ 'End of default text.~\n~ ~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~'AddManifestText(<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="33" />)~\n~'AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~'AddManifestText(<uses-permission android:name="android.permission.READ_PHONE_STATE" android:maxSdkVersion="33" />)~\n~'AddManifestText(<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" android:maxSdkVersion="33" />) 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~AddManifestText(<uses-feature android:name="android.hardware.telephony" android:required="false" />)~\n~'AddManifestText(<uses-feature android:name="android.hardware.camera" android:required="false" />)~\n~'AddManifestText(<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />)~\n~'AddManifestText(<uses-feature android:name="android.hardware.camera.flash" android:required="false" />)~\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.MANAGE_EXTERNAL_STORAGE")~\n~'SetApplicationAttribute(android:largeHeap, "true")~\n~~\n~AddManifestText(<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" android:maxSdkVersion="33" />)~\n~AddPermission(android.permission.INTERNET)~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~'AddApplicationText(~\n~'<service android:name="b4a.jsaplication.com.br.ReplyAuto"~\n~' android:label="MonitorKeymon"~\n~' android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"~\n~' android:exported="true">~\n~' <intent-filter>~\n~' <action android:name="android.service.notification.NotificationListenerService" />~\n~' </intent-filter>~\n~'</service>)
|
||||||
Module1=B4XMainPage
|
Module1=B4XMainPage
|
||||||
Module2=BatteryUtilities
|
Module2=BatteryUtilities
|
||||||
Module3=C_Subs
|
Module3=C_Subs
|
||||||
Module4=DBRequestManager
|
Module4=DBRequestManager
|
||||||
Module5=Monitor
|
Module5=Monitor
|
||||||
Module6=NotificationService
|
Module6=NotificationServiceXXX
|
||||||
Module7=Starter
|
Module7=Starter
|
||||||
NumberOfFiles=6
|
NumberOfFiles=6
|
||||||
NumberOfLibraries=14
|
NumberOfLibraries=14
|
||||||
NumberOfModules=7
|
NumberOfModules=7
|
||||||
Version=12.5
|
Version=12.8
|
||||||
@EndOfDesignText@
|
@EndOfDesignText@
|
||||||
#Region Project Attributes
|
#Region Project Attributes
|
||||||
#ApplicationLabel: Monitor Keymon
|
#ApplicationLabel: Monitor Keymon
|
||||||
#VersionCode: 1
|
#VersionCode: 1
|
||||||
#VersionName: 3.11.21
|
#VersionName: 4.11.30
|
||||||
'SupportedOrientations possible values: unspecified, landscape or portrait.
|
'SupportedOrientations possible values: unspecified, landscape or portrait.
|
||||||
#SupportedOrientations: portrait
|
#SupportedOrientations: portrait
|
||||||
#CanInstallToExternalStorage: False
|
#CanInstallToExternalStorage: False
|
||||||
|
|||||||
@@ -15,13 +15,13 @@ ModuleBreakpoints5=
|
|||||||
ModuleBreakpoints6=
|
ModuleBreakpoints6=
|
||||||
ModuleBreakpoints7=
|
ModuleBreakpoints7=
|
||||||
ModuleClosedNodes0=
|
ModuleClosedNodes0=
|
||||||
ModuleClosedNodes1=7,8,9,10,11,14,15,18,19,21,22,24
|
ModuleClosedNodes1=8,11,19,21,22,24
|
||||||
ModuleClosedNodes2=
|
ModuleClosedNodes2=
|
||||||
ModuleClosedNodes3=
|
ModuleClosedNodes3=
|
||||||
ModuleClosedNodes4=
|
ModuleClosedNodes4=
|
||||||
ModuleClosedNodes5=5
|
ModuleClosedNodes5=5
|
||||||
ModuleClosedNodes6=
|
ModuleClosedNodes6=
|
||||||
ModuleClosedNodes7=
|
ModuleClosedNodes7=
|
||||||
NavigationStack=B4XMainPage,Class_Globals,39,0,B4XMainPage,B4XPage_Appear,95,0,B4XMainPage,B4XPage_Created,83,0,Main,Process_Globals,20,0,B4XMainPage,l_info_Click,254,0,B4XMainPage,l_internet_Click,266,0,Visual Designer,login.bal,-100,6,B4XMainPage,l_dbreqserver_Click,265,0,B4XMainPage,b_ping_Click,219,0,B4XMainPage,l_db_Click,260,0,B4XMainPage,b_guardaCambios_Click,283,2
|
NavigationStack=Monitor,Process_Globals,22,5,NotificationServiceXXX,Service_Start,28,0,NotificationServiceXXX,Process_Globals,12,0,NotificationServiceXXX,Service_Create,20,0,B4XMainPage,B4XPage_Appear,155,0,B4XMainPage,B4XPage_Created,133,5,Starter,Process_Globals,8,0,Starter,Service_Start,57,0,Monitor,JobDone,148,6,Monitor,Timer1_Tick,54,0,Monitor,Service_Start,38,0
|
||||||
SelectedBuild=0
|
SelectedBuild=0
|
||||||
VisibleModules=1,7,3,5,6,4
|
VisibleModules=1,7,3,5,4
|
||||||
|
|||||||
@@ -11,14 +11,14 @@ Version=11
|
|||||||
Sub Process_Globals
|
Sub Process_Globals
|
||||||
'These global variables will be declared once when the application starts.
|
'These global variables will be declared once when the application starts.
|
||||||
'These variables can be accessed from all modules.
|
'These variables can be accessed from all modules.
|
||||||
Dim rp As ReplyAuto
|
' Dim rp As ReplyAuto
|
||||||
' Dim activo As Boolean = True
|
' Dim activo As Boolean = True
|
||||||
Dim ultimaNoti As String
|
Dim ultimaNoti As String
|
||||||
Dim logger As Boolean = False
|
Dim logger As Boolean = False
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub Service_Create
|
Sub Service_Create
|
||||||
rp.Initialize("MonitorKeymon")
|
' rp.Initialize("MonitorKeymon")
|
||||||
#if not(DEBUG)
|
#if not(DEBUG)
|
||||||
logger = False
|
logger = False
|
||||||
#end if
|
#end if
|
||||||
@@ -27,7 +27,7 @@ End Sub
|
|||||||
|
|
||||||
Sub Service_Start (StartingIntent As Intent)
|
Sub Service_Start (StartingIntent As Intent)
|
||||||
' Log("NotificationService Start")
|
' Log("NotificationService Start")
|
||||||
If rp.HandleIntent(StartingIntent) Then Return
|
' If rp.HandleIntent(StartingIntent) Then Return
|
||||||
DateTime.DateFormat = "mm"
|
DateTime.DateFormat = "mm"
|
||||||
ultimaNoti = DateTime.Date(DateTime.now)
|
ultimaNoti = DateTime.Date(DateTime.now)
|
||||||
If logger Then LogColor($"Ultima notificación en el minuto ${ultimaNoti}"$, Colors.green)
|
If logger Then LogColor($"Ultima notificación en el minuto ${ultimaNoti}"$, Colors.green)
|
||||||
@@ -37,18 +37,18 @@ Sub Service_Destroy
|
|||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub MonitorKeymon_NotificationPosted (SBN As StatusBarNotification)
|
'Sub MonitorKeymon_NotificationPosted (SBN As StatusBarNotification)
|
||||||
If ultimaNoti = "" Then ultimaNoti = 0
|
' If ultimaNoti = "" Then ultimaNoti = 0
|
||||||
DateTime.DateFormat = "mm"
|
' DateTime.DateFormat = "mm"
|
||||||
Private estaNoti As String = DateTime.Date(DateTime.now)
|
' Private estaNoti As String = DateTime.Date(DateTime.now)
|
||||||
If estaNoti > 60 Then estaNoti = estaNoti - 60
|
' If estaNoti > 60 Then estaNoti = estaNoti - 60
|
||||||
If logger Then LogColor("Diferencia de tiempo entre notis = " & (estaNoti - ultimaNoti), Colors.blue)
|
' 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 LogColor($"Esta noti en el minuto ${DateTime.Date(DateTime.now)}, ultima noti = ${ultimaNoti}"$, Colors.green)
|
||||||
If logger Then Log(SBN.PackageName)
|
' If logger Then Log(SBN.PackageName)
|
||||||
If ultimaNoti < estaNoti Then
|
' If ultimaNoti < estaNoti Then
|
||||||
If logger Then LogColor($"******** TIEMPO *******"$, Colors.red)
|
' If logger Then LogColor($"******** TIEMPO *******"$, Colors.red)
|
||||||
ultimaNoti = estaNoti
|
' ultimaNoti = estaNoti
|
||||||
If IsPaused(Monitor) Then StartService(Monitor)
|
' If IsPaused(Monitor) Then StartService(Monitor)
|
||||||
End If
|
' End If
|
||||||
If logger Then LogColor("Monitor inicializado:" & Monitor.Timer1.IsInitialized, Colors.Magenta)
|
' If logger Then LogColor("Monitor inicializado:" & Monitor.Timer1.IsInitialized, Colors.Magenta)
|
||||||
End Sub
|
'End Sub
|
||||||
|
|||||||
@@ -43,9 +43,26 @@ Sub Service_Start (StartingIntent As Intent)
|
|||||||
s.Initialize
|
s.Initialize
|
||||||
skmt = s.inicializaBD(File.DirInternal, "kmt.db")
|
skmt = s.inicializaBD(File.DirInternal, "kmt.db")
|
||||||
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS cat_variables(nombre TEXT, valor text)")
|
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS cat_variables(nombre TEXT, valor text)")
|
||||||
|
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS cat_servidores(id INTEGER PRIMARY KEY, nombre TEXT, url text, intervalo TEXT, timeout TEXT)")
|
||||||
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS error_log(error TEXT, fecha text)")
|
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS error_log(error TEXT, fecha text)")
|
||||||
If s.traeDBReqServerDeBD <> "N/A" Then DBReqServer = s.traeDBReqServerDeBD
|
If s.traeDBReqServerDeBD <> "N/A" Then DBReqServer = s.traeDBReqServerDeBD
|
||||||
' reqManager.Initialize(Me, DBReqServer)
|
' reqManager.Initialize(Me, DBReqServer)
|
||||||
|
|
||||||
|
Private sa As Cursor = skmt.ExecQuery("select count(*) as cuantos from cat_servidores")
|
||||||
|
sa.Position = 0
|
||||||
|
If sa.GetString("cuantos") = 0 Then
|
||||||
|
Private sa2 As Cursor = skmt.ExecQuery("select * from cat_variables where nombre = 'servidor'")
|
||||||
|
If sa2.RowCount > 0 Then
|
||||||
|
sa2.Position = 0
|
||||||
|
skmt.ExecNonQuery($"insert into cat_servidores (url, intervalo, timeout) values ('${sa2.GetString("valor")}', '30', '11000')"$)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Private sa As Cursor = skmt.ExecQuery("select count(*) as cuantos from cat_servidores")
|
||||||
|
sa.Position = 0
|
||||||
|
If sa.GetString("cuantos") = 0 Then
|
||||||
|
skmt.ExecNonQuery($"insert into cat_servidores (url, intervalo, timeout) values ('http://keymon.lat:1781', '30', '11000')"$)
|
||||||
|
End If
|
||||||
|
|
||||||
StartService(Monitor)
|
StartService(Monitor)
|
||||||
End Sub
|
End Sub
|
||||||
'
|
'
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ Sub Process_Globals
|
|||||||
Dim DBOk As Boolean = True
|
Dim DBOk As Boolean = True
|
||||||
Dim logger As Boolean = True
|
Dim logger As Boolean = True
|
||||||
Dim timeout As Int
|
Dim timeout As Int
|
||||||
|
Dim cs As CSBuilder
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub Service_Create
|
Sub Service_Create
|
||||||
@@ -46,7 +47,6 @@ Sub Service_Start (StartingIntent As Intent)
|
|||||||
Service.StopAutomaticForeground 'Call this when the background task completes (if there is one)
|
Service.StopAutomaticForeground 'Call this when the background task completes (if there is one)
|
||||||
Service.StartForeground(nid, s.CreateNotification("..."))
|
Service.StartForeground(nid, s.CreateNotification("..."))
|
||||||
StartServiceAt(Me, DateTime.Now + 10 * DateTime.TicksPerMinute, True)
|
StartServiceAt(Me, DateTime.Now + 10 * DateTime.TicksPerMinute, True)
|
||||||
reqManager.Initialize(Me, Starter.DBReqServer)
|
|
||||||
Timer1_Tick
|
Timer1_Tick
|
||||||
If logger Then LogColor("*************** Monitor Iniciado 👍🏽 **********", Colors.red)
|
If logger Then LogColor("*************** Monitor Iniciado 👍🏽 **********", Colors.red)
|
||||||
End Sub
|
End Sub
|
||||||
@@ -66,12 +66,14 @@ Sub Timer1_Tick
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub probamosConexion
|
Sub probamosConexion
|
||||||
If logger Then Log("probamos probamosConexion")
|
If logger Then Log("###################### "& CRLF& " probamos probamosConexion"& CRLF& " ############")
|
||||||
|
B4XPages.MainPage.lv_servidores.Clear
|
||||||
|
B4XPages.MainPage.lv_dbs.Clear
|
||||||
If B4XPages.IsInitialized Then
|
If B4XPages.IsInitialized Then
|
||||||
B4XPages.MainPage.cb_conexion.Checked = False
|
B4XPages.MainPage.cb_conexion.Checked = False
|
||||||
B4XPages.MainPage.cb_internet.Checked = False
|
B4XPages.MainPage.cb_internet.Checked = False
|
||||||
B4XPages.MainPage.cb_dbreqserver.Checked = False
|
' B4XPages.MainPage.cb_dbreqserver.Checked = False
|
||||||
B4XPages.MainPage.cb_db.Checked = False
|
' B4XPages.MainPage.cb_db.Checked = False
|
||||||
End If
|
End If
|
||||||
If IsConnectedToInternet Then
|
If IsConnectedToInternet Then
|
||||||
s.ping
|
s.ping
|
||||||
@@ -88,9 +90,28 @@ Sub probamosConexion
|
|||||||
s.notiLowReturn("Hay conexion a internet ✅️", "Revisando servidor ...", nid)
|
s.notiLowReturn("Hay conexion a internet ✅️", "Revisando servidor ...", nid)
|
||||||
If B4XPages.IsInitialized Then B4XPages.MainPage.l_status.Text = "Hay conexion a internet!!"
|
If B4XPages.IsInitialized Then B4XPages.MainPage.l_status.Text = "Hay conexion a internet!!"
|
||||||
Dim cmd As DBCommand
|
Dim cmd As DBCommand
|
||||||
cmd.Initialize
|
|
||||||
cmd.Name = "select_conexion"
|
For i = 0 To B4XPages.MainPage.servidores.Size - 1
|
||||||
reqManager.ExecuteQuery(cmd, 0, "select_conexion", timeout)
|
Private esteServidor As Map = B4XPages.MainPage.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"))
|
||||||
|
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"
|
'Reiniciamos el timer para cuando llamamos el Sub desde "seleccion"
|
||||||
Timer1.Enabled = False
|
Timer1.Enabled = False
|
||||||
Timer1.Interval = Interval * 1000
|
Timer1.Interval = Interval * 1000
|
||||||
@@ -117,8 +138,18 @@ Sub JobDone(Job As HttpJob)
|
|||||||
cd1.Initialize(Colors.Red, 10dip)
|
cd1.Initialize(Colors.Red, 10dip)
|
||||||
If B4XPages.IsInitialized Then B4XPages.MainPage.b_ping.Background = cd1
|
If B4XPages.IsInitialized Then B4XPages.MainPage.b_ping.Background = cd1
|
||||||
If B4XPages.IsInitialized Then B4XPages.MainPage.b_ping.Text = "DBReqServer KO"
|
If B4XPages.IsInitialized Then B4XPages.MainPage.b_ping.Text = "DBReqServer KO"
|
||||||
s.notiHigh("ERROR ❌", $"El servidor ${Starter.DBReqServer} NO responde!!"$, nid, Main)
|
|
||||||
Log("Guardamos error en BD")
|
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.AddSingleLine($"${m.Get("url").As(String).Replace("http://", "")} - ERROR"$)
|
||||||
|
End If
|
||||||
|
|
||||||
Starter.skmt.ExecNonQuery($"insert into error_log(error, fecha) values ('El servidor ${Starter.DBReqServer} NO responde!!', '${s.fechaKMT(DateTime.Now)}')"$)
|
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
|
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)
|
' ToastMessageShow("¡Hubo un error contactando al servidor, por favor revise su conexión!", True)
|
||||||
@@ -128,8 +159,13 @@ Sub JobDone(Job As HttpJob)
|
|||||||
If logger Then LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211027
|
If logger Then LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211027
|
||||||
If Job.JobName = "DBRequest" Then
|
If Job.JobName = "DBRequest" Then
|
||||||
Dim resultado As DBResult = reqManager.HandleJob(Job)
|
Dim resultado As DBResult = reqManager.HandleJob(Job)
|
||||||
If resultado.Tag = "select_conexion" Then
|
If resultado.Tag.As(String).StartsWith("select_conexion_") Then
|
||||||
Log("select_conexion")
|
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
|
For Each records() As Object In resultado.Rows
|
||||||
Private valor As String = records(resultado.Columns.Get("VALOR"))
|
Private valor As String = records(resultado.Columns.Get("VALOR"))
|
||||||
If valor = "OK" Then
|
If valor = "OK" Then
|
||||||
@@ -137,16 +173,22 @@ Sub JobDone(Job As HttpJob)
|
|||||||
s.notiLowReturn($"El servidor esta respondiendo ✅"$, "Servidor OK ✅", nid)
|
s.notiLowReturn($"El servidor esta respondiendo ✅"$, "Servidor OK ✅", nid)
|
||||||
If B4XPages.IsInitialized Then
|
If B4XPages.IsInitialized Then
|
||||||
B4XPages.MainPage.l_status.Text = "El servidor esta respondiendo!!"
|
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
|
Dim cd1 As ColorDrawable
|
||||||
cd1.Initialize(Colors.RGB(16, 141, 0), 10dip)
|
cd1.Initialize(Colors.RGB(16, 141, 0), 10dip)
|
||||||
B4XPages.MainPage.b_ping.Background = cd1
|
B4XPages.MainPage.b_ping.Background = cd1
|
||||||
B4XPages.MainPage.b_ping.Text = "Servidor Ok"
|
B4XPages.MainPage.b_ping.Text = "Servidor Ok"
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
s.notiHigh("ERROR ❌", $"El servidor NO esta respondiendo!!"$, nid, Main)
|
s.notiHigh("ERROR ❌", $"La base de datos ${m.Get("url").As(String).Replace("http://", "")} NO responde!!"$, nid, Main)
|
||||||
If B4XPages.IsInitialized Then
|
If B4XPages.IsInitialized Then
|
||||||
B4XPages.MainPage.l_status.Text = "El servidor NO esta respondiendo!!"
|
B4XPages.MainPage.l_status.Text = "La base de datos NO esta respondiendo!!"
|
||||||
Log("Guardamos error en BD")
|
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_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)}')"$)
|
Starter.skmt.ExecNonQuery($"insert into error_log(error, fecha) values ('La BD NO esta respondiendo!!', '${s.fechaKMT(DateTime.Now)}')"$)
|
||||||
Dim cd1 As ColorDrawable
|
Dim cd1 As ColorDrawable
|
||||||
cd1.Initialize(Colors.Red, 10dip)
|
cd1.Initialize(Colors.Red, 10dip)
|
||||||
@@ -164,8 +206,8 @@ Sub JobDone(Job As HttpJob)
|
|||||||
B4XPages.MainPage.cb_conexion.Checked = InternetOk
|
B4XPages.MainPage.cb_conexion.Checked = InternetOk
|
||||||
B4XPages.MainPage.cb_internet.Checked = Starter.ping
|
B4XPages.MainPage.cb_internet.Checked = Starter.ping
|
||||||
If DBReqServerOk Then B4XPages.MainPage.cb_internet.Checked = True
|
If DBReqServerOk Then B4XPages.MainPage.cb_internet.Checked = True
|
||||||
B4XPages.MainPage.cb_dbreqserver.Checked = DBReqServerOk
|
' B4XPages.MainPage.cb_dbreqserver.Checked = DBReqServerOk
|
||||||
B4XPages.MainPage.cb_db.Checked = DBOk
|
' B4XPages.MainPage.cb_db.Checked = DBOk
|
||||||
End If
|
End If
|
||||||
Job.Release
|
Job.Release
|
||||||
End If
|
End If
|
||||||
|
|||||||
Reference in New Issue
Block a user