1. Adding Utils for Add/Remove songs to playlist. 56/266956/2 accepted/tizen/unified/20211126.111913 submit/tizen/20211125.074930 submit/tizen/20211126.060049
authorshivamv <shivam.v2@samsung.com>
Tue, 23 Nov 2021 05:34:33 +0000 (11:04 +0530)
committershivamv <shivam.v2@samsung.com>
Wed, 24 Nov 2021 12:23:03 +0000 (17:53 +0530)
2. Cleaning the whole code, Making required fields readonly.

Change-Id: Ib43579a3e0a54195c019e5abbacf02b2ca36d553
Signed-off-by: shivamv <shivam.v2@samsung.com>
29 files changed:
music-player/Core/PlaybackHelper.cs
music-player/Core/PlaylistManager.cs
music-player/MediaContent/MediaDatabase.cs
music-player/ViewModels/AlbumDetailViewModel.cs
music-player/ViewModels/ArtistDetailViewModel.cs
music-player/ViewModels/PlayerViewModel.cs
music-player/ViewModels/SelectorViewModel.cs
music-player/ViewModels/TrackViewModel.cs
music-player/Views/AlbumDetailView.cs
music-player/Views/AlbumView.cs
music-player/Views/ArtistDetailView.cs
music-player/Views/ArtistView.cs
music-player/Views/BaseContentView.cs
music-player/Views/BaseView.cs
music-player/Views/PlayerView.cs
music-player/Views/PlayingListView.cs
music-player/Views/PlaylistDetailView.cs
music-player/Views/PlaylistSelectorView.cs
music-player/Views/PlaylistView.cs
music-player/Views/SearchView.cs
music-player/Views/SelectorView.cs
music-player/Views/TrackDetailView.cs
music-player/Views/TrackView.cs
music-player/Views/Utils/OperationViewAddEventArgs.cs
music-player/Views/Utils/OperationViewFactory.cs
music-player/Views/Utils/ViewLibrary.cs
music-player/Views/ViewManager.cs
music-player/music-player.csproj
packaging/org.tizen.MusicPlayer-1.0.0.tpk

index f45431257aaade01a1e9f336c52a41866cf0e45f..8cce6e98a4ee22283b4c3f2863ee0a1715ebad5c 100755 (executable)
@@ -12,10 +12,10 @@ namespace MusicPlayer.Core
     class PlaybackHelper
     {
 
-        private static PlaybackHelper instance = new PlaybackHelper();
+        private static readonly PlaybackHelper instance = new PlaybackHelper();
 
-        private PlayerView playerView;
-        private PlayerViewModel playerViewModel;
+        private readonly PlayerView playerView;
+        private readonly PlayerViewModel playerViewModel;
         private readonly MiniPlayer miniPlayer;
 
         private PlaybackHelper()
index 264132b659c8fbaa1c473c613dde81ae0e144fba..55ea0ae9e8ab650177da9b884a529be349a1dcf9 100755 (executable)
@@ -10,7 +10,7 @@ namespace MusicPlayer.Core
 {
     class PlaylistManager : IDisposable
     {
-        private static PlaylistManager instance = new PlaylistManager();
+        private static readonly PlaylistManager instance = new PlaylistManager();
 
         /// <summary>
         /// MediaDatabase doesn't provide update event when playlist is added , removed or changed
index 5e3ec37c79abd868250b4de48c6df8f26bf2dce0..9d2ca8677494785e797720c27ddce78e62a44d78 100755 (executable)
@@ -5,7 +5,7 @@ namespace MusicPlayer.Media
 {\r
     class Database : IDisposable\r
     {\r
-        private MediaDatabase mediaDatabase;\r
+        private readonly MediaDatabase mediaDatabase;\r
 \r
         public Database()\r
         {\r
index f5a90f0696f1594164d2924f3a5802bfb4552965..e0ad562145c995a37979610ca5c1a37847205103 100755 (executable)
@@ -64,7 +64,7 @@ namespace MusicPlayer.ViewModels
             set => SetProperty(ref albumArtPath, value);\r
         }\r
 \r
-        private ListViewModel<Track> listViewModel;\r
+        private readonly ListViewModel<Track> listViewModel;\r
 \r
         public ListViewModel<Track> ListViewModel\r
         {\r
index 0668ddcb95f7ad8f909e10f015e459e7f72dad08..d0e8921167cd8d01cd440fa82fbddf79807769ac 100755 (executable)
@@ -90,9 +90,6 @@ namespace MusicPlayer.ViewModels
             List<Album> albumList = ArtistDataProvider.GetArtistAlbumList(text);
             albumListViewModel.CreateData(albumList);
 
-            List<AudioInfo> trackList = ArtistDataProvider.GetArtistTrackList(text);
-            trackListViewModel.CreateData(trackList);
-
             foreach (MusicAlbum album in albumListViewModel)
             {
                 ArtistDetailAlbum artistAlbum = new ArtistDetailAlbum(album);
@@ -102,6 +99,7 @@ namespace MusicPlayer.ViewModels
                 foreach (Track track in albumTrackListViewModel)
                 {
                     artistAlbum.Add(track);
+                    trackListViewModel.Add(track);
                 }
                 groupListViewModel.Add(artistAlbum);
             }
index 43760cee255d9b1530a2a9ed35345ac57dac4f5c..9bbdd478bad93644ec9d92329d7cfec7b235f134 100755 (executable)
@@ -39,8 +39,10 @@ namespace MusicPlayer.ViewModels
             lyricsViewModel = new LyricsViewModel();
             playingListViewModel = new PlayingListViewModel();
             playingListViewModel.ItemSelected += OnPlayingListItemSelected;
-            playerModel = new PlayerModel();
-            playerModel.ElapsedTime = 0.0f;
+            playerModel = new PlayerModel()
+            {
+                ElapsedTime = 0.0f,
+            };
             PlayingStatus = PlayingStatus.None;
             PlayerController.Instance.PlayerEventOccurred += OnPlayerEventOccurred;
             playbackTimer = new Timer(PlaybackTimerDuration);
index c0753ab7cb812e13ad6da8dd57b363f42f6f72fb..cb2e6dc512ed3900ef197d0155c05213e3d85edd 100755 (executable)
@@ -8,14 +8,14 @@ namespace MusicPlayer.ViewModels
     class SelectorViewModel<T> : PropertyNotifier where T : new()
     {
         PlaylistSelectorViewModel playlistSelectorViewModel;
-        readonly object callerViewModel;
+        readonly object additionalData;
 
-        public SelectorViewModel(ListViewModel<T> viewModel, object callerViewModel = null)
+        public SelectorViewModel(ListViewModel<T> viewModel, object additionalData = null)
         {
             listViewModel = viewModel;
             SelectedCount = "0";
             TotalCount = ListViewModel.Count;
-            this.callerViewModel = callerViewModel;
+            this.additionalData = additionalData;
         }
 
         private readonly ListViewModel<T> listViewModel;
@@ -46,15 +46,15 @@ namespace MusicPlayer.ViewModels
 
         public bool AddMediaToPlaylist(List<string> mediaList)
         {
-            PlaylistDetailViewModel playlistDetailViewModel = (PlaylistDetailViewModel)callerViewModel;
-            bool tracksAdded = PlaylistManager.Instance.AddTracks(playlistDetailViewModel.PlaylistId, mediaList);
+            int playlistId = (int)additionalData;
+            bool tracksAdded = PlaylistManager.Instance.AddTracks(playlistId, mediaList);
             return tracksAdded;
         }
 
         public bool RemoveMediaFromPlaylist(List<string> mediaList)
         {
-            PlaylistDetailViewModel playlistDetailViewModel = (PlaylistDetailViewModel)callerViewModel;
-            bool tracksRemoved = PlaylistManager.Instance.DeleteTrackList(playlistDetailViewModel.PlaylistId, mediaList);
+            int playlistId = (int)additionalData;
+            bool tracksRemoved = PlaylistManager.Instance.DeleteTrackList(playlistId, mediaList);
             return tracksRemoved;
         }
 
index 4eff12e27347c42be1f08fdb7adf354653e970b8..cc82ffdaac2799ccd1f105ddbfe128c34586b911 100755 (executable)
@@ -18,7 +18,7 @@ namespace MusicPlayer.ViewModels
             TrackCount = listViewModel.Count.ToString();\r
         }\r
 \r
-        private ListViewModel<Track> listViewModel;\r
+        private readonly ListViewModel<Track> listViewModel;\r
 \r
         public ListViewModel<Track> ListViewModel\r
         {\r
index 2c74b00769145d3958150209954f18b96891497b..c0c4bcaa3293a3d2e1a163725c85827ae6bce31f 100755 (executable)
@@ -19,7 +19,7 @@ namespace MusicPlayer.Views
         private TextLabel albumNameLabel;\r
         private TextLabel albumArtistLabel;\r
 \r
-        private AlbumDetailViewModel viewModel;\r
+        private readonly AlbumDetailViewModel viewModel;\r
         public AlbumDetailView(AlbumDetailViewModel viewModel) : base()\r
         {\r
             Name = "AlbumDetailView";\r
index aad025365d06aa047fba6ea98ecc28ac988260e7..b6d27258d317a18b57bb5fa5aef7c085a37c8f4f 100755 (executable)
@@ -11,7 +11,7 @@ namespace MusicPlayer.Views
 {\r
     class AlbumView : BaseContentView\r
     {\r
-        private AlbumViewModel viewModel;\r
+        private readonly AlbumViewModel viewModel;\r
         private TextLabel albumCountLabel;\r
 \r
         public AlbumView(AlbumViewModel viewModel) : base()\r
index 9cdecb068c0f48fd57079fdda4524c8cdb9f4ad1..16f25c3f8294997891c2f13982ef9a388d3bf48a 100755 (executable)
@@ -10,7 +10,7 @@ namespace MusicPlayer.Views
 {
     class ArtistDetailView : BaseSubContentView
     {
-        private ArtistDetailViewModel viewModel;
+        private readonly ArtistDetailViewModel viewModel;
 
         public ArtistDetailView(ArtistDetailViewModel viewModel) : base()
         {
index 47558c6930a3bc1fbbe73d3519e6b2878fc755ce..67a176722b7ca2a6599e71440db38bd693cd36b8 100755 (executable)
@@ -11,7 +11,7 @@ namespace MusicPlayer.Views
 {
     class ArtistView : BaseContentView
     {
-        private ArtistViewModel viewModel;
+        private readonly ArtistViewModel viewModel;
         private TextLabel artistCountLabel;
 
         public ArtistView(ArtistViewModel viewModel)
index d137ff3d1ad26cee364bba18ee06f33bbc9a25a5..ddb7c59b0ecc56accaa807bab00f87e7fe0fe2f9 100755 (executable)
@@ -185,7 +185,6 @@ namespace MusicPlayer.Views
                 MenuItem item = listItem[0];
                 listItem.RemoveAt(0);
                 item.Dispose();
-                item = null;
             }
             moreMenu.Dismiss();
             moreMenu = null;
index b1e87be436e66c3c01e1e49a621d2d03c6fa550b..bc4526114019b8defa9841c448b13c2080e24d7a 100755 (executable)
@@ -20,7 +20,7 @@ namespace MusicPlayer.Views
 
         //  TODO these name strings are temporary...once the po files are added
         // need to use Translatable names.
-        private static string[] TabNames = new string[]
+        private static readonly string[] TabNames = new string[]
         {
             "Playlists",
             "Tracks",
@@ -91,8 +91,10 @@ namespace MusicPlayer.Views
             base.Add(tabs);
             for(int i = 0; i<4; ++i)
             {
-                Tab.TabItemData item = new Tab.TabItemData();
-                item.Text = TabNames[i];
+                Tab.TabItemData item = new Tab.TabItemData()
+                {
+                    Text = TabNames[i],
+                };
                 tabs.AddItem(item);
             }
 
index 996ae4a7e08506db2b12319a0a2c8c845c3ca4d6..deaa755ec138e467c720935c7873ca3919eab2b7 100755 (executable)
@@ -58,7 +58,7 @@ namespace MusicPlayer.Views
         private PlayingListView currentListView;
         private LyricsView lyricsView;
 
-        private PlayerViewModel viewModel;
+        private readonly PlayerViewModel viewModel;
 
         private PlayerViewState viewState;
         private bool isPlaylistAddViewCreated = false;
@@ -86,6 +86,7 @@ namespace MusicPlayer.Views
             AddListActionButtons();
             AddThumbnail();
             AddLyricsView();
+            TouchEvent += (object source, TouchEventArgs e) => false;
         }
 
         public void ShowView()
@@ -100,8 +101,10 @@ namespace MusicPlayer.Views
 
         private void AddPlayerBackground()
         {
-            playerBackgroundView = new View();
-            playerBackgroundView.Size2D = new Size2D(Window.Instance.WindowSize.Width, Window.Instance.WindowSize.Height);
+            playerBackgroundView = new View()
+            {
+                Size2D = new Size2D(Window.Instance.WindowSize.Width, Window.Instance.WindowSize.Height)
+            };
             WidthResizePolicy = ResizePolicyType.FillToParent;
             HeightResizePolicy = ResizePolicyType.FillToParent;
             base.Add(playerBackgroundView);
@@ -138,12 +141,14 @@ namespace MusicPlayer.Views
 
         private void AddRightViewBackground()
         {
-            rightViewBackground = new View();
-            rightViewBackground.BackgroundColor = Color.Transparent;
-            rightViewBackground.SizeWidth = Window.Instance.WindowSize.Width / 2;
-            rightViewBackground.SizeHeight = Window.Instance.WindowSize.Height;
-            rightViewBackground.WidthResizePolicy = ResizePolicyType.FillToParent;
-            rightViewBackground.HeightResizePolicy = ResizePolicyType.FillToParent;
+            rightViewBackground = new View()
+            {
+                BackgroundColor = Color.Transparent,
+                SizeWidth = Window.Instance.WindowSize.Width / 2,
+                SizeHeight = Window.Instance.WindowSize.Height,
+                WidthResizePolicy = ResizePolicyType.FillToParent,
+                HeightResizePolicy = ResizePolicyType.FillToParent
+            };
             rightView.Add(rightViewBackground);
             rightViewBackground.BindingContext = viewModel;
             rightViewBackground.SetBinding(BackgroundProperty, "PlayerBackground");
@@ -166,9 +171,11 @@ namespace MusicPlayer.Views
 
         private void AddTopButtons()
         {
-            backButton = new Button("BackButton");
-            backButton.ThemeChangeSensitive = true;
-            backButton.Position2D = new Position2D(LayoutPadding, TopBarButtonsY);
+            backButton = new Button("BackButton")
+            {
+                ThemeChangeSensitive = true,
+                Position2D = new Position2D(LayoutPadding, TopBarButtonsY)
+            };
             leftView.Add(backButton);
             backButton.Clicked += (object sender, ClickedEventArgs clickedEventArgs) =>
             {
@@ -176,9 +183,11 @@ namespace MusicPlayer.Views
                 HideView();
             };
 
-            moreButton = new Button("MoreButton");
-            moreButton.ThemeChangeSensitive = true;
-            moreButton.Position2D = new Position2D(Window.Instance.WindowSize.Width / 2 - LayoutPadding - IconSize, TopBarButtonsY);
+            moreButton = new Button("MoreButton")
+            {
+                ThemeChangeSensitive = true,
+                Position2D = new Position2D(Window.Instance.WindowSize.Width / 2 - LayoutPadding - IconSize, TopBarButtonsY)
+            };
             rightView.Add(moreButton);
             moreButton.Clicked += OnMoreButtonClicked;
         }
@@ -599,15 +608,17 @@ namespace MusicPlayer.Views
 
         private void AddVolumeSlider()
         {
-            volumeSlider = new Slider("Slider");
-            volumeSlider.ThemeChangeSensitive = true;
-            volumeSlider.Size2D = new Size2D(496, 48);
-            volumeSlider.Position2D = new Position2D(72, 336);
-            volumeSlider.ThumbSize = new Tizen.NUI.Size(36, 36);
-            volumeSlider.Direction = Slider.DirectionType.Horizontal;
-            volumeSlider.MinValue = 0;
-            volumeSlider.MaxValue = AudioManager.VolumeController.MaxLevel[AudioVolumeType.Media];
-            volumeSlider.CurrentValue = AudioManager.VolumeController.Level[AudioVolumeType.Media];
+            volumeSlider = new Slider("Slider")
+            {
+                ThemeChangeSensitive = true,
+                Size2D = new Size2D(496, 48),
+                Position2D = new Position2D(72, 336),
+                ThumbSize = new Tizen.NUI.Size(36, 36),
+                Direction = Slider.DirectionType.Horizontal,
+                MinValue = 0,
+                MaxValue = AudioManager.VolumeController.MaxLevel[AudioVolumeType.Media],
+                CurrentValue = AudioManager.VolumeController.Level[AudioVolumeType.Media]
+            };
             controlsView.Add(volumeSlider);
             volumeSlider.BindingContext = viewModel;
             volumeSlider.SetBinding(Slider.CurrentValueProperty, "VolumeLevel");
index 8124b7733300a8460c8959d1b0d054a5d360b701..a9a62c53dcc2bc4caeb1393d9c35f6cf128f0862 100755 (executable)
@@ -12,8 +12,8 @@ namespace MusicPlayer.Views
 {
     class PlayingListView : View
     {
-        private CollectionView collectionView;
-        private PlayingListViewModel viewModel;
+        private readonly CollectionView collectionView;
+        private readonly PlayingListViewModel viewModel;
 
         public PlayingListView(PlayingListViewModel viewModel) : base()
         {
index 6085bac5569fbea6a7c2b801f07e8a81b4d0b8cc..0b2881c8720bf65a3bbea0bd0f732c82dab5d7ba 100755 (executable)
@@ -11,7 +11,7 @@ namespace MusicPlayer.Views
 {
     class PlaylistDetailView : BaseSubContentView
     {
-        private PlaylistDetailViewModel viewModel;
+        private readonly PlaylistDetailViewModel viewModel;
 
         public PlaylistDetailView(PlaylistDetailViewModel playlistViewModel)
         {
@@ -23,6 +23,7 @@ namespace MusicPlayer.Views
                 layout.Icon.SetBinding(ImageView.ResourceUrlProperty, "ThumbnailPath");
                 layout.TitleLabel.SetBinding(TextLabel.TextProperty, "TrackTitle");
                 layout.SubtitleLabel.SetBinding(TextLabel.TextProperty, "ArtistName");
+                //layout.SetBinding(ListItemLayout.IsPlayingProperty, "IsPlaying");  //Need to Modify
                 return layout;
             });
             collectionView.SelectionChanged += OnTrackSelection;
@@ -60,7 +61,7 @@ namespace MusicPlayer.Views
         private void OnAddClick(object sender, ClickedEventArgs e)
         {
             TrackViewModel trackViewModel = new TrackViewModel();
-            OperationViewAddEventArgs operationEventArgs = new OperationViewAddEventArgs(OperationViewType.AddToCurrentPlaylist, ContentViewType.Track, trackViewModel.ListViewModel, viewModel);
+            OperationViewAddEventArgs operationEventArgs = new OperationViewAddEventArgs(OperationViewType.AddToCurrentPlaylist, ContentViewType.Track, trackViewModel.ListViewModel, viewModel.PlaylistId);
             OnOperationViewAdd(operationEventArgs);
         }
 
@@ -90,7 +91,7 @@ namespace MusicPlayer.Views
 
         private void OnDeleteClick(object sender, ClickedEventArgs e)
         {
-            OperationViewAddEventArgs operationEventArgs = new OperationViewAddEventArgs(OperationViewType.RemoveFromCurrentPlaylist, ContentViewType.Track, viewModel.ListViewModel, viewModel);
+            OperationViewAddEventArgs operationEventArgs = new OperationViewAddEventArgs(OperationViewType.RemoveFromCurrentPlaylist, ContentViewType.Track, viewModel.ListViewModel, viewModel.PlaylistId);
             OnOperationViewAdd(operationEventArgs);
         }
 
index 78b42afc620e8140d35805bf38446d6f9880c833..120e7b30075d9a51454b3214ebc81a675c8553e9 100755 (executable)
@@ -38,7 +38,7 @@ namespace MusicPlayer.Views
         private AlertDialog createPlaylistDialog;
         private TextField textField;
         private Button crossButton;
-        private PlaylistSelectorViewModel viewModel;
+        private readonly PlaylistSelectorViewModel viewModel;
 
         public event EventHandler<PlaylistMemberAddEventArgs> PlaylistMemberAdd;
 
@@ -167,9 +167,11 @@ namespace MusicPlayer.Views
             FlexLayout.SetFlexShrink(collectionView, 1);
             collectionView.ItemTemplate = new DataTemplate(() =>
             {
-                DefaultLinearItem layout = new DefaultLinearItem("LinearItem");
-                layout.WidthSpecification = LayoutParamPolicies.MatchParent;
-                layout.HeightSpecification = 108;
+                DefaultLinearItem layout = new DefaultLinearItem("LinearItem")
+                {
+                    WidthSpecification = LayoutParamPolicies.MatchParent,
+                    HeightSpecification = 108
+                };
                 layout.Seperator.BackgroundColor = UIColors.ItemSeperator;
                 layout.Seperator.Padding = new Extents(0, 0, 0, 0);
                 layout.Seperator.Margin = new Extents(0, 0, 0, 0);
index d674a6fd8592b6e41b42177435e2c55cb36b93ea..4c02601110bb5706d44d94ad9f215050dbd9748a 100755 (executable)
@@ -17,7 +17,7 @@ namespace MusicPlayer.Views
 
         private TextLabel playlistCountLabel;
         private Button playlistCreateButton;
-        private PlaylistViewModel viewModel;
+        private readonly PlaylistViewModel viewModel;
 
         public PlaylistView(PlaylistViewModel viewModel)
         {
index d4b1e0bbb5ecf3c092b783ed45b12784e29138d5..715878a62bed2fa8e7c5006ecc0a1c440d60fff2 100755 (executable)
@@ -23,7 +23,7 @@ namespace MusicPlayer.Views
         private View searchBox;
         private TextLabel searchLabel;
 
-        private SearchViewModel viewModel;
+        private readonly SearchViewModel viewModel;
 
         public event EventHandler<SubContentViewAddEventArgs> LaunchDetailView;
 
index cd79f851d1505b4e05127a75b251c0cea4f6d465..6b61f96396c6bd5a19668cbf639b84214718926a 100755 (executable)
@@ -30,14 +30,13 @@ namespace MusicPlayer.Views
         private CheckBox selAllButton;
         private Button cancelButton;
         private Button doneButton;
-        private CollectionView collectionView;
+        private readonly CollectionView collectionView;
 
         int itemCount = 0;
         public List<string> selectedItemList;
 
-        private SelectorViewModel<T> viewModel;
-        private OperationViewType currentViewType;
-
+        private readonly SelectorViewModel<T> viewModel;
+        private readonly OperationViewType currentViewType;
 
         public SelectorView(OperationViewType viewType,  SelectorViewModel<T> viewModel) : base()
         {
index 840d4131d2a553a656f5f9af3773ad2c6e31f0de..b37670a75f5895339a61ebbf5bb2e9cb4eef8808 100755 (executable)
@@ -14,7 +14,7 @@ namespace MusicPlayer.Views
     {
         private ContentPage contentPage;
         private ScrollableBase scrollableBase;
-        private TrackDetailViewModel viewModel;
+        private readonly TrackDetailViewModel viewModel;
         private View itemRootView;
         public TrackDetailView(TrackDetailViewModel viewModel) : base()
         {
@@ -66,7 +66,6 @@ namespace MusicPlayer.Views
                 RecursivelyDisposeChildren(child);
                 view.Remove(child);
                 child.Dispose();
-                child = null;
             }
         }
 
index bca9791c0eedb8bd5fb169c86a2a310c63f59246..f756ccb1e315c36746ac7649393dc4d665c11b90 100755 (executable)
@@ -10,7 +10,7 @@ namespace MusicPlayer.Views
 {\r
     class TrackView : BaseContentView\r
     {\r
-        private TrackViewModel viewModel;\r
+        private readonly TrackViewModel viewModel;\r
         private TextLabel trackCountLabel;\r
         private Button playAllWithShuffle;\r
         private Button playAll;\r
@@ -26,6 +26,7 @@ namespace MusicPlayer.Views
                 layout.Icon.SetBinding(ImageView.ResourceUrlProperty, "ThumbnailPath");\r
                 layout.TitleLabel.SetBinding(TextLabel.TextProperty, "TrackTitle");\r
                 layout.SubtitleLabel.SetBinding(TextLabel.TextProperty, "ArtistName");\r
+                //layout.SetBinding(ListItemLayout.IsPlayingProperty, "IsPlaying");  //Need to Modify\r
                 return layout;\r
             });\r
             collectionView.ScrollingDirection = ScrollableBase.Direction.Vertical;\r
index 348ef7f309a1668574360c38060129b4cbb0a61f..fd256c860951dac809cea3e29b6941ac82a84638 100755 (executable)
@@ -6,11 +6,12 @@ namespace MusicPlayer.Views.Utils
 {
     class OperationViewAddEventArgs : EventArgs
     {
-        public OperationViewAddEventArgs(OperationViewType type, ContentViewType contentType, object creationDetails)
+        public OperationViewAddEventArgs(OperationViewType type, ContentViewType contentType, object creationDetails, object additionalDetails = null)
         {
             OperationViewType = type;
             ContentViewType = contentType;
             ViewModelData = creationDetails;
+            OtherData = additionalDetails;
         }
 
         public OperationViewType OperationViewType { get; private set; }
@@ -18,5 +19,7 @@ namespace MusicPlayer.Views.Utils
         public ContentViewType ContentViewType { get; private set; }
 
         public object ViewModelData { get; private set; }
+
+        public object OtherData { get; private set; }
     }
 }
index 57ad2b03ad957c9ee2ab85b794bf8ab60dd36b65..61beb10dc97cc4f2ff72b315641f09844fce531c 100755 (executable)
@@ -14,15 +14,17 @@ namespace MusicPlayer.Views.Utils
         Search = 1,
         Share = 2,
         AddToPlaylist = 3,
+        AddToCurrentPlaylist = 4,
+        RemoveFromCurrentPlaylist = 5,
     }
 
     abstract class OperationViewFactory
     {
-        public abstract View AddOperationView(OperationViewType type, ContentViewType viewType, object viewModelData);
+        public abstract View AddOperationView(OperationViewType type, ContentViewType viewType, object viewModelData, object otherData = null);
     }
     class ConcreteOperationViewFactory : OperationViewFactory
     {
-        public override View AddOperationView(OperationViewType type, ContentViewType viewType, object viewModelData)
+        public override View AddOperationView(OperationViewType type, ContentViewType viewType, object viewModelData, object otherData = null)
         {
             Tizen.Log.Debug(AppConstants.LogTag, "Getting operation view of type: " + type.ToString());
             View view = null;
@@ -34,6 +36,7 @@ namespace MusicPlayer.Views.Utils
                     break;
                 case OperationViewType.Search:
                     Tizen.Log.Info(AppConstants.LogTag, "Creationg Search View");
+                    view = CreateSearchView();
                     break;
                 case OperationViewType.Share:
                     Tizen.Log.Info(AppConstants.LogTag, "Creationg Share View");
@@ -45,6 +48,18 @@ namespace MusicPlayer.Views.Utils
                     Tizen.Log.Info(AppConstants.LogTag, "Creationg AddtoPlaylist View");
                     view = CreateAddToPlaylistView(viewType, viewModelData);
                     break;
+                case OperationViewType.AddToCurrentPlaylist:
+                    Tizen.Log.Info(AppConstants.LogTag, "Creationg AddtoCurrentPlaylist View");
+                    SelectorViewModel<Track> addToCurrentPlaylistViewModel = new SelectorViewModel<Track>((ListViewModel<Track>)viewModelData, otherData);
+                    SelectorView<Track> addToCurrentPlaylistView = new SelectorView<Track>(OperationViewType.AddToCurrentPlaylist, addToCurrentPlaylistViewModel);
+                    view = addToCurrentPlaylistView;
+                    break;
+                case OperationViewType.RemoveFromCurrentPlaylist:
+                    Tizen.Log.Info(AppConstants.LogTag, "Creationg RemoveFromCurrentPlaylist View");
+                    SelectorViewModel<Track> removeFromCurrentPlaylistViewModel = new SelectorViewModel<Track>((ListViewModel<Track>)viewModelData, otherData);
+                    SelectorView<Track> removeFromCurrentPlaylistView = new SelectorView<Track>(OperationViewType.RemoveFromCurrentPlaylist, removeFromCurrentPlaylistViewModel);
+                    view = removeFromCurrentPlaylistView;
+                    break;
             }
             return view;
         }
index 937a75b020eedd30e273800baba3981ac57776ea..14392db0b057740ec5b4cb779a2e3c8d4b2cf170 100755 (executable)
@@ -6,10 +6,10 @@ namespace MusicPlayer.Views.Utils
 {
     class ViewLibrary
     {
-        private IDictionary<int, BaseContentView> contentViewDictionary;
-        private ConcreteContentViewFactory contentViewFactory;
-        private ConcreteSubContentViewFactory subContentViewFactory;
-        private ConcreteOperationViewFactory operationViewFactory;
+        private readonly IDictionary<int, BaseContentView> contentViewDictionary;
+        private readonly ConcreteContentViewFactory contentViewFactory;
+        private readonly ConcreteSubContentViewFactory subContentViewFactory;
+        private readonly ConcreteOperationViewFactory operationViewFactory;
 
         public ViewLibrary()
         {
@@ -39,9 +39,9 @@ namespace MusicPlayer.Views.Utils
             return view;
         }
 
-        public void AddOperationView(OperationViewType type, ContentViewType contentType, object viewModelData)
+        public void AddOperationView(OperationViewType type, ContentViewType contentType, object viewModelData, object otherData)
         {
-            operationViewFactory.AddOperationView(type, contentType, viewModelData);
+            operationViewFactory.AddOperationView(type, contentType, viewModelData, otherData);
         }
 
         public SearchView CreateSearchView()
index 86ff41c1e9350ceb5e9f2126e3db2beaca082a86..22a90db09887797106b7c9eea76f9ae8dd41218e 100755 (executable)
@@ -13,12 +13,11 @@ namespace MusicPlayer.Views
 {
     public class ViewManager
     {
-        private Window window;
-        private ViewLibrary viewLibrary;
+        private readonly ViewLibrary viewLibrary;
         private View rootView;
         private BaseView baseView;
         private View miniPlayer;
-        private static string[] TabNames = new string[]
+        private static readonly  string[] TabNames = new string[]
         {
             "Playlists",
             "Tracks",
@@ -28,7 +27,6 @@ namespace MusicPlayer.Views
 
         public ViewManager(Window win)
         {
-            window = win;
             viewLibrary = new ViewLibrary();
             UpdateTheme(ThemeManager.PlatformThemeId);
             InitializeRootView(win);
@@ -155,7 +153,7 @@ namespace MusicPlayer.Views
 
         private void OnOperationViewAdded(object sender, OperationViewAddEventArgs e)
         {
-            viewLibrary.AddOperationView(e.OperationViewType, e.ContentViewType, e.ViewModelData, e.CallerViewModel);
+            viewLibrary.AddOperationView(e.OperationViewType, e.ContentViewType, e.ViewModelData, e.OtherData);
         }
 
         private void SetTabItem(int previousIndex, int currentIndex)
index a36f2ac37c42e507c3c0798e02be4d0daca26942..be15aa6adb5b5aabb78efdde520367123bd893b4 100755 (executable)
@@ -19,7 +19,7 @@
   </ItemGroup>\r
 \r
   <ItemGroup>\r
-    <PackageReference Include="Tizen.NET" Version="9.0.0.16759">\r
+    <PackageReference Include="Tizen.NET" Version="10.0.0.16834">\r
       <ExcludeAssets>Runtime</ExcludeAssets>\r
     </PackageReference>\r
     <PackageReference Include="Tizen.NET.Sdk" Version="1.1.6" />\r
index c1781b3fc06dddeea8e10832610eebf857c74219..39280c993cfd5e9c0fdf843fa2c639fc4caea177 100755 (executable)
Binary files a/packaging/org.tizen.MusicPlayer-1.0.0.tpk and b/packaging/org.tizen.MusicPlayer-1.0.0.tpk differ