Exemple #1
0
 public async void AddAudio()
 {
     if (((App)App.Current).AudioRecording != null)
     {
         var recording = new MediaFileModel(((App)App.Current).AudioRecording.Path, LocalRecordId, MediaFileModel.MediaType.Audio);
         SelectedMedia.Add(recording);
         OnPropertyChanged(nameof(SelectedMedia));
         ((App)App.Current).AudioRecording = null;
     }
 }
Exemple #2
0
        private async Task SelectAudio()
        {
            var statusStorage = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage);

            if (statusStorage != PermissionStatus.Granted)
            {
                if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Storage))
                {
                    await Application.Current.MainPage.DisplayAlert("Benötige Speicher-Berechtigung", "Zum Speichern von Fundmeldungen, Bildern und Audiodateien wird die Speicher-Berechtigung benötigt.", "Okay");
                }

                var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Permission.Storage });

                statusStorage = results[Permission.Storage];
            }

            if (statusStorage == PermissionStatus.Granted)
            {
                var allowedType = new string[1];
                switch (Device.RuntimePlatform)
                {
                case Device.Android:
                    allowedType[0] = "audio/*";
                    break;

                case Device.iOS:
                    allowedType[0] = "UTType.Audio";
                    break;

                default:
                    break;
                }
                var fileData = await CrossFilePicker.Current.PickFile(allowedType);

                if (fileData == null)
                {
                    return; // user canceled file picking
                }
                var fileHelper = DependencyService.Get <IFileHelper>();
                var file       = fileHelper.CopyFileToApp(fileData.FilePath);
                SelectedMedia.Add(new MediaFileModel(file.Path, LocalRecordId, MediaFileModel.MediaType.Audio));
                SetMediaHeight();
            }
        }
Exemple #3
0
        private async Task SelectPhoto()
        {
            try
            {
                var statusPhotos = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Photos);

                var statusStorage = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage);

                if (statusPhotos != PermissionStatus.Granted)
                {
                    if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Photos))
                    {
                        await Application.Current.MainPage.DisplayAlert("Benötige Foto-Berechtigung", "Zum Auswählen von Bildern wird die Foto-Berechtigung benötigt.", "Okay");
                    }

                    var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Permission.Photos });

                    statusPhotos = results[Permission.Photos];
                }

                if (statusStorage != PermissionStatus.Granted)
                {
                    if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Storage))
                    {
                        await Application.Current.MainPage.DisplayAlert("Benötige Speicher-Berechtigung", "Zum Speichern von Bildern und Fundmeldungen wird die Speicher-Berechtigung benötigt.", "Okay");
                    }

                    var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Permission.Storage });

                    statusStorage = results[Permission.Storage];
                }

                if (statusPhotos == PermissionStatus.Granted && statusStorage == PermissionStatus.Granted)
                {
                    await CrossMedia.Current.Initialize();

                    var file = await CrossMedia.Current.PickPhotoAsync(new PickMediaOptions
                    {
                        PhotoSize = PhotoSize.Medium,
                    });

                    if (file != null)
                    {
                        var fileHelper = DependencyService.Get <IFileHelper>();
                        var copyMedia  = fileHelper.CopyFileToApp(file.Path);
                        SelectedMedia.Add(new MediaFileModel(copyMedia.Path, LocalRecordId, MediaFileModel.MediaType.Image));
                        SetMediaHeight();
                    }
                }
                else if (statusPhotos != PermissionStatus.Unknown && statusStorage != PermissionStatus.Unknown)
                {
                    await Application.Current.MainPage.DisplayAlert("Berechtigung verweigert", "Ohne Berechtigungen können keine Bilder aufgenommen und die Fundmeldung nicht gespeichert werden.", "Okay");
                }
                else if (statusPhotos != PermissionStatus.Unknown)
                {
                    await Application.Current.MainPage.DisplayAlert("Berechtigung verweigert", "Ohne Berechtigung können keine Bilder ausgewählt werden.", "Okay");
                }
                else if (statusStorage != PermissionStatus.Unknown)
                {
                    await Application.Current.MainPage.DisplayAlert("Berechtigung verweigert", "Ohne Berechtigung kann die Fundmeldung nicht gespeichert werden.", "Okay");
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
        }
Exemple #4
0
        private async Task TakePhoto()
        {
            try
            {
                var statusCamera = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Camera);

                var statusStorage = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage);

                if (statusCamera != PermissionStatus.Granted)
                {
                    if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Camera))
                    {
                        await Application.Current.MainPage.DisplayAlert("Benötige Kamera-Berechtigung", "Zum Aufnehmen von Bildern wird die Kamera-Berechtigung benötigt.", "Okay");
                    }

                    var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Permission.Camera });

                    statusCamera = results[Permission.Camera];
                }

                if (statusStorage != PermissionStatus.Granted)
                {
                    if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Storage))
                    {
                        await Application.Current.MainPage.DisplayAlert("Benötige Speicher-Berechtigung", "Zum Speichern von Bildern und Fundmeldungen wird die Speicher-Berechtigung benötigt.", "Okay");
                    }

                    var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Permission.Storage });

                    statusStorage = results[Permission.Storage];
                }

                if (statusCamera == PermissionStatus.Granted && statusStorage == PermissionStatus.Granted)
                {
                    await CrossMedia.Current.Initialize();

                    var file = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions
                    {
                        Directory = "",
                        Name      = string.Format("IMG_{0}", DateTime.Now.ToString("yyyyMMdd_HHmmss"))
                    });

                    if (file != null)
                    {
                        SelectedMedia.Add(new MediaFileModel(file.Path, LocalRecordId, MediaFileModel.MediaType.Image));
                        SetMediaHeight();
                    }
                }
                else if (statusCamera != PermissionStatus.Unknown && statusStorage != PermissionStatus.Unknown)
                {
                    await Application.Current.MainPage.DisplayAlert("Berechtigung verweigert", "Ohne Berechtigungen können keine Bilder aufgenommen und die Fundmeldung nicht gespeichert werden.", "Okay");
                }
                else if (statusCamera != PermissionStatus.Unknown)
                {
                    await Application.Current.MainPage.DisplayAlert("Berechtigung verweigert", "Ohne Berechtigung können keine Bilder aufgenommen werden.", "Okay");
                }
                else if (statusStorage != PermissionStatus.Unknown)
                {
                    await Application.Current.MainPage.DisplayAlert("Berechtigung verweigert", "Ohne Berechtigung kann die Fundmeldung nicht gespeichert werden.", "Okay");
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
        }