Ejemplo n.º 1
0
        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);
                    }
                }
            });
        }
Ejemplo n.º 2
0
        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);
                    }
                }
            });
        }