diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas
index 4c8fdfb..5b79d23 100644
--- a/B4A/B4XMainPage.bas
+++ b/B4A/B4XMainPage.bas
@@ -72,7 +72,7 @@ Sub Class_Globals
Private lv_servidoresActivos As ListView
Dim jsn As JSONParser
Dim jsnGnr As JSONGenerator
- DIM rp AS RuntimePermissions
+ Dim rp As RuntimePermissions
End Sub
Public Sub Initialize
@@ -140,6 +140,12 @@ Private Sub B4XPage_Created (Root1 As B4XView)
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.
+
+' Log(999)
+' rp.CheckAndRequest(rp.PERMISSION_READ_PHONE_STATE)
+' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) 'change to Activity_PermissionResult if non-B4XPages.
+' Log(888)
+
End Sub
Sub B4XPage_Appear
diff --git a/B4A/C_Subs.bas b/B4A/C_Subs.bas
index 5483a2f..cd763d3 100644
--- a/B4A/C_Subs.bas
+++ b/B4A/C_Subs.bas
@@ -468,7 +468,9 @@ Sub 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)
- If B4XPages.IsInitialized Then B4XPages.MainPage.l_status.Text = "NO hay conexión a Google!!"
+ 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)
diff --git a/B4A/Files/logo_keymon.png b/B4A/Files/logo_keymon.png
index e798416..ee4f419 100644
Binary files a/B4A/Files/logo_keymon.png and b/B4A/Files/logo_keymon.png differ
diff --git a/B4A/Files/logo_keymon_notransparencia.png b/B4A/Files/logo_keymon_notransparencia.png
new file mode 100644
index 0000000..e798416
Binary files /dev/null and b/B4A/Files/logo_keymon_notransparencia.png differ
diff --git a/B4A/Monitor-Keymon.b4a b/B4A/Monitor-Keymon.b4a
index 0e42a68..647e360 100644
--- a/B4A/Monitor-Keymon.b4a
+++ b/B4A/Monitor-Keymon.b4a
@@ -4,13 +4,15 @@ File2=kmt.db
File3=listItem.bal
File4=login.bal
File5=logo_keymon.png
-File6=MainPage.bal
+File6=logo_keymon_noTransparencia.png
+File7=MainPage.bal
FileGroup1=Default Group
FileGroup2=Default Group
FileGroup3=Default Group
FileGroup4=Default Group
FileGroup5=Default Group
FileGroup6=Default Group
+FileGroup7=Default Group
Group=Default Group
Library1=b4xpages
Library10=reflection
@@ -26,7 +28,7 @@ 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.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
@@ -34,7 +36,7 @@ Module4=DBRequestManager
Module5=Monitor
Module6=NotificationServiceXXX
Module7=Starter
-NumberOfFiles=6
+NumberOfFiles=7
NumberOfLibraries=14
NumberOfModules=7
Version=12.8
@@ -42,7 +44,7 @@ Version=12.8
#Region Project Attributes
#ApplicationLabel: Monitor Keymon
#VersionCode: 1
- #VersionName: 4.11.30
+ #VersionName: 4.12.04
'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 8ad51f2..a7486b8 100644
--- a/B4A/Monitor-Keymon.b4a.meta
+++ b/B4A/Monitor-Keymon.b4a.meta
@@ -22,6 +22,6 @@ ModuleClosedNodes4=
ModuleClosedNodes5=5
ModuleClosedNodes6=
ModuleClosedNodes7=
-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
+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
SelectedBuild=0
VisibleModules=1,7,3,5,4
diff --git a/B4A/NotificationServiceXXX.bas b/B4A/NotificationServiceXXX.bas
new file mode 100644
index 0000000..e70e840
--- /dev/null
+++ b/B4A/NotificationServiceXXX.bas
@@ -0,0 +1,54 @@
+B4A=true
+Group=Default Group
+ModulesStructureVersion=1
+Type=Service
+Version=11
+@EndOfDesignText@
+#Region Service Attributes
+ #StartAtBoot: False
+#End Region
+
+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 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 ***********************")
+End Sub
+
+Sub Service_Start (StartingIntent As Intent)
+' Log("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)
+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
diff --git a/B4A/Starter.bas b/B4A/Starter.bas
index 03ec2c6..bb3ada7 100644
--- a/B4A/Starter.bas
+++ b/B4A/Starter.bas
@@ -26,6 +26,7 @@ Sub Process_Globals
' Dim DBOk As Boolean = True
Dim logger As Boolean = False
Dim ping As Boolean = False
+ Dim servidores As List
End Sub
Sub Service_Create
@@ -36,6 +37,7 @@ Sub Service_Create
#if not(DEBUG)
logger = False
#end if
+ servidores.Initialize
End Sub
Sub Service_Start (StartingIntent As Intent)
@@ -62,7 +64,6 @@ Sub Service_Start (StartingIntent As Intent)
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)
End Sub
'
diff --git a/B4A/monitor.bas b/B4A/monitor.bas
index ed72b56..5f4a5dc 100644
--- a/B4A/monitor.bas
+++ b/B4A/monitor.bas
@@ -27,6 +27,7 @@ Sub Process_Globals
Dim logger As Boolean = True
Dim timeout As Int
Dim cs As CSBuilder
+ Dim rp As RuntimePermissions
End Sub
Sub Service_Create
@@ -67,9 +68,9 @@ End Sub
Sub probamosConexion
If logger Then Log("###################### "& CRLF& " probamos probamosConexion"& CRLF& " ############")
- B4XPages.MainPage.lv_servidores.Clear
- B4XPages.MainPage.lv_dbs.Clear
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
@@ -90,9 +91,8 @@ Sub probamosConexion
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 B4XPages.MainPage.servidores.Size - 1
- Private esteServidor As Map = B4XPages.MainPage.servidores.Get(i).As(Map)
+ 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
@@ -119,7 +119,8 @@ Sub probamosConexion
Else
If logger Then Log("Sin conexión a internet!!!")
s.notiLowReturn("SIN INTERNET ❌", "NO hay conexion a internet.", nid)
- If B4XPages.IsInitialized Then B4XPages.MainPage.l_status.Text = "NO hay conexión a internet!!"
+ 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
End Sub
@@ -147,6 +148,7 @@ Sub JobDone(Job As HttpJob)
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)
' B4XPages.MainPage.lv_servidores.AddSingleLine($"${m.Get("url").As(String).Replace("http://", "")} - ERROR"$)
End If
@@ -188,6 +190,7 @@ Sub JobDone(Job As HttpJob)
' 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)
' 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