public async Task GetFilesAsync()
        {
            MusicFiles    = new List <MusicFile>();
            AllMusicFiles = new List <MusicFile>();
            if (await _devicePermissionServices.RequestReadStoragePermission())
            {
                var musicFiles = _musicDictionary.GetMusic();

                AllMusicFiles = musicFiles.Select(music =>
                {
                    music._Duration = int.TryParse(music.Duration, out int duration) ? duration : 0;
                    music._Date     = DateTime.TryParse(music.DateModified, out DateTime date)
                        ? date
                        : new DateTime(1900, 1, 1);
                    music._Track            = int.TryParse(music.Track, out int trackNumber) ? trackNumber : 0;
                    music._Year             = long.TryParse(music.Year, out long year) ? year : 0;
                    music._DurationTimeSpan = (TimeSpan.FromMilliseconds(duration).ToString().Split('.'))[0];
                    return(music);
                }).OrderBy(m => m.Title).ToList();

                IsMediaExists = AllMusicFiles.Count > 0;
                MusicFiles    = AllMusicFiles;
                SortOrderBy(PlaylistSortBy);
                if (MusicFiles.Count == 0)
                {
                    SetActivityResource(showError: true, errorMessage: TextResources.NoFileExists);
                }
            }
            else
            {
                ErrorMessage = TextResources.MessagePermissionReadStorageRequired;
                IsError      = true;
            }
        }
Example #2
0
        public async Task <List <MediaFile> > GetFilesAsync()
        {
            MediaFiles = new List <MediaFile>();
            var mediaFiles = new List <MediaFile>();

            if (await _devicePermissionServices.RequestReadStoragePermission())
            {
                var fileDetails = await _localFile.UpdatePlayListAsync();

                if (fileDetails == null || fileDetails.Count == 0 && !fileDetails.Any(f => f.Type.EndsWith(FileType)))
                {
                    SetActivityResource(true, false, false, true, string.Empty, string.Empty,
                                        TextResources.NoFileExists);
                }
                else
                {
                    foreach (var content in fileDetails.Where(f => f.Type.EndsWith(FileType)).OrderBy(f => f.Name))
                    {
                        mediaFiles.Add(new MediaFile()
                        {
                            Url  = content.Path,
                            Type = MediaFileType.Audio,
                            MetadataExtracted = false,
                            Availability      = ResourceAvailability.Local,
                        });
                    }
                }

                MediaFiles    = mediaFiles;
                IsMediaExists = MediaFiles.Count > 0;
                if (MediaFiles.Count == 0)
                {
                    SetActivityResource(true, false, false, true, string.Empty, string.Empty,
                                        TextResources.NoFileExists);
                }
            }
            else
            {
                ErrorMessage = TextResources.MessagePermissionReadStorageRequired;
                IsError      = true;
            }

            return(MediaFiles);
        }
Example #3
0
        public async void Init(object obj = null)
        {
            await App.Configuration.InitialAsync(this);

            NavigationPage.SetHasNavigationBar(this, false);
            BindingContext = _model;

            if (!await _devicePermissionServices.RequestReadStoragePermission())
            {
                _model.SetActivityResource(showError: true,
                                           errorMessage: TextResources.MessagePermissionReadStorageRequired);
                return;
            }

            if (!await _devicePermissionServices.RequestCameraPermission())
            {
                _model.SetActivityResource(showError: true,
                                           errorMessage: TextResources.MessagePermissionCameraRequired);
                return;
            }

            if (!await _devicePermissionServices.RequestWriteStoragePermission())
            {
                _model.SetActivityResource(showError: true,
                                           errorMessage: TextResources.MessagePermissionCameraRequired);
                return;
            }

            _model.WebUri = await _model.GetLink();

            contentView.Content = new HybridChromeWebView()
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                Margin            = new Thickness(0, -6, 0, 0),
                BackgroundColor   = Palette._MainBackground,
                Uri = _model.WebUri + $"?token={App.Configuration.UserToken}"
            };
        }
        private async void ChangeProfilePhoto(object sender, EventArgs args)
        {
            var result = await DisplayActionSheet(TextResources.ChooseOption, TextResources.Cancel, null,
                                                  new string[] { TextResources.PickFromGallery, TextResources.TakeFromCamera });

            if (!string.IsNullOrEmpty(result) && result?.ToLower() != "cancel")
            {
                if (!await _devicePermissionServices.RequestReadStoragePermission())
                {
                    _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionReadStorageRequired);
                }
                else
                {
                    _media.Refresh();
                    if (result == TextResources.PickFromGallery)
                    {
                        UploadPhoto(await _media.PickPhotoAsync());
                    }
                    else if (result == TextResources.TakeFromCamera)
                    {
                        if (!await _devicePermissionServices.RequestCameraPermission())
                        {
                            _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionCameraRequired);
                        }
                        else if (!await _devicePermissionServices.RequestWriteStoragePermission())
                        {
                            _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionCameraRequired);
                        }
                        else
                        {
                            UploadPhoto(await _media.TakePhotoAsync());
                        }
                    }
                }
            }
        }
        protected async Task UploadImageAsync(ImageSide side)
        {
            if (side == ImageSide.SIDE)
            {
                _model.ImageSide = _model.ImageDefault;
            }
            else
            {
                _model.ImageFront = _model.ImageDefault;
            }

            //var result = await DisplayActionSheet(TextResources.ChooseOption, TextResources.Cancel, null,
            //    new string[] { TextResources.PickFromGallery, TextResources.TakeFromCamera });
            //var result = await DisplayAlert(TextResources.ChooseOption, string.Empty, TextResources.PickFromGallery, TextResources.TakeFromCamera );
            var result = TextResources.TakeFromCamera;

            if (result != null)
            {
                if (result == "Cancel")
                {
                    return;
                }
                if (!await _devicePermissionServices.RequestReadStoragePermission())
                {
                    await DisplayAlert(TextResources.Review, TextResources.MessagePermissionReadStorageRequired,
                                       TextResources.Ok);

                    return;
                }

                media.Refresh();
                if (result.ToString() == TextResources.PickFromGallery)
                {
                    var _mediaFile = await media.PickPhotoAsync();

                    if (_mediaFile == null)
                    {
                        _model.SetActivityResource(showError: true, errorMessage: media.Message);
                        return;
                    }

                    (side == ImageSide.SIDE ? imageSide : imageFront).Source =
                        ImageSource.FromStream(() => { return(_mediaFile.GetStream()); });
                    if (media.FileName != null)
                    {
                        if (side == ImageSide.SIDE)
                        {
                            _model.ImageSide = media.FileName;
                        }
                        else
                        {
                            _model.ImageFront = media.FileName;
                        }
                    }
                    else
                    {
                        _model.SetActivityResource(showError: true, errorMessage: media.Message);
                    }
                }
                else if (result.ToString() == TextResources.TakeFromCamera)
                {
                    if (!await _devicePermissionServices.RequestCameraPermission())
                    {
                        await DisplayAlert(TextResources.Review, TextResources.MessagePermissionCameraRequired,
                                           TextResources.Ok);

                        return;
                    }

                    if (!await _devicePermissionServices.RequestWriteStoragePermission())
                    {
                        await DisplayAlert(TextResources.Review, TextResources.MessagePermissionCameraRequired,
                                           TextResources.Ok);

                        return;
                    }

                    var mediaFile = await media.TakePhotoAsync();

                    if (mediaFile == null)
                    {
                        _model.SetActivityResource(showError: true, errorMessage: media.Message);
                        return;
                    }

                    (side == ImageSide.SIDE ? imageSide : imageFront).Source =
                        ImageSource.FromStream(() => { return(mediaFile.GetStream()); });
                    if (media.FileName != null && media.FileName.Trim().Length > 0)
                    {
                        var index    = media.FileName.LastIndexOf("\"");
                        var fileName = media.FileName.Remove(index, 1);
                        if (side == ImageSide.SIDE)
                        {
                            _model.ImageSide = fileName;
                        }
                        else
                        {
                            _model.ImageFront = fileName;
                        }
                    }
                    else
                    {
                        _model.SetActivityResource(showError: true, errorMessage: media.Message);
                    }
                }
            }
        }
        private async Task UploadImageAsync(ImageSide side)
        {
            if (side == ImageSide.SIDE)
            {
                _model.ImageSide = _model.ImageDefault;
            }
            else
            {
                _model.ImageFront = _model.ImageDefault;
            }
            Device.BeginInvokeOnMainThread(async() =>
            {
                var localMessage = "";
                var result       = await DisplayActionSheet(TextResources.ChooseOption, TextResources.Cancel, null,
                                                            new string[] { TextResources.PickFromGallery, TextResources.TakeFromCamera });

                if (result != null)
                {
                    if (result == "Cancel")
                    {
                        return;
                    }
                    if (!await _devicePermissionServices.RequestReadStoragePermission())
                    {
                        _model.SetActivityResource(showError: true,
                                                   errorMessage: TextResources.MessagePermissionReadStorageRequired);
                        return;
                    }

                    _media.Refresh();
                    if (result.ToString() == TextResources.PickFromGallery)
                    {
                        var mediaFile = await _media.PickPhotoAsync();
                        if (mediaFile == null)
                        {
                            localMessage = _media.Message;
                        }
                        else
                        {
                            _model.SetActivityResource(false, true);
                            var response = await _media.UploadPhotoAsync(mediaFile);
                            if (response)
                            {
                                if (side == ImageSide.SIDE)
                                {
                                    _model.ImageSide = _media.FileName;
                                }
                                else
                                {
                                    _model.ImageFront = _media.FileName;
                                }
                                (side == ImageSide.SIDE ? imageSide : imageFront).Source =
                                    ImageSource.FromStream(() => { return(mediaFile.GetStream()); });
                            }
                            else
                            {
                                localMessage = _media.Message;
                            }

                            _model.SetActivityResource();
                        }
                    }
                    else if (result.ToString() == TextResources.TakeFromCamera)
                    {
                        if (!await _devicePermissionServices.RequestCameraPermission())
                        {
                            _model.SetActivityResource(showError: true,
                                                       errorMessage: TextResources.MessagePermissionCameraRequired);
                            return;
                        }

                        if (!await _devicePermissionServices.RequestWriteStoragePermission())
                        {
                            _model.SetActivityResource(showError: true,
                                                       errorMessage: TextResources.MessagePermissionCameraRequired);
                            return;
                        }

                        var mediaFile = await _media.TakePhotoAsync();
                        if (mediaFile == null)
                        {
                            localMessage = _media.Message;
                        }
                        else
                        {
                            _model.SetActivityResource(false, true);
                            var response = await _media.UploadPhotoAsync(mediaFile);
                            if (response)
                            {
                                if (side == ImageSide.SIDE)
                                {
                                    _model.ImageSide = _media.FileName;
                                }
                                else
                                {
                                    _model.ImageFront = _media.FileName;
                                }
                                (side == ImageSide.SIDE ? imageSide : imageFront).Source =
                                    ImageSource.FromStream(() => { return(mediaFile.GetStream()); });
                            }
                            else
                            {
                                localMessage = _media.Message;
                            }

                            _model.SetActivityResource();
                        }
                    }

                    if (!string.IsNullOrEmpty(localMessage))
                    {
                        _model.SetActivityResource(showError: true, errorMessage: localMessage);
                    }
                }
            });
            await Task.Delay(TimeSpan.FromMilliseconds(1));
        }
Example #7
0
        private async void ChangeProfilePhoto(object sender, EventArgs args)
        {
            var result = await DisplayActionSheet(TextResources.ChooseOption, TextResources.Cancel, null,
                                                  new string[] { TextResources.PickFromGallery, TextResources.TakeFromCamera });

            if (result != null)
            {
                if (result == "Cancel")
                {
                    return;
                }
                if (!await _devicePermissionServices.RequestReadStoragePermission())
                {
                    _model.SetActivityResource(showError: true,
                                               errorMessage: TextResources.MessagePermissionReadStorageRequired);
                    return;
                }

                if (result == TextResources.PickFromGallery)
                {
                    _media.Refresh();
                    var mediaFile = await _media.PickPhotoAsync();

                    if (mediaFile == null)
                    {
                        _model.SetActivityResource(showError: true, errorMessage: _media.Message);
                        return;
                    }

                    _model.SetActivityResource(false, true);
                    var response = await _media.UploadPhotoAsync(mediaFile);

                    if (!response)
                    {
                        _model.SetActivityResource(true, false, showError: true, errorMessage: _media.Message);
                        return;
                    }
                }
                else if (result == TextResources.TakeFromCamera)
                {
                    if (!await _devicePermissionServices.RequestCameraPermission())
                    {
                        _model.SetActivityResource(showError: true,
                                                   errorMessage: TextResources.MessagePermissionCameraRequired);
                        return;
                    }

                    if (!await _devicePermissionServices.RequestWriteStoragePermission())
                    {
                        _model.SetActivityResource(showError: true,
                                                   errorMessage: TextResources.MessagePermissionCameraRequired);
                        return;
                    }

                    _media.Refresh();
                    var mediaFile = await _media.TakePhotoAsync();

                    if (mediaFile == null)
                    {
                        _model.SetActivityResource(showError: true, errorMessage: _media.Message);
                        return;
                    }

                    _model.SetActivityResource(false, true);
                    var response = await _media.UploadPhotoAsync(mediaFile);

                    if (!response)
                    {
                        _model.SetActivityResource(true, false, showError: true, errorMessage: _media.Message);
                        return;
                    }
                }

                _model.SetActivityResource();

                if (!string.IsNullOrEmpty(_media.FileName))
                {
                    var profileImage = _metaPivotService.AddMeta(_media.FileName, MetaConstants.PROFILE_PHOTO.ToCapital(), MetaConstants.PROFILE_PHOTO, MetaConstants.PROFILE_PHOTO);
                    var response     = await _metaPivotService.SaveMetaAsync(profileImage);

                    if (response != null && response.Contains(HttpConstants.SUCCESS))
                    {
                        _model.User.ProfileImage = _media.FileName;
                        App.CurrentUser.UserInfo = _model.User;
                        _model.ProfileImagePath  = _model.User.ProfileImage;
                        _model.SetActivityResource(showMessage: true,
                                                   message: TextResources.ChangeProfilePhoto + " " + TextResources.Change + " " +
                                                   TextResources.Success);
                    }
                }
                else
                {
                    _model.SetActivityResource(showError: true, errorMessage: _media.Message);
                }
            }
        }
Example #8
0
        private async Task UploadImageAsync(ImageSide side)
        {
            if (side == ImageSide.SIDE)
            {
                _imageSideName   = string.Empty;
                _model.ImageSide = _model.ImageDefault;
            }
            else
            {
                _imageFrontName   = string.Empty;
                _model.ImageFront = _model.ImageDefault;
            }

            var result = await DisplayActionSheet(TextResources.ChooseOption, TextResources.Cancel, null,
                                                  new string[] { TextResources.PickFromGallery, TextResources.TakeFromCamera });

            if (result != null)
            {
                if (result == "Cancel")
                {
                    return;
                }
                if (!await _devicePermissionServices.RequestReadStoragePermission())
                {
                    _model.SetActivityResource(showError: true,
                                               errorMessage: TextResources.MessagePermissionReadStorageRequired);
                    return;
                }

                _media.Refresh();
                if (result == TextResources.PickFromGallery)
                {
                    var mediaFile = await _media.PickPhotoAsync();

                    if (mediaFile == null)
                    {
                        _model.SetActivityResource(showError: true, errorMessage: _media.Message);
                        return;
                    }

                    _model.SetActivityResource(false, true);
                    var response = await _media.UploadPhotoAsync(mediaFile);

                    if (!response)
                    {
                        _model.SetActivityResource(true, false, showError: true, errorMessage: _media.Message);
                        return;
                    }

                    _model.SetActivityResource();
                    (side == ImageSide.SIDE ? imageSide : imageFront).Source =
                        ImageSource.FromStream(() => { return(mediaFile.GetStream()); });
                    if (_media.FileName != null)
                    {
                        if (side == ImageSide.SIDE)
                        {
                            _imageSideName = _model.ImageSide = _media.FileName;
                        }
                        else
                        {
                            _imageFrontName = _model.ImageFront = _media.FileName;
                        }
                        (side == ImageSide.SIDE ? imageSide : imageFront).Source =
                            ImageSource.FromStream(() => { return(mediaFile.GetStream()); });
                    }
                    else
                    {
                        _model.SetActivityResource(showError: true,
                                                   errorMessage: _media.Message);
                    }
                }
                else if (result == TextResources.TakeFromCamera)
                {
                    if (!await _devicePermissionServices.RequestCameraPermission())
                    {
                        _model.SetActivityResource(showError: true,
                                                   errorMessage: TextResources.MessagePermissionCameraRequired);
                        return;
                    }

                    if (!await _devicePermissionServices.RequestWriteStoragePermission())
                    {
                        _model.SetActivityResource(showError: true,
                                                   errorMessage: TextResources.MessagePermissionCameraRequired);
                        return;
                    }

                    var mediaFile = await _media.TakePhotoAsync();

                    if (mediaFile == null)
                    {
                        _model.SetActivityResource(showError: true, errorMessage: _media.Message);
                        return;
                    }

                    _model.SetActivityResource(false, true);
                    var response = await _media.UploadPhotoAsync(mediaFile);

                    if (!response)
                    {
                        _model.SetActivityResource(true, false, showError: true, errorMessage: _media.Message);
                        return;
                    }

                    _model.SetActivityResource();
                    if (_media.FileName != null && _media.FileName.Trim().Length > 0)
                    {
                        if (side == ImageSide.SIDE)
                        {
                            _imageSideName = _model.ImageSide = _media.FileName;
                        }
                        else
                        {
                            _imageFrontName = _model.ImageFront = _media.FileName;
                        }
                        (side == ImageSide.SIDE ? imageSide : imageFront).Source =
                            ImageSource.FromStream(() => { return(mediaFile.GetStream()); });
                    }
                    else
                    {
                        _model.SetActivityResource(showError: true,
                                                   errorMessage: _media.Message);
                    }
                }
            }
        }