private async Task OnChoosePicture() { try { var cameraStatus = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Camera); var storageStatus = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage); if (cameraStatus != PermissionStatus.Granted || storageStatus != PermissionStatus.Granted) { var statuses = await CrossPermissions.Current.RequestPermissionsAsync(new Permission[] { Permission.Camera, Permission.Storage }); } var b = await CrossMedia.Current.Initialize(); string cameraStr = Translate.Get(nameof(AppResources.Camera)); string galleryStr = Translate.Get(nameof(AppResources.Gallery)); string cancelStr = Translate.Get(nameof(AppResources.Cancel)); var sourceChoice = await AlertService.Instance.DisplayActionSheet( Translate.Get(nameof(AppResources.SelectSource)), cancelStr, null, new[] { cameraStr, galleryStr }); if (sourceChoice == cancelStr) { return; } var mediaFile = (sourceChoice == cameraStr) ? await TakePhoto() : await PickFromGallery(); if (mediaFile == null) { return; } IsBusy = true; var image = new SignatureImage { Base64Content = GetBase64Data(mediaFile), FileName = Path.GetFileName(mediaFile.Path) }; PictureList.Add(image); RaisePropertyChanged(nameof(PictureList)); } catch (Exception ex) { await Alert.DisplayError(ex); } finally { IsBusy = false; } }
private void OnDeleteImage(SignatureImage picture) { PictureList.Remove(picture); RaisePropertyChanged(nameof(PictureList)); }