Ejemplo n.º 1
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.playlistDetailsActivity);

            // Get data uit intent
            var playlistName = Intent.GetStringExtra(ExtraKey);

            playlistTitle      = FindViewById <TextView>(Resource.Id.playlistTitle);
            playlistTitle.Text = playlistName;

            // Initialize viewmodels
            _playlistViewModel = App.Container.Resolve <PlaylistViewModel>();
            _artistsViewModel  = App.Container.Resolve <ArtistsViewModel>();
            _playlistViewModel.InitializePlaylists();
            _playlistViewModel.InitializeSelectedPlaylist(playlistName);

            _songsAdapter = new SongsAdapter(_playlistViewModel.SelectedPlaylist.Songs);

            _playlistSongsRecyclerview = FindViewById <RecyclerView>(Resource.Id.playlistSongs);
            _playlistSongsRecyclerview.SetLayoutManager(new LinearLayoutManager(this));
            _playlistSongsRecyclerview.SetItemAnimator(new DefaultItemAnimator());
            _playlistSongsRecyclerview.SetAdapter(_songsAdapter);

            _fab        = FindViewById <FloatingActionButton>(Resource.Id.fabAddSongToPlaylist);
            _fab.Click += AddPlaylistClicked;

            SupportActionBar.Title = Resources.GetString(Resource.String.playlist_activity_title);
            SupportActionBar.SetDisplayHomeAsUpEnabled(true);
            SupportActionBar.SetHomeButtonEnabled(true);
        }
Ejemplo n.º 2
0
        public PlaylistTaskViewModel GetPlaylistViewModel(IPlaylistViewModel playlist)
        {
            if (playlist == null)
                throw new ArgumentNullException("playlist");

            try
            {
                var audioPlayer = new AudioPlayer(audioStreamFactory);
                var first = playlist.GetCurrentTaskItem();
                var task = new PlaylistTask(logger, audioPlayer, videoPlayer, first, TimeSpan.Zero, () => playlist.GetPreviousTaskItem(), () => playlist.GetNextTaskItem());

                var icon = playlist.Icon;

                var iconPath = first.Image as Uri;
                if (iconPath != null && !iconPath.IsEmptyUrn())
                    icon = iconPath;

                var iconData = first.Image as byte[];
                if (iconData != null && iconData.Length > 0)
                    icon = iconData;

                return new PlaylistTaskViewModel(logger, task, playlist.Name, icon);
            }
            catch (Exception ex)
            {
                logger.Error("  TaskController.GetPlaylistViewModel", ex);
                throw;
            }
        }
Ejemplo n.º 3
0
        public PlaylistTaskViewModel GetPlaylistViewModel(IPlaylistViewModel playlist)
        {
            if (playlist == null)
            {
                throw new ArgumentNullException("playlist");
            }

            try
            {
                var audioPlayer = new AudioPlayer(audioStreamFactory);
                var first       = playlist.GetCurrentTaskItem();
                var task        = new PlaylistTask(logger, audioPlayer, videoPlayer, first, TimeSpan.Zero, () => playlist.GetPreviousTaskItem(), () => playlist.GetNextTaskItem());

                var icon = playlist.Icon;

                var iconPath = first.Image as Uri;
                if (iconPath != null && !iconPath.IsEmptyUrn())
                {
                    icon = iconPath;
                }

                var iconData = first.Image as byte[];
                if (iconData != null && iconData.Length > 0)
                {
                    icon = iconData;
                }

                return(new PlaylistTaskViewModel(logger, task, playlist.Name, icon));
            }
            catch (Exception ex)
            {
                logger.Error("  TaskController.GetPlaylistViewModel", ex);
                throw;
            }
        }
        public EditPlaylistViewModel(IViewModelFactory viewModelFactory, IContentManagerService contentManagerService, IPlaylistViewModel playlistViewModel)
        {
            PlaylistViewModel = playlistViewModel;
            DisplayName       = playlistViewModel.Playlist.Name;

            HashSet <Track> playlistTracks = new HashSet <Track>(playlistViewModel.Playlist.Tracks.Select(playlistTrack => playlistTrack.Track));

            TrackSource = viewModelFactory.MakeViewModel <ITrackSinkViewModel>(contentManagerService.RetrieveTracks()
                                                                               .Where(track => !playlistTracks.Contains(track))
                                                                               .Select(track => viewModelFactory.MakeViewModel <ITrackViewModel>(new PlaylistTrack(0, track))),
                                                                               "Plus");
            PlaylistTarget = viewModelFactory.MakeViewModel <ITrackSinkViewModel>(playlistViewModel.Tracks, "Minus");

            EventHandler <TracksReleasedEventArgs> MakeAddTracksEventHandler(ITrackSinkViewModel target)
            {
                return((sender, e) =>
                {
                    target.AddTracks(e.Tracks);
                    ModifiedTrackCountChanged();
                });
            }

            TrackSource.TracksReleased    += MakeAddTracksEventHandler(PlaylistTarget);
            PlaylistTarget.TracksReleased += MakeAddTracksEventHandler(TrackSource);
        }
Ejemplo n.º 5
0
        public PlaylistPlayerViewModel(IPlaylistViewModel playlist, ISongPlayerViewModel songPlayerViewModel)
        {
            this.playlist       = playlist ?? throw new ArgumentNullException(nameof(playlist));
            SongPlayerViewModel = songPlayerViewModel ?? throw new ArgumentNullException(nameof(songPlayerViewModel));

            ReversePlayingCommand = new AsyncRelayCommand(() => ReversePlaying(CancellationToken.None));

            Messenger.Default.Register <PlaySongsListEventArgs>(this, e => OnPlaySongList(e, CancellationToken.None));
            Messenger.Default.Register <PlayPlaylistStartingFromSongEventArgs>(this, _ => OnPlayPlaylistStartingFromSong(CancellationToken.None));
            Messenger.Default.Register <SongPlaybackFinishedEventArgs>(this, _ => OnSongPlaybackFinished(CancellationToken.None));
        }
Ejemplo n.º 6
0
        public void LoadData(IPlaylistViewModel musicPanel)
        {
            List <Track> tracks = null;

            using (ApplicationContext db = new ApplicationContext(Options))
            {
                tracks = db.AllTracks.ToList();
            }

            musicPanel.AddTracksFromDb(tracks);
        }
        public PlaylistController(ILogger logger, IPlaylistViewModel playlist, PlaylistTaskViewModel task, IVideoPlayer videoPlayer)
        {
            if (logger == null)
                throw new ArgumentNullException("logger");
            if (playlist == null)
                throw new ArgumentNullException("playlist");
            if (task == null)
                throw new ArgumentNullException("task");
            if (videoPlayer == null)
                throw new ArgumentNullException("videoPlayer");

            this.logger = logger;
            this.playlist = playlist;
            this.task = task;
            this.videoPlayer = videoPlayer;
        }
Ejemplo n.º 8
0
        public void Playlist(PlaylistTaskViewModel taskViewModel, IPlaylistViewModel playlist)
        {
            if (taskViewModel == null)
            {
                throw new ArgumentNullException("taskViewModel");
            }
            if (playlist == null)
            {
                throw new ArgumentNullException("playlist");
            }

            try
            {
                if (!tabMap.ContainsKey(taskViewModel.Id))
                {
                    var playlistController = new PlaylistController(logger, playlist, taskViewModel, videoPlayer);

                    var playlistView = new PlaylistView();
                    playlistView.Initialize(logger, playlistController);

                    var tabItem = new TabItem();

                    //TextBlock header = new TextBlock();
                    //header.Inlines.Add(taskViewModel.Description);
                    //header.ToolTip = string.Format("{0}: {1}", taskViewModel.Name, taskViewModel.Description);
                    tabItem.Header = new TaskHeader(logger, taskViewModel);

                    tabItem.Content = playlistView;
                    resultControl.Items.Add(tabItem);
                    tabItem.IsSelected = true;

                    AddViewModel(taskViewModel, tabItem);

                    if (taskViewModel.Status == TaskStatus.Ready)
                    {
                        taskViewModel.Start();
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error("  TaskResultView.Playlist", ex);
            }
        }
Ejemplo n.º 9
0
        public PleerViewModel()
        {
            allMusicViewModel = new AllMusicViewModel();

            CentralPanel = allMusicViewModel;
            Items.Add(CentralPanel);

            musicPanel = allMusicViewModel;

            BottomPanel = new PleerPanelViewModel();
            Items.Add(BottomPanel);

            Playback.Instance().notifyTrackState += NotifyTrackState;

            DbManager db = DbManager.Instance();

            db.Init();
            db.LoadData(allMusicViewModel);
        }
Ejemplo n.º 10
0
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            View view = inflater.Inflate(Resource.Layout.playlistOverviewFragment, container, false);

            // Initialize viewmodel
            _playlistViewModel = App.Container.Resolve <PlaylistViewModel>();
            _playlistViewModel.InitializePlaylists();

            _playlistAdapter             = new PlaylistAdapter(_playlistViewModel);
            _playlistAdapter._itemClick += OnItemClick;

            FloatingActionButton fab = view.FindViewById <FloatingActionButton>(Resource.Id.fab);

            fab.Click += AddPlaylistClicked;

            _playlistRecyclerview = view.FindViewById <RecyclerView>(Resource.Id.playlistsRecyclerView);
            _playlistRecyclerview.SetLayoutManager(new LinearLayoutManager(this.Context));
            _playlistRecyclerview.SetItemAnimator(new DefaultItemAnimator());

            return(view);
        }
Ejemplo n.º 11
0
        public PlaylistController(ILogger logger, IPlaylistViewModel playlist, PlaylistTaskViewModel task, IVideoPlayer videoPlayer)
        {
            if (logger == null)
            {
                throw new ArgumentNullException("logger");
            }
            if (playlist == null)
            {
                throw new ArgumentNullException("playlist");
            }
            if (task == null)
            {
                throw new ArgumentNullException("task");
            }
            if (videoPlayer == null)
            {
                throw new ArgumentNullException("videoPlayer");
            }

            this.logger      = logger;
            this.playlist    = playlist;
            this.task        = task;
            this.videoPlayer = videoPlayer;
        }
Ejemplo n.º 12
0
 public MainViewModel(ISongViewModel songViewModel, IPlaylistViewModel playlistViewModel)
 {
     SongViewModel     = songViewModel;
     PlaylistViewModel = playlistViewModel;
 }
 public PlaylistCreationMessage(IPlaylistViewModel playlistViewModel)
 {
     PlaylistViewModel = playlistViewModel;
 }
Ejemplo n.º 14
0
 public void AllMusic()
 {
     CentralPanel = allMusicViewModel;
     musicPanel   = allMusicViewModel;
 }
Ejemplo n.º 15
0
 /// <summary>
 /// PlaylistAdapter
 /// </summary>
 /// <param name="playlistViewModel"></param>
 public PlaylistAdapter(IPlaylistViewModel playlistViewModel)
 {
     _playlistViewModel = playlistViewModel;
 }
Ejemplo n.º 16
0
 public MainViewModel(IPlaylistViewModel playlistViewModel, IPlaybarViewModel playbarViewModel)
 {
     PlaylistViewModel = playlistViewModel;
     PlaybarViewModel  = playbarViewModel;
 }
        public void Playlist(PlaylistTaskViewModel taskViewModel, IPlaylistViewModel playlist)
        {
            if (taskViewModel == null)
                throw new ArgumentNullException("taskViewModel");
            if (playlist == null)
                throw new ArgumentNullException("playlist");

            try
            {
                if (!tabMap.ContainsKey(taskViewModel.Id))
                {
                    var playlistController = new PlaylistController(logger, playlist, taskViewModel, videoPlayer);

                    var playlistView = new PlaylistView();
                    playlistView.Initialize(logger, playlistController);

                    var tabItem = new TabItem();

                    //TextBlock header = new TextBlock();
                    //header.Inlines.Add(taskViewModel.Description);
                    //header.ToolTip = string.Format("{0}: {1}", taskViewModel.Name, taskViewModel.Description);
                    tabItem.Header = new TaskHeader(logger, taskViewModel);

                    tabItem.Content = playlistView;
                    resultControl.Items.Add(tabItem);
                    tabItem.IsSelected = true;

                    AddViewModel(taskViewModel, tabItem);

                    if (taskViewModel.Status == TaskStatus.Ready)
                    {
                        taskViewModel.Start();
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error("  TaskResultView.Playlist", ex);
            }
        }
Ejemplo n.º 18
0
 internal PlaylistDeletionMessage(IPlaylistViewModel playlistViewModel)
 {
     PlaylistViewModel = playlistViewModel;
 }
        internal static void ShowPlaylistTracklist(IPlaylistViewModel playlist)
        {
            var p = ViewModelParamFactory.CreatePlaylistTracklistViewModelParams(playlist);

            ShowTracklist(p);
        }
        public static TracklistViewModelParams CreatePlaylistTracklistViewModelParams(IPlaylistViewModel playlistViewModel)
        {
            Assert.That(playlistViewModel != null);

            return(CreatePlaylistTracklistViewModelParams(playlistViewModel.ItemId));
        }