Add auto playing in Music Player 85/137685/2
authorhjjang <heonjae.jang@samsung.com>
Fri, 7 Jul 2017 05:46:26 +0000 (14:46 +0900)
committerhjjang <heonjae.jang@samsung.com>
Sun, 9 Jul 2017 23:30:31 +0000 (08:30 +0900)
Change-Id: Ic6d286cb6f3958bde446289525229f32867d33cc
Signed-off-by: hjjang <heonjae.jang@samsung.com>
TVMediaHub/TVMediaHub.Tizen/Models/MusicPlayerModel.cs
TVMediaHub/TVMediaHub.Tizen/ViewModels/MusicTabViewModel.cs

index abf8e63..6844833 100644 (file)
@@ -340,5 +340,14 @@ namespace TVMediaHub.Tizen.Models
         {
             MusicPlayerStateChanged += listener;
         }
+
+        /// <summary>
+        /// A method adds EventHandler to SetCurrentMusicProgressListener
+        /// </summary>
+        /// <param name="listener">The EventHandler for adding</param>
+        public void SetMusicPlayCompletedListener(EventHandler<EventArgs> listener)
+        {
+            playerInstance.PlaybackCompleted += listener;
+        }
     }
 }
index 215ce89..e3d92b0 100755 (executable)
@@ -37,6 +37,11 @@ namespace TVMediaHub.Tizen.ViewModels
         public ObservableCollection<GroupItem> MusicList { get; set; }
 
         /// <summary>
+        /// Gets or sets the list of music items
+        /// </summary>
+        public List<MediaInformationEx> MusicPlayList { get; set; }
+
+        /// <summary>
         /// Gets or sets the SourceList
         /// </summary>
         public IEnumerable<string> SourceList { get; set; }
@@ -77,6 +82,11 @@ namespace TVMediaHub.Tizen.ViewModels
         public MediaInformationEx CurrentMusic { get; set; }
 
         /// <summary>
+        /// The index of the current music
+        /// </summary>
+        public int CurrentMusicIndex { get; set; }
+
+        /// <summary>
         /// The sort option to display items of the music tab
         /// </summary>
         private SortOption option = SortOption.Title;
@@ -110,6 +120,8 @@ namespace TVMediaHub.Tizen.ViewModels
         public MusicTabViewModel()
         {
             MusicList = new ObservableCollection<GroupItem>();
+            MusicPlayList = new List<MediaInformationEx>();
+
             sourcePairList = new Dictionary<string, string>();
             InitializeFooterItemsSource();
             InitializeCommands();
@@ -119,6 +131,15 @@ namespace TVMediaHub.Tizen.ViewModels
             {
                 AddSourceListItem();
             });
+
+            MusicPlayerModel.Instance.SetMusicPlayCompletedListener((e, v) =>
+            {
+                if(CurrentMusicIndex < MusicPlayList.Count - 1)
+                {
+                    CurrentMusic = MusicPlayerModel.Instance.CurrentMusic = MusicPlayList[++CurrentMusicIndex];
+                    OnPropertyChanged("CurrentMusic");
+                }
+            });
         }
 
         /// <summary>
@@ -137,6 +158,10 @@ namespace TVMediaHub.Tizen.ViewModels
             foreach (var group in templist)
             {
                 MusicList.Add(group);
+                foreach(var item in group.Contents)
+                {
+                    MusicPlayList.Add(item.Information);
+                }
             }
         }
 
@@ -253,6 +278,7 @@ namespace TVMediaHub.Tizen.ViewModels
         public void SetCurrentMusic(MediaInformationEx musicContent)
         {
             CurrentMusic = MusicPlayerModel.Instance.CurrentMusic = musicContent;
+            CurrentMusicIndex = MusicPlayList.IndexOf(musicContent);
             OnPropertyChanged("CurrentMusic");
         }
     }