B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=11.5
@EndOfDesignText@
Sub Class_Globals
	Private Root As B4XView 'ignore
	Private xui As XUI 'ignore
End Sub

'You can add more parameters here.
Public Sub Initialize As Object
	Return Me
End Sub

'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
	Root = Root1
	'load the layout to Root
	Root.Color = Colors.Transparent
End Sub

Sub B4XPage_Appear
	Try
		Do While Not(CanRequestPackageInstalls)
			MsgboxAsync($"Por favor permita que ${Application.PackageName} instale actualizaciones"$, "Instalar actualización")
			Wait For Msgbox_Result(Result As Int)
			Dim in As Intent
			in.Initialize("android.settings.MANAGE_UNKNOWN_APP_SOURCES", "package:" & Application.PackageName)
			StartActivity(in)
		Loop
	Catch
		Log("updateAvailable() Error - " & LastException.Message)
	End Try
	If appUpdater.newApp.update Then
		ofreceActualizacion
	Else
		sinActualizacion
	End If
End Sub

'////////////////////////////////////////////////////////////////////////////////////////////
'////   Esta es una actividad usada por el servicio appUpdater para mostrar notificaciones
'////	cuando hay alguna actualizacion de apk.
'////////////////////////////////////////////////////////////////////////////////////////////

public Sub CanRequestPackageInstalls As Boolean
	' // https://www.b4x.com/android/forum/threads/version-safe-apk-installation.87667/#content
	Dim ctxt As JavaObject
	ctxt.InitializeContext
	Dim PackageManager As JavaObject = ctxt.RunMethod("getPackageManager", Null)
	Return PackageManager.RunMethod("canRequestPackageInstalls", Null)
End Sub

Sub ofreceActualizacion
	If Msgbox2(appUpdater.newApp.newMsg,"Actualización disponible","Si","","No",Null) = DialogResponse.Positive Then 'ignore
'		StartService(DownloadService)
		CallSubDelayed(appUpdater, "download_newApk")
	End If
	B4XPages.MainPage.ocultaProgreso
'	B4XPages.MainPage.buscandoActualizacion = False
	StartActivity(Main)
'	Activity.Finish

'	B4XPages.ShowPage("Login")
End Sub

Sub sinActualizacion
'	Log("#### buscandoActualizacion-" & B4XPages.MainPage.buscandoActualizacion)
'	Log("#### actualizacionRevisada-" & B4XPages.MainPage.actualizacionRevisada)
'	Log("Ponemos actualizacionRevisada en true")
'	B4XPages.MainPage.login.actualizacionRevisada = True
'	If B4XPages.MainPage.buscandoActualizacion = False Then
		Msgbox(appUpdater.newApp.okMsg, "Aplicación al corriente") 'ignore
'		MsgboxAsync(appUpdater.newApp.okMsg, "Aplicación al corriente")
'	Else
'		B4XPages.MainPage.Entrar.Enabled = True
'	End If
	B4XPages.MainPage.ocultaProgreso
'	Log("Ponemos buscandoActualizacion en False")
'	B4XPages.MainPage.login.buscandoActualizacion = False
'	Sleep(500)
	B4XPages.ShowPage("login")
End Sub