3/10/23 - Se agregó el respaldo diario y intercepción de notificaciones.

- Se agregó el código para el respaldo diario de 4 tablas.
- Se agregóel codigo para interceptar notificacines y cambiar el servidor de DBRequest.
This commit is contained in:
2023-10-03 16:01:28 -06:00
parent cb5e599542
commit 52bb35dbdc
10 changed files with 984 additions and 59 deletions

View File

@@ -9,6 +9,8 @@ Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
Dim reqManager As DBRequestManager
Dim device As Phone
Dim kh As kms_helperSubs
Dim rp As RuntimePermissions
Dim t1 As Timer
Dim t2 As Timer
@@ -58,7 +60,7 @@ Sub Class_Globals
Dim Listo4 As String
Dim Listo5 As String
Dim EJECUTANDO As String
Dim res As String
' Dim res As String
Dim inve As String
Dim cuantos_pedidosc As String
Dim cuantos_pedido As String
@@ -182,10 +184,14 @@ Sub Class_Globals
Private l_porcentaje As Label
Private detenerLoop As Boolean = False
Dim logger As Boolean = True
Private admin As BluetoothAdmin
Public BluetoothState, ConnectionState As Boolean
Private ion As Object
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
admin.Initialize("admin")
Return Me
End Sub
@@ -203,7 +209,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
fecha=DateTime.Date(DateTime.Now)
c=Starter.db.ExecQuery2("select CAT_CO_CONFIGURACION from CAT_CODIGOS where CAT_CO_PONDERACION =1 AND CAT_CO_ACCION = ?", Array As String("SERVER"))
c.Position =0
Starter.server = c.GetString("CAT_CO_CONFIGURACION")
Starter.DBReqServer = c.GetString("CAT_CO_CONFIGURACION")
c.Close
b=Starter.db.ExecQuery("Select count(*) as CUANTOS from pedido_cliente")
b.Position=0
@@ -252,33 +258,97 @@ Private Sub B4XPage_Created (Root1 As B4XView)
l_ctast.Text = d.GetString("TOTAL_VISITAR")
'l_porvisitar.Text = e.GetString("POR_VISITAR")
End If
' Log("Permisos BT: " & rp.Check("android.permission.BLUETOOTH_CONNECT"))
Log("XXXXXXXXXXXXXXXXXXXXXXXXX REVISAMOS PERMISOS DE BT")
rp.CheckAndRequest("android.permission.BLUETOOTH_CONNECT")
Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
If Result Then Log("Tenemos permisos de bluetooth.")
kh.Initialize(Me, "kh")
kh.RD_Init
Log("XXXXXXXXXXXXXXXXXXXXXXXXX REVISAMOS PERMISOS DE BT - APPEAR -")
StartBluetooth
Log("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
' Log("Check phone state: " & rp.Check(rp.PERMISSION_READ_PHONE_STATE))
End Sub
Private Sub StartBluetooth
If admin.IsEnabled = False Then
Wait For (EnableBluetooth) Complete (Success As Boolean)
If Success = False Then
ToastMessageShow("Failed to enable bluetooth", True)
End If
End If
BluetoothState = admin.IsEnabled
StateChanged
End Sub
Private Sub StateChanged
' btnSearchForDevices.Enabled = BluetoothState
' btnAllowConnection.Enabled = BluetoothState
' ChatPage1.btnSend.Enabled = ConnectionState
End Sub
Private Sub EnableBluetooth As ResumableSub
ToastMessageShow("Enabling Bluetooth adapter...", False)
Dim ph As Phone
If ph.SdkVersion >= 31 Then
Log(31)
rp.CheckAndRequest("android.permission.BLUETOOTH_CONNECT")
Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
Log(Result)
If Result = False Then Return False
If ph.SdkVersion >= 33 Then
Log(33)
Dim in As Intent
in.Initialize("android.bluetooth.adapter.action.REQUEST_ENABLE", "")
StartActivityForResult(in)
Wait For ion_Event (MethodName As String, Args() As Object)
Return admin.IsEnabled
End If
End If
Return admin.Enable
End Sub
Private Sub StartActivityForResult(i As Intent)
Dim jo As JavaObject = GetBA
ion = jo.CreateEvent("anywheresoftware.b4a.IOnActivityResult", "ion", Null)
jo.RunMethod("startActivityForResult", Array As Object(ion, i))
End Sub
Sub GetBA As Object
Dim jo As JavaObject = Me
Return jo.RunMethod("getBA", Null)
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
If Not(kh.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
Dim In As Intent
In.Initialize("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS", "")
StartActivity(In)
End If
End If
If Subs.traeUltimaActividadBD <> "principal" Then Subs.iniciaActividad(Subs.traeUltimaActividadBD)
reqManager.Initialize(Me, Starter.server)
Starter.btAdmin.Initialize("btAdmin")
Log("BTADMIN INICIALIZADO: "&Starter.btAdmin.IsEnabled)
If Not(Starter.btAdmin.IsEnabled) Then Starter.btAdmin.Enable 'Si no esta prendido el BT, lo prendemos.
reqManager.Initialize(Me, Starter.DBReqServer)
' If Not(btAdmin.IsEnabled) Then btAdmin.Enable 'Si no esta prendido el BT, lo prendemos.
If kh.RD_Init_IsInitialized Then
kh.RD_respalda_cat_detalle_paq
kh.RD_respalda_cat_gunaprod
kh.RD_respalda_cat_gunaprod2
kh.RD_respalda_kmt_info
kh.RD_respalda_pedido
Else
Log("****** RD NO INICIALIZADO ********")
End If
e_ruta.Enabled = True
Starter.rutaV = l_ruta.Text
c=Starter.db.ExecQuery2("select count(*) as CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SERVER"))
c.Position =0
If c.GetString("CUANTOS") = 0 Then
Starter.db.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SERVER", Starter.server))
Starter.db.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SERVER", Starter.DBReqServer))
Else
c=Starter.db.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SERVER"))
c.Position =0
Starter.server = c.GetString("CAT_VA_VALOR")
Starter.DBReqServer = c.GetString("CAT_VA_VALOR")
End If
c=Starter.db.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("FECHA"))
If c.RowCount > 0 Then
@@ -350,10 +420,10 @@ Sub B4XPage_Appear
Not(File.Exists(File.DirInternal,"FOTO2.jpg")) Or _
Not(File.Exists(File.DirInternal,"FOTO3.jpg")) Or _
Not(File.Exists(File.DirInternal,"FOTO4.jpg")) Then
If Not(File.Exists(File.DirInternal,"FOTO1.jpg")) Then Log("Falta foto1")
If Not(File.Exists(File.DirInternal,"FOTO2.jpg")) Then Log("Falta foto2")
If Not(File.Exists(File.DirInternal,"FOTO3.jpg")) Then Log("Falta foto3")
If Not(File.Exists(File.DirInternal,"FOTO4.jpg")) Then Log("Falta foto4")
' If Not(File.Exists(File.DirInternal,"FOTO1.jpg")) Then Log("Falta foto1")
' If Not(File.Exists(File.DirInternal,"FOTO2.jpg")) Then Log("Falta foto2")
' If Not(File.Exists(File.DirInternal,"FOTO3.jpg")) Then Log("Falta foto3")
' If Not(File.Exists(File.DirInternal,"FOTO4.jpg")) Then Log("Falta foto4")
Cedis_Check = 0
End If
If Cedis_Check = 0 And l_ruta.Text <> 0 Then
@@ -380,17 +450,17 @@ Sub B4XPage_Appear
' Subs.guardaUltimaActividadBD("principal")
Log("Check phone state: " & rp.Check(rp.PERMISSION_READ_PHONE_STATE))
Log("Pedimos permisos de estado del cel")
' Log("Check phone state: " & rp.Check(rp.PERMISSION_READ_PHONE_STATE))
' Log("Pedimos permisos de estado del cel")
rp.CheckAndRequest(rp.PERMISSION_READ_PHONE_STATE)
Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
If Result Then
Dim Phn As PhoneId
' IMEN.Text = "" 'Phn.GetDeviceId
imei ="" ' Phn.GetDeviceId
If logger Then LogColor($"////////////////// IMEI: ${imei} ////////////////// "$, Colors.Blue)
' If logger Then LogColor($"////////////////// IMEI: ${imei} ////////////////// "$, Colors.Blue)
End If
Log("Permisos cel terminados")
' Log("Permisos cel terminados")
' Log("Permisos BT: " & rp.Check("android.permission.BLUETOOTH_CONNECT"))
' Log("REVISAMOS PERMISOS DE BT")
@@ -2881,7 +2951,7 @@ Sub descargaCartaPorte
' Log(cartaPortePDF)
'Para el servidor
Private pdfServer As String = "keymon.lat"
If Starter.server.IndexOf("10.0.0.205") > -1 Then pdfServer = "10.0.0.205"
If Starter.DBReqServer.IndexOf("10.0.0.205") > -1 Then pdfServer = "10.0.0.205"
' Log(pdfServer)
pdfURL = $"https://${pdfServer}/CartaPorteKelloggs/CartaPorteMovil${DateTime.Date(DateTime.now)}/${cartaPortePDF}"$
LogColor(pdfURL,Colors.Red)