async void OpenAnalyzeFaces(object sender, EventArgs args) { var page = new ImageCapturePage(); var vm = new ImageCaptureViewModel(); vm.ImageConfirmed += async(image) => { // Ensure activity indicator is displaying ViewModel.Analyzing = true; // Close Image Capture Page await Navigation.PopModalAsync(); // TODO Call face detection service var detectedFaces = await FaceDetection.ProcessImageAsync(image); var resultPage = new FaceRecognitionDisplayPage(); var resultViewModel = new FaceRecognitionDisplayViewModel { Faces = detectedFaces, Image = image }; resultPage.BindingContext = resultViewModel; await Navigation.PushAsync(resultPage); ViewModel.Analyzing = false; }; page.BindingContext = vm; await Navigation.PushModalAsync(new NavigationPage(page)); }
async void OpenAnalyzeImage(object sender, EventArgs args) { var page = new ImageCapturePage(); var vm = new ImageCaptureViewModel(); vm.ImageConfirmed += async(image) => { // Have the progress indicator displayed ViewModel.Analyzing = true; // Close the ImageCapturePage await Navigation.PopModalAsync(); // Do analysis and display results page var tags = await VisionService.GetTagsAsync(image); var resultViewModel = new ImageResultViewModel { Image = image, ImageSource = ImageSource.FromStream(image.GetStream), Tags = new ObservableCollection <ImageTag>(tags) }; var resultPage = new ImageResultPage { BindingContext = resultViewModel }; await Navigation.PushAsync(resultPage); // Hide the progress indicator ViewModel.Analyzing = false; }; page.BindingContext = vm; await Navigation.PushModalAsync(new NavigationPage(page)); }