#region photo
Sub TakePicture(frame As PhotoFrame)
WriteLog("starting camera")
currentPhotoFrame = frame
Dim i As Intent
i.Initialize("android.media.action.IMAGE_CAPTURE", "")
File.Delete(Starter.Provider.SharedFolder, frame.ImageFilename)
Dim u As Object = Starter.provider.GetFileUri(frame.ImageFilename)
i.PutExtra("output", u) 'the image will be saved to this path
Try
StartActivityForResult(i)
Catch
ExceptionHandler.Manage("Wizard.TakePicture", ExceptionHandler.EXCEPTION_NONCRITICAL)
ToastMessage.Show("Camera is not available.", ToastMessage.TOAST_ERR)
WriteLog("error opening camera")
End Try
End Sub
'result arrives here
Sub ion_Event (MethodName As String, Args() As Object) As Object
If -1 = Args(0) Then
Try
If File.Exists(Starter.provider.SharedFolder, currentPhotoFrame.ImageFilename) Then
currentPhotoFrame.LoadImage
Else
WriteLog("no filename returned from camera")
End If
Catch
ExceptionHandler.Manage("Wizard.TakePicture_Event", ExceptionHandler.EXCEPTION_NONCRITICAL)
WriteLog("event error")
End Try
End If
Return Null
End Sub
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
Dim cls As String = Me
cls = cls.SubString("class ".Length)
jo.InitializeStatic(cls)
Return jo.GetField("processBA")
End Sub
#End Region