Files
Kelloggs_V3/B4A/foto.bas
2023-09-05 14:02:16 -06:00

173 lines
4.7 KiB
QBasic

B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Activity
Version=6.8
@EndOfDesignText@
#Region Activity Attributes
#FullScreen: False
#IncludeTitle: 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 ruta As String
Dim g As GPS
Private frontCamera As Boolean = False
Dim quien_llamo As String
Dim foto_g () As Byte
Dim foto_g1 () As Byte
Dim foto_g2 () As Byte
Dim foto_g3 () As Byte
Dim foto_g4 () As Byte
End Sub
Sub Globals
Dim btnTakePicture As Button
Dim Panel1 As Panel
' Dim skmt As SQL
Dim c As Cursor
Dim cuenta As String
Dim lat_gps As String
Dim lon_gps As String
Private camEx As CameraExClass
Private i_foto As ImageView
Private b_guardar As Button
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("foto")
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_CAMERA)
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
ruta = File.DirInternal
End Sub
Sub Camera1_Ready (Success As Boolean)
' Log("Camara lista")
If Success Then
Dim ps As CameraSize
ps.Width =640'480 '1280
ps.Height =480'360 '960
camEx.SetPictureSize(ps.Width, ps.Height)
camEx.CommitParameters
Try
camEx.StartPreview
Catch
camEx.Release
B4XPages.ShowPage("CheckList")
End Try
Else
B4XPages.ShowPage("CheckList")
'ToastMessageShow("Cannot open camera.", True)
End If
End Sub
Sub Activity_Resume
i_foto.Visible = False
InitializeCamera
btnTakePicture.Enabled = True
b_guardar.Enabled = False
End Sub
Sub Activity_Pause (UserClosed As Boolean)
camEx.Release
End Sub
Sub GPS_LocationChanged (Location1 As Location)
' lat_gps=Location1.ConvertToSeconds(Location1.Latitude)
' lon_gps=Location1.ConvertToSeconds(Location1.Longitude)
' 'btnTakePicture.Enabled = True
' 's.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE,HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, lat_gps, lon_gps))
End Sub
Private Sub InitializeCamera
camEx.Initialize(Panel1, frontCamera, Me, "Camera1")
frontCamera = camEx.Front
End Sub
Sub Camera1_PictureTaken (Data() As Byte)
' Log("foto tomada")
btnTakePicture.Enabled = True
Dim filename As String = "2.jpg"
Dim dir As String = File.DirInternal
camEx.SavePictureToFile(Data, dir, filename)
camEx.StartPreview 'restart preview
i_foto.Visible = True
i_foto.Bitmap = LoadBitmap(File.DirInternal, "2.jpg")
If B4XPages.MainPage.cliente.TOMAR_FOTO = 1 Then
Dim InputStream1 As InputStream
InputStream1 = File.OpenInput(File.DirInternal, "2.jpg")
Dim OutputStream1 As OutputStream
OutputStream1.InitializeToBytesArray(500)
File.Copy2(InputStream1, OutputStream1)
foto_g = OutputStream1.ToBytesArray
End If
b_guardar.Enabled = True
camEx.Release
InitializeCamera
btnTakePicture.Enabled = True
'CallSubDelayed(seleccion,"seleccion")
' StartActivity(fila)
End Sub
Sub Activity_KeyPress (key As Int) As Boolean
' BACK key pressed
If key=KeyCodes.KEYCODE_BACK Then
' I want to capture the key here so I return True
B4XPages.ShowPage("Principal")
'Return True
End If
' Returning False signals the system to handle the key
Return False
End Sub
Sub b_guardar_Click
camEx.Release
' Log("liberamos camara")
'If quien_llamo = "1" Then
Try
If quien_llamo = "1" Then
File.Copy(File.DirInternal, "2.jpg",File.DirInternal, "FOTO1.jpg")
Activity.Finish
B4XPages.ShowPage("CheckList")
else if quien_llamo = "2" Then
File.Copy(File.DirInternal, "2.jpg",File.DirInternal, "FOTO2.jpg")
Activity.Finish
B4XPages.ShowPage("CheckList")
else if quien_llamo = "3" Then
File.Copy(File.DirInternal, "2.jpg",File.DirInternal, "FOTO3.jpg")
Activity.Finish
B4XPages.ShowPage("CheckList")
else if quien_llamo = "4" Then
File.Copy(File.DirInternal, "2.jpg",File.DirInternal, "FOTO4.jpg")
Activity.Finish
B4XPages.ShowPage("CheckList")
End If
If B4XPages.MainPage.cliente.TOMAR_FOTO = 1 Then
c=Starter.skmt.ExecQuery("select cuenta from cuentaa")
c.Position = 0
cuenta = c.GetString("CUENTA")
c.Close
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_FOTOS (HF_FOTO, HF_CUENTA, HF_IDENCUESTA) VALUES(?,?,?) ", Array As Object (foto_g,cuenta,B4XPages.MainPage.cliente.id_encuesta ))
Subs.iniciaActividad("Cliente")
End If
Catch
Msgbox("ERROR EN FOTO","") 'ignore
If B4XPages.MainPage.cliente.TOMAR_FOTO = 1 Then
Subs.iniciaActividad("Cliente")
Else
B4XPages.ShowPage("CheckList")
End If
End Try
End Sub
Sub btnTakePicture_Click
btnTakePicture.Enabled = False
Dim ps As CameraSize
ps.Width =640'480 '1280
ps.Height =480'360 '960
camEx.SetPictureSize(ps.Width, ps.Height)
camEx.CommitParameters
camEx.TakePicture
End Sub