- VERSION 4.12.04

- Se movio la variable "servidores" de Mainpage a Starter.
This commit is contained in:
Jose Alberto Guerra Ugalde
2024-12-04 09:53:10 -06:00
parent 80d6ded85e
commit 2a8bfcc967
9 changed files with 82 additions and 14 deletions

View File

@@ -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

View File

@@ -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)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -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~<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.ACCESS_NETWORK_STATE)~\n~~\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
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

View File

@@ -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

View File

@@ -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

View File

@@ -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
'

View File

@@ -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