- VERSION 4.12.11

- Se volvio a incluir la libreria de intercepcion de notificaciones (ReplyAuto) para ayudar a mantener activa la aplicacion.
- Su gregaron bloques de try/catch para evitar que se generen errores cuando los servicios modifican la pantalla principal (mainpage) y la aplicacion esta en segundo plano.
This commit is contained in:
Jose Alberto Guerra Ugalde
2024-12-11 06:16:22 -06:00
parent 2a8bfcc967
commit baa8f9bbd8
7 changed files with 196 additions and 180 deletions

View File

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