private async void ListView_OnItemSelected(object sender, SelectedItemChangedEventArgs e) { if (e.SelectedItem != null) { if (await _devicePermissionServices.RequestDeviceKeepWakePermission()) { _model.IsPermissionGranted = true; } if (_model.IsChecklistSelected) { var musicFile = ((MusicFile)e.SelectedItem); musicFile.IsPlaylistSelected = true; musicFile.TextColor = musicFile.IsPlaylistSelected ? Palette._LightGrayD : Palette._ButtonBackgroundGray; var playlistMusicFile = _model.PlaylistMusicFiles.Find(m => m.Title == musicFile.Title && m.Album == musicFile.Album && m.Artist == musicFile.Artist); if (playlistMusicFile == null) { _model.PlaylistMusicFiles.Add(musicFile); } else { _model.PlaylistMusicFiles.Remove(playlistMusicFile); } _model.MusicFiles = _model.MusicFiles.Select(m => { m.IsPlaylistSelected = _model.PlaylistMusicFiles.Any(t => t.AlbumId == m.AlbumId && t.Id == m.Id && t.Title == m.Title && t.Album == m.Album && t.Artist == m.Artist); m.TextColor = m.IsPlaylistSelected ? Palette._LightGrayD : Palette._ButtonBackgroundGray; return(m); }).ToList(); } else if (!((MusicFile)e.SelectedItem).IsPlaylistSelected) { _model.SetActivityResource(showMessage: true, message: "Song does not exist in playlist"); return; } else if (_model.CurrentMusicFile != (MusicFile)e.SelectedItem) { var selectedContent = (MusicFile)e.SelectedItem; _model.CurrentMusicFile = selectedContent; int index = _model.MusicFiles.FindIndex(m => m == selectedContent && m == selectedContent); await _model.PlayCurrent(index); } } ListViewPlayer.SelectedItem = null; }
public override async void Init(object obj = null) { await App.Configuration.InitialAsync(this); _model = new AudioPlayerViewModel() { Root = (RootPage)obj, DisplaySortByListAction = DisplaySortByList }; _model.SetActivityResource(false, true); BindingContext = _model; await _model.GetFilesAsync(); }