private async Task OpenPictureGallery() { if (Device.RuntimePlatform.Equals("iOS")) { await Task.Delay(100); } MediaFile mediaFile = await CrossMedia.Current.PickPhotoAsync(new Plugin.Media.Abstractions.PickMediaOptions { PhotoSize = PhotoSize.Medium }); if (mediaFile == null) { return; } await SelectExpensePage.PromptUserForExpenseType(Navigation, async (expenseType) => { using (var scope = App.Container.BeginLifetimeScope()) { if (scope.Resolve <AnalyzePicturePageViewModel>() is AnalyzePicturePageViewModel viewModel) { viewModel.UserImageFilePath = mediaFile.Path; viewModel.UserImageSource = ImageSource.FromFile(mediaFile.Path); viewModel.ExpenseType = expenseType.ExpenseType; await Navigation.PushAsync(new AnalyzePicture.AnalyzePicturePage { BindingContext = viewModel }, true); } } }); }
async void Handle_Clicked(object sender, System.EventArgs e) { MediaFile imgFile = await GoToCameraPicker(); if (imgFile == null) { return; } var stream = imgFile.GetStream(); byte[] imageBytes = ReadFully(stream); ImageSource imgSource = ImageSource.FromStream(() => new MemoryStream(imageBytes)); //imgFile.Dispose(); if (imgSource == null) { return; } await SelectExpensePage.PromptUserForExpenseType(Navigation, async (expenseType) => { using (var scope = App.Container.BeginLifetimeScope()) { if (scope.Resolve <AnalyzePicturePageViewModel>() is AnalyzePicturePageViewModel viewModel) { viewModel.UserImageFilePath = imgFile.Path; viewModel.UserImageSource = imgSource; viewModel.ExpenseType = expenseType.ExpenseType; imgFile.Dispose(); await Navigation.PushAsync(new AnalyzePicture.AnalyzePicturePage { BindingContext = viewModel }, true); } } }); }