diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas
index 44c0743..1c2c6ae 100644
--- a/B4A/B4XMainPage.bas
+++ b/B4A/B4XMainPage.bas
@@ -95,6 +95,8 @@ Sub Class_Globals
Private p_login As Panel
Private l_version As Label
+ Private cb_importarBDWA As CheckBox
+ Private p_importarBDWA As Panel
End Sub
Public Sub Initialize
@@ -172,6 +174,10 @@ Private Sub B4XPage_Created (Root1 As B4XView)
c.Position =0
Starter.DBReqServer = c.GetString("CAT_VA_VALOR")
End If
+
+ 'Revisamos si se disparo el intent de cargar la base de datos desde WhatApp.
+ If kh.traeUsarIntentBDWA Then kh.importaBDDesdeWhatsApp
+
Dim P As PhoneId
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_PHONE_STATE)
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
@@ -206,6 +212,7 @@ Sub B4XPage_Appear
reqManager.Initialize(Me, Starter.DBReqServer)
Log(Starter.DBReqServer)
+ cb_importarBDWA.Checked = kh.traeUsarIntentBDWA
c = Starter.skmt.ExecQuery2("select count(*) as CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("FECHA"))
c.Position =0
If c.GetString("CUANTOS") = 0 Then
@@ -426,6 +433,11 @@ Sub ImageView4_Click
c.Position =0
E_SERVER.text = c.GetString("CAT_VA_VALOR")
kh.panelVisible(Panel1, 0, 0)
+ If user.Text.Trim = "KMTS1" Then
+ p_importarBDWA.Visible = True
+ Else
+ p_importarBDWA.Visible = False
+ End If
End Sub
Sub B_SERVER_Click
@@ -524,4 +536,10 @@ End Sub
'appUpdater - Ocultamos el anuncio de que se esta descargando el nuevo apk
Sub ocultaProgreso
ProgressDialogHide
+End Sub
+
+Private Sub cb_importarBDWA_CheckedChange(Checked As Boolean)
+' LogColor($"cb_importarBDWA_CheckedChange = ${Checked}"$, Colors.Red)
+ Starter.skmt.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'IMPORTAR_BD_WA'")
+ Starter.skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('IMPORTAR_BD_WA', '${Checked}')"$)
End Sub
\ No newline at end of file
diff --git a/B4A/Durakelo.b4a b/B4A/Durakelo.b4a
index 379c19b..755e044 100644
--- a/B4A/Durakelo.b4a
+++ b/B4A/Durakelo.b4a
@@ -1365,7 +1365,7 @@ Library6=camera
Library7=compressstrings
Library8=contentresolver
Library9=core
-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~'End of default text.~\n~~\n~AddApplicationText(~\n~~\n~~\n~)~\n~AddManifestText()~\n~AddManifestText()~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~~\n~AddPermission(android.permission.ACCESS_FINE_LOCATION)~\n~AddPermission(android.permission.BLUETOOTH_ADVERTISE)~\n~AddPermission(android.permission.BLUETOOTH_CONNECT)~\n~AddPermission(android.permission.BLUETOOTH_SCAN)~\n~~\n~'/////////////// FLP y FBMessageing MOD Inicia /////////////////////~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~'CreateResourceFromFile(Macro, FirebaseAnalytics.Crashlytics)~\n~SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'/////////////// FLP y FBMessageing MOD Termina /////////////////////~\n~~\n~'Si al cargar un mapa de google manda este error "java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion". agregar la siguiente linea:~\n~AddApplicationText()~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~SetApplicationAttribute(android:exported, "true")~\n~AddManifestText()~\n~~\n~'Para provider (Envio de base de datos por whatsapp)~\n~AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~ )~\n~CreateResource(xml, provider_paths,~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~ )~\n~ ~\n~ AddManifestText(~\n~ )~\n~ AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~ )~\n~ CreateResource(xml, provider_paths,~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~ )~\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~ ~\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~'End of default text.~\n~~\n~AddApplicationText(~\n~~\n~~\n~)~\n~AddManifestText()~\n~AddManifestText()~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~~\n~AddPermission(android.permission.ACCESS_FINE_LOCATION)~\n~AddPermission(android.permission.BLUETOOTH_ADVERTISE)~\n~AddPermission(android.permission.BLUETOOTH_CONNECT)~\n~AddPermission(android.permission.BLUETOOTH_SCAN)~\n~~\n~'/////////////// FLP y FBMessageing MOD Inicia /////////////////////~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~'CreateResourceFromFile(Macro, FirebaseAnalytics.Crashlytics)~\n~SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'/////////////// FLP y FBMessageing MOD Termina /////////////////////~\n~~\n~'Si al cargar un mapa de google manda este error "java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion". agregar la siguiente linea:~\n~AddApplicationText()~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~SetApplicationAttribute(android:exported, "true")~\n~AddManifestText()~\n~~\n~'Para provider (Envio de base de datos por whatsapp)~\n~AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~ )~\n~CreateResource(xml, provider_paths,~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~ )~\n~ ~\n~ AddManifestText(~\n~ )~\n~ AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~ )~\n~ CreateResource(xml, provider_paths,~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~ )~\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~~\n~ 'Para que se registre para abrir bases de datos~\n~ AddActivityText(main,~\n~~\n~~\n~~\n~~\n~)
Module1=appUpdater
Module10=C_Principal
Module11=C_Productos
diff --git a/B4A/Durakelo.b4a.meta b/B4A/Durakelo.b4a.meta
index d211c7a..b7a2d17 100644
--- a/B4A/Durakelo.b4a.meta
+++ b/B4A/Durakelo.b4a.meta
@@ -60,7 +60,7 @@ ModuleClosedNodes16=
ModuleClosedNodes17=
ModuleClosedNodes18=
ModuleClosedNodes19=
-ModuleClosedNodes2=
+ModuleClosedNodes2=4
ModuleClosedNodes20=
ModuleClosedNodes21=
ModuleClosedNodes22=1
@@ -73,6 +73,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
-NavigationStack=C_Cliente,Class_Globals,1,0,C_Cliente,cuestionario2,1484,0,C_Cliente,cuest_preguntaContestada,1827,0,C_Cliente,Cuestionario,1827,6,C_Cliente,b_guadaenc_Click,1631,0,C_Principal,JobDone,1219,0,B4XMainPage,B4XPage_Created,145,0,C_Historico,initialize,31,0,C_Historico,B4XPage_Appear,43,0,C_Historico,B4XPage_Created,36,0
+NavigationStack=kms_helperSubs,CheckNotificationAccess,446,0,kms_helperSubs,traeUsarIntentBDWA,457,0,kms_helperSubs,Class_Globals,18,0,B4XMainPage,ocultaProgreso,526,0,B4XMainPage,cb_importarBDWA_CheckedChange,529,0,B4XMainPage,ImageView4_Click,429,0,kms_helperSubs,importaBDDesdeWhatsApp,467,3,B4XMainPage,B4XPage_Created,103,0,Visual Designer,login.bal,-100,6,B4XMainPage,B4XPage_Appear,208,0
SelectedBuild=0
-VisibleModules=2,10,4,5,6,8,9,11,24,7
+VisibleModules=2,10,4,19,5,6,8,9,11,24,7
diff --git a/B4A/Files/login.bal b/B4A/Files/login.bal
index e059635..3c385e2 100644
Binary files a/B4A/Files/login.bal and b/B4A/Files/login.bal differ
diff --git a/B4A/kms_helperSubs.bas b/B4A/kms_helperSubs.bas
index 1ebd81d..17dbc13 100644
--- a/B4A/kms_helperSubs.bas
+++ b/B4A/kms_helperSubs.bas
@@ -22,6 +22,8 @@ Sub Class_Globals
Dim RD_Init_IsInitialized As Boolean = False
Dim btAdmin As BluetoothAdmin
Private khdb As SQL
+ Dim in As Intent
+ Dim intentUsado As Boolean = False
End Sub
'Inicializa la clase "kms_helperSubs".
@@ -451,6 +453,51 @@ Sub CheckNotificationAccess As Boolean
Return nstr.Contains(pstr)
End Sub
+'Regresa si se debe de usar el intent de importar la base d datos desde Whatsapp.
+Sub traeUsarIntentBDWA As Boolean 'ignore
+ Private BDWA As Boolean = False
+ Private x As Cursor = Starter.skmt.ExecQuery($"select CAT_VA_VALOR from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'IMPORTAR_BD_WA'"$)
+ If x.RowCount > 0 Then
+ x.Position = 0
+ If x.GetString("CAT_VA_VALOR") = "true" Then BDWA = True
+ End If
+' Log($"cb_importarBDWA = ${BDWA}"$)
+ Return BDWA
+End Sub
+
+' Se revisa si hay una intención (intent) de abrir una base de datos y si es asÃ, entonces se importa esa base de datos.
+Sub importaBDDesdeWhatsApp
+ Private tmpBDWA As Boolean = traeUsarIntentBDWA
+ If Not(in.IsInitialized) Then in = B4XPages.GetNativeParent(B4XPages.MainPage).GetStartingIntent ' Si se usa esta funcion en Mainpage, se pone "Me" en lugar de B4XPages.MainPage.
+ If Not(intentUsado) And in <> Null Then
+' Log(in)
+ intentUsado = True
+' Log(in.As(String))
+ If in.GetData <> Null Then
+ Dim XmlData As String
+ XmlData = in.GetData
+ Try
+ Dim OutStr As OutputStream = File.OpenOutput(File.DirInternal,"kmt.db",False)
+ Dim InStr As InputStream = File.OpenInput("ContentDir",XmlData)
+ File.Copy2(InStr,OutStr)
+ LogColor("BD copiada a interna.", Colors.Blue)
+ OutStr.Close
+ If in.As(String).Contains("whatsapp") Then ToastMessageShow("BD cargada desde Whatsapp", False)
+ Catch
+ Log(LastException)
+ End Try
+' ExitApplication
+ khdb.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'IMPORTAR_BD_WA'")
+ khdb.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('IMPORTAR_BD_WA', '${tmpBDWA}')"$)
+ Private a As Cursor = khdb.ExecQuery($"select CAT_VA_VALOR from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'APP_NAME'"$)
+ If a.RowCount > 0 Then
+ a.Position = 0
+ ToastMessageShow($"BD de "${a.GetString("CAT_VA_VALOR")}" cargada."$, True)
+ End If
+ End If
+ End If
+End Sub
+
'################ Manage External Storage (MES) #########################
'
''Inicializa "Manage External Storage" (MES), que nos da acceso a la tarjeta de memoria en Android 11+