Added Korean Translation in Collection View of 72/306972/7 accepted/tizen/unified/20240424.063517 accepted/tizen/unified/dev/20240620.011234 accepted/tizen/unified/x/20240425.051145 accepted/tizen/unified/x/asan/20240625.092947
authorAkshat Airan/Core S/W Group /SRI-Delhi/Engineer/Samsung Electronics <akshat.airan@samsung.com>
Fri, 1 Mar 2024 09:01:55 +0000 (14:31 +0530)
committerAkshat Airan/Core S/W Group /SRI-Delhi/Engineer/Samsung Electronics <akshat.airan@samsung.com>
Wed, 6 Mar 2024 10:29:12 +0000 (15:59 +0530)
 each tab and at Selector View .

Change-Id: I02e61d358d58572a33d539aa2d5d554fc57dce27
Signed-off-by: Akshat Airan/Core S/W Group /SRI-Delhi/Engineer/Samsung Electronics <akshat.airan@samsung.com>
23 files changed:
music-player/Models/Artist.cs
music-player/Models/PlaylistModel.cs
music-player/MusicPlayer.cs
music-player/TextResources/Resources.Designer.cs
music-player/TextResources/Resources.en-US.resx
music-player/TextResources/Resources.ko-KR.resx
music-player/TextResources/Resources.resx
music-player/ViewModels/AlbumDetailViewModel.cs
music-player/ViewModels/AlbumViewModel.cs
music-player/ViewModels/ArtistViewModel.cs
music-player/ViewModels/PlaylistDetailViewModel.cs
music-player/ViewModels/PlaylistSelectorViewModel.cs
music-player/ViewModels/PlaylistViewModel.cs
music-player/ViewModels/SelectorViewModel.cs
music-player/ViewModels/TrackViewModel.cs
music-player/Views/AlbumDetailView.cs
music-player/Views/ArtistView.cs
music-player/Views/BaseSubContentView.cs
music-player/Views/ListItemLayout.cs
music-player/Views/PlaylistView.cs
music-player/Views/SelectListLayout.cs
music-player/Views/SelectorView.cs
packaging/org.tizen.MusicPlayer-1.0.0.tpk

index 27d73f3123f05162a423f2a1a1740160b27de71f..c3a83cfd4c1358e0974af55ecb7fb1dfec1a60b3 100755 (executable)
@@ -15,7 +15,6 @@ namespace MusicPlayer.Models
             ArtistName = artistName;
             AlbumCount = ArtistDataProvider.GetArtistAlbumCount(artistName).ToString();
             TrackCount = ArtistDataProvider.GetArtistTrackCount(artistName).ToString();
-            TotalCount = AlbumCount + " / " + TrackCount;
             AlbumArtPath = ArtistDataProvider.GetArtistAlbumArtPath(artistName);
             IsSelected = false;
         }
@@ -39,11 +38,20 @@ namespace MusicPlayer.Models
             get => albumCount;
             set
             {
-                string text = string.Equals(value, "1") ? " album" : " albums";
-                SetProperty(ref albumCount, value + text);
+                string text = string.Equals(value, "1") ? "IDS_ALBUM" : "IDS_ALBUMS";
+                AlbumTitle = text;
+                SetProperty(ref albumCount, value);
             }
         }
 
+        private string albumTitle;
+
+        public string AlbumTitle
+        {
+            get => albumTitle;
+            set => SetProperty(ref albumTitle, value);
+        }
+
         private string trackCount;
 
         public string TrackCount
@@ -51,11 +59,20 @@ namespace MusicPlayer.Models
             get => trackCount;
             set
             {
-                string text = string.Equals(value, "1") ? " track" : " tracks";
-                SetProperty(ref trackCount, value + text);
+                string text = string.Equals(value, "1") ? "IDS_TRACK" : "IDS_TRACKS";
+                TrackTitle = text;
+                SetProperty(ref trackCount,"/ " + value);
             }
         }
 
+        private string trackTitle;
+
+        public string TrackTitle
+        {
+            get => trackTitle;
+            set => SetProperty(ref trackTitle, value);
+        }
+
         private string totalCount;
 
         public string TotalCount
index 7ce04098643d194b225dd1a7f4a09c966d8c62d7..d0557a36235f8dd2dd64121d5c3d88b8f19eafc6 100755 (executable)
@@ -59,7 +59,20 @@ namespace MusicPlayer.Models
         public string PlaylistTrackCount
         {
             get => playlistTrackCount;
-            set => SetProperty(ref playlistTrackCount, value);
+            set
+            {
+                string text = string.Equals(value, "1") ? "IDS_TRACK" : "IDS_TRACKS";
+                PlaylistTrackTitle = text;
+                SetProperty(ref playlistTrackCount, value);
+            }
+        }
+
+        private string playlistTrackTitle;
+
+        public string PlaylistTrackTitle
+        {
+            get => playlistTrackTitle;
+            set => SetProperty(ref playlistTrackTitle, value);
         }
 
         private string playlistThumbnailPath;
index 5fdc80f90d67dd33767717fe2f86ab4cfaa3274d..87a14233d6f29752ee3dfbe9d1f4ed9840151e19 100755 (executable)
@@ -46,7 +46,7 @@ namespace MusicPlayer
             }
             catch (Exception ex)
             {
-                Tizen.Log.Debug(AppConstants.LogTag, "Failed to write app doamin exception message: "+ex.Message);
+                Tizen.Log.Debug(AppConstants.LogTag, "Failed to write app doamin exception message: " +ex.Message);
             }
             Environment.Exit(1);
         }
index 02ca3ec3519f587361554ce90fd90d216f54be66..1ec8839091118cf869a2d2e4cd02c08e4b79d581 100644 (file)
@@ -312,6 +312,24 @@ namespace MusicPlayer.TextResources {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Select Items.
+        /// </summary>
+        internal static string IDS_SELECT_ITEMS {
+            get {
+                return ResourceManager.GetString("IDS_SELECT_ITEMS", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Selected.
+        /// </summary>
+        internal static string IDS_SELECTED {
+            get {
+                return ResourceManager.GetString("IDS_SELECTED", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Share.
         /// </summary>
index d74bb60ffd0b9d1b623eac0ca99b9b95bf624949..4c78371707555a4b23563fe42ea5e5acc4c78d31 100644 (file)
   <data name="IDS_SEARCH_MUSIC" xml:space="preserve">
     <value>Search music</value>
   </data>
+  <data name="IDS_SELECTED" xml:space="preserve">
+    <value>Selected</value>
+  </data>
   <data name="IDS_SELECT_ALL" xml:space="preserve">
     <value>Select All</value>
   </data>
+  <data name="IDS_SELECT_ITEMS" xml:space="preserve">
+    <value>Select Items</value>
+  </data>
   <data name="IDS_SHARE" xml:space="preserve">
     <value>Share</value>
   </data>
index 71dc6699b96c10c43f54d5f7a7b3f058e4c220de..4cda68943f994ba82133dc737bb25ab5a48449d0 100644 (file)
   <data name="IDS_SEARCH_MUSIC" xml:space="preserve">
     <value>음악 검색</value>
   </data>
+  <data name="IDS_SELECTED" xml:space="preserve">
+    <value>선택한</value>
+  </data>
   <data name="IDS_SELECT_ALL" xml:space="preserve">
     <value>전체 선택</value>
   </data>
+  <data name="IDS_SELECT_ITEMS" xml:space="preserve">
+    <value>아이템 선택</value>
+  </data>
   <data name="IDS_SHARE" xml:space="preserve">
     <value>공유</value>
   </data>
index 53f1f57e8577bdf9375518e60e58f0eba7ef626e..1824c485e10b1f1c26839883cd3c9507914035e6 100644 (file)
   <data name="IDS_SEARCH_MUSIC" xml:space="preserve">
     <value>Search music</value>
   </data>
+  <data name="IDS_SELECTED" xml:space="preserve">
+    <value>Selected</value>
+  </data>
   <data name="IDS_SELECT_ALL" xml:space="preserve">
     <value>Select All</value>
   </data>
+  <data name="IDS_SELECT_ITEMS" xml:space="preserve">
+    <value>Select Items</value>
+  </data>
   <data name="IDS_SHARE" xml:space="preserve">
     <value>Share</value>
   </data>
index 22ebc19724a40d81730d0d50378e601df4561c6c..747dea5022e8f2f4bf85ca0553c30ea6694bbf84 100755 (executable)
@@ -87,11 +87,20 @@ namespace MusicPlayer.ViewModels
             get => totalTracks;\r
             set\r
             {\r
-                string text = string.Equals(value, "1") ? " Track" : " Tracks";\r
-                SetProperty(ref totalTracks, value + text);\r
+                string text = string.Equals(value, "1") ? "IDS_TRACK" : "IDS_TRACKS";\r
+                TracksTitle = text;\r
+                SetProperty(ref totalTracks, value);\r
             }\r
         }\r
 \r
+        private string tracksTitle;\r
+\r
+        public string TracksTitle\r
+        {\r
+            get => tracksTitle;\r
+            set => SetProperty(ref tracksTitle, value);\r
+        }\r
+\r
         // TODO do we really need this ?\r
         public void OnViewDeleted()\r
         {\r
index 304e5b82947126fe6c5ccfc109462f13af93f81f..169507a03a1e07156633a81521585df06663d53b 100755 (executable)
@@ -32,8 +32,8 @@ namespace MusicPlayer.ViewModels
             set\r
             {\r
                 string text = string.Equals(value, "1") ? " IDS_ALBUM" : "IDS_ALBUM";\r
+                AlbumTitle = text;\r
                 SetProperty(ref albumCount, value);\r
-                SetProperty(ref albumTitle, text);\r
             }\r
         }\r
 \r
@@ -42,6 +42,7 @@ namespace MusicPlayer.ViewModels
         public string AlbumTitle\r
         {\r
             get => albumTitle;\r
+            set =>SetProperty(ref albumTitle, value);\r
         }\r
 \r
         private void CreateAlbumData()\r
index 20be9a8e7adc16adfc2d623d7f7bb67e1aae39d0..17f4eb84604ccfb7b34ee4cb6aa64cacbece535c 100755 (executable)
@@ -31,8 +31,8 @@ namespace MusicPlayer.ViewModels
             set
             {
                 string text = string.Equals(value, "1") ? "IDS_ARTIST" : "IDS_ARTISTS";
+                ArtistTitle = text;
                 SetProperty(ref artistCount, value);
-                SetProperty(ref artistTitle, text);
             }
         }
 
@@ -41,6 +41,7 @@ namespace MusicPlayer.ViewModels
         public string ArtistTitle
         {
             get => artistTitle;
+            set => SetProperty(ref artistTitle, value);
         }
 
         private void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
index a8bad4b9f99817e844c4e6ad5a9de81a529aa596..a43c1732a876774e5f92d548534be14a5efd5b08 100755 (executable)
@@ -69,8 +69,8 @@ namespace MusicPlayer.ViewModels
             set
             {
                 string text = string.Equals(value, "1") ? "IDS_TRACK" : "IDS_TRACKS";
+                PlaylistTrackTitle = text;
                 SetProperty(ref playlistTrackCount, value);
-                SetProperty(ref playlistTrackTitle, text);
             }
         }
 
@@ -79,6 +79,7 @@ namespace MusicPlayer.ViewModels
         public string PlaylistTrackTitle
         {
             get => playlistTrackTitle;
+            set => SetProperty(ref playlistTrackTitle, value);
         }
 
         private bool isDefaultPlaylist;
index 7916cb74c55e06971b1f421d27c5fdd1b419164e..28a30d2c119442a9074cb215c3a95253be763a77 100755 (executable)
@@ -127,7 +127,7 @@ namespace MusicPlayer.ViewModels
         private string GetTrackCountForPlaylist(int playlistId)
         {
             int trackCount = PlaylistManager.Instance.PlaylistTrackCount(playlistId);
-            return trackCount > 1 ? trackCount.ToString() + " tracks" : trackCount.ToString() + " track";
+            return trackCount.ToString();
         }
 
         private int UpdateLength(int length, int count)
index c7c9c81fd8085c45a01acb9fedf6da99cdf104e7..6c9291b8119156d62bdf8b4e56a9fd7431bfba4d 100755 (executable)
@@ -53,8 +53,8 @@ namespace MusicPlayer.ViewModels
             set
             {
                 string text = string.Equals(value, "1") ? "IDS_PLAYLIST" : "IDS_PLAYLISTS";
+                PlaylistTitle = text;
                 SetProperty(ref playlistCount, value);
-                SetProperty(ref playlistTitle, text);
             }
         }
 
@@ -63,6 +63,7 @@ namespace MusicPlayer.ViewModels
         public string PlaylistTitle
         {
             get => playlistTitle;
+            set => SetProperty(ref playlistTitle, value);
         }
 
         private bool canCreatePlaylist;
@@ -115,7 +116,7 @@ namespace MusicPlayer.ViewModels
 
         private string GetTrackCountText(int trackCount)
         {
-            return trackCount > 1 ? trackCount.ToString() + " tracks" : trackCount.ToString() + " track";
+            return trackCount.ToString();
         }
 
         private void AddDefaultPlaylist(List<PlaylistData> list)
index cb2e6dc512ed3900ef197d0155c05213e3d85edd..5e4f7f68d8ee03ebe73346561e972457f678714b 100755 (executable)
@@ -28,11 +28,30 @@ namespace MusicPlayer.ViewModels
             get => selectedCount;
             set
             {
-                string text = string.Equals(value, "0") ? "Select Items" : value + " Selected";
-                SetProperty(ref selectedCount, text);
+                string count;
+                string label;
+                if (string.Equals(value, "0"))
+                {
+                    count = "";
+                    label = "IDS_SELECT_ITEMS";
+                }
+                else
+                {
+                    count = value;
+                    label = "IDS_SELECTED";
+                }
+                SelectedTitle = label;
+                SetProperty(ref selectedCount, count);
             }
         }
 
+        private string selectedTitle;
+        public string SelectedTitle
+        {
+            get => selectedTitle;
+            set => SetProperty(ref selectedTitle, value);
+        }
+
         public int TotalCount { get; set; }
 
         public List<string> TrackList { get; set; }
index 7d8bc770626f71bdd00f48c65fc8478f8a2a36d7..3baca2908a27d1d83f001c6a84a6d0c10fab9d74 100755 (executable)
@@ -57,8 +57,8 @@ namespace MusicPlayer.ViewModels
             set\r
             {\r
                 string text = string.Equals(value, "1") ? "IDS_TRACK" : "IDS_TRACKS";\r
+                TrackTitle = text;\r
                 SetProperty(ref trackCount, value);\r
-                SetProperty(ref trackTitle, text);\r
             }\r
         }\r
 \r
@@ -67,6 +67,7 @@ namespace MusicPlayer.ViewModels
         public string TrackTitle\r
         {\r
             get => trackTitle;\r
+            set => SetProperty(ref trackTitle, value);\r
         }\r
 \r
         public Track PlayingTrack { get; set; }\r
index a4961519a3408f54f3ae1fee59e2bf6564c44b66..b4c2b391c9e3e55b8937c78be607b012362491c0 100755 (executable)
@@ -36,7 +36,9 @@ namespace MusicPlayer.Views
             Layout = baseLayout;\r
             albumInfoView = CreateLeftView();\r
             countLabel.BindingContext = viewModel;\r
+            countTitleLabel.BindingContext = viewModel;\r
             countLabel.SetBinding(TextLabel.TextProperty, "TotalTracks");\r
+            countTitleLabel.SetBinding(TextLabel.TranslatableTextProperty, "TracksTitle");\r
             collectionView.BindingContext = viewModel;\r
             UpdateCollectionView();\r
             Add(listContainer);\r
index 54d63c3d6433c6bc8cd9ee617b1acb57c48e2195..b1d1fcbf872e2556bf67a7824b890877796f7d9f 100755 (executable)
@@ -27,7 +27,10 @@ namespace MusicPlayer.Views
                 ListItemLayout layout = new ListItemLayout();
                 layout.Icon.SetBinding(ImageView.ResourceUrlProperty, "AlbumArtPath");
                 layout.TitleLabel.SetBinding(TextLabel.TextProperty, "ArtistName");
-                layout.SubtitleLabel.SetBinding(TextLabel.TextProperty, "TotalCount");
+                layout.SubtitleLabel.SetBinding(TextLabel.TextProperty, "AlbumCount");
+                layout.SubtitleLabel2.SetBinding(TextLabel.TranslatableTextProperty, "AlbumTitle");
+                layout.SubtitleLabel3.SetBinding(TextLabel.TextProperty, "TrackCount");
+                layout.SubtitleLabel4.SetBinding(TextLabel.TranslatableTextProperty, "TrackTitle");
                 return layout;
             });
             collectionView.ScrollingDirection = ScrollableBase.Direction.Vertical;
index 99749ba1a3d16efdb50c30669e844644df69be1b..69eed42a58a2fdd44de68e4f86a1e88a7936f910 100755 (executable)
@@ -259,6 +259,7 @@ namespace MusicPlayer.Views
             if (type == DisposeTypes.Explicit)
             {
                 topView.Remove(countLabel);
+                topView.Remove(countTitleLabel);
                 topView.Remove(playAllWithShuffle);
                 topView.Remove(playAll);
 
@@ -274,6 +275,8 @@ namespace MusicPlayer.Views
 
                 countLabel.Dispose();
                 countLabel = null;
+                countTitleLabel.Dispose();
+                countTitleLabel = null;
                 playAllWithShuffle.Dispose();
                 playAllWithShuffle = null;
                 playAll.Dispose();
index 0ca017b9c70a19ab097551a2cf65c393e645a700..c8219c3e1f45e44eef9fba383000d0599e8c330e 100755 (executable)
@@ -11,11 +11,14 @@ namespace MusicPlayer.Views
     {\r
         private const int IconSize = 70;\r
         private const int SeperatorHeight = 2;\r
-\r
         private View itemSeperator;\r
         private View textView;\r
+        private View subtitleView;\r
         private TextLabel titleLabel;\r
         private TextLabel subtitleLabel;\r
+        private TextLabel subtitleLabel2;\r
+        private TextLabel subtitleLabel3;\r
+        private TextLabel subtitleLabel4;\r
         private ImageView icon;\r
         private Button playPauseIcon;\r
         private bool isAnimating = false;\r
@@ -106,18 +109,21 @@ namespace MusicPlayer.Views
             };\r
             textView.Add(titleLabel);\r
 \r
-            subtitleLabel = new TextLabel()\r
+            subtitleView = new View()\r
             {\r
-                WidthSpecification = LayoutParamPolicies.MatchParent,\r
+                BackgroundColor = Color.Transparent,\r
                 HeightSpecification = 36.SpToPx(),\r
-                PixelSize = 24.SpToPx(),\r
-                FontFamily = "BreezeSans",\r
-                HorizontalAlignment = HorizontalAlignment.Begin,\r
-                VerticalAlignment = VerticalAlignment.Center,\r
-                FontStyle = UIFontStyles.AllNormal,\r
-                Ellipsis = true,\r
+                WidthSpecification = LayoutParamPolicies.MatchParent,\r
+                Layout = new LinearLayout()\r
+                {\r
+                    LinearOrientation = LinearLayout.Orientation.Horizontal,\r
+                    HorizontalAlignment = HorizontalAlignment.Begin,\r
+                    VerticalAlignment = VerticalAlignment.Center,\r
+                    CellPadding = new Size2D(8, 0),\r
+                }\r
             };\r
-            textView.Add(subtitleLabel);\r
+            textView.Add(subtitleView);\r
+            AddSubtitlelabels();\r
             UpdateLabelColors();\r
 \r
             itemSeperator = new View()\r
@@ -131,6 +137,35 @@ namespace MusicPlayer.Views
 \r
             ThemeManager.ThemeChanged += OnThemeUpdated;\r
         }\r
+\r
+        void AddSubtitlelabels()\r
+        {\r
+            subtitleLabel = CreateSubtitleLabel();\r
+            subtitleLabel2 = CreateSubtitleLabel();\r
+            subtitleLabel3 = CreateSubtitleLabel();\r
+            subtitleLabel4 = CreateSubtitleLabel();\r
+            subtitleLabel2.WidthSpecification = 102.SpToPx();\r
+            subtitleLabel4.WidthSpecification = 102.SpToPx();\r
+            subtitleView.Add(subtitleLabel);\r
+            subtitleView.Add(subtitleLabel2);\r
+            subtitleView.Add(subtitleLabel3);\r
+            subtitleView.Add(subtitleLabel4);\r
+        }\r
+\r
+        private TextLabel CreateSubtitleLabel()\r
+        {\r
+            TextLabel Label = new TextLabel()\r
+            {\r
+                HeightSpecification = 36.SpToPx(),\r
+                PixelSize = 24.SpToPx(),\r
+                FontFamily = "BreezeSans",\r
+                HorizontalAlignment = HorizontalAlignment.Begin,\r
+                VerticalAlignment = VerticalAlignment.Center,\r
+                FontStyle = UIFontStyles.AllNormal,\r
+                Ellipsis = true,\r
+            };\r
+            return Label;\r
+        }\r
         public ImageView Icon\r
         {\r
             get => icon;\r
@@ -139,10 +174,23 @@ namespace MusicPlayer.Views
         {\r
             get => titleLabel;\r
         }\r
+\r
         public TextLabel SubtitleLabel\r
         {\r
             get => subtitleLabel;\r
         }\r
+        public TextLabel SubtitleLabel2\r
+        {\r
+            get => subtitleLabel2;\r
+        }\r
+        public TextLabel SubtitleLabel3\r
+        {\r
+            get => subtitleLabel3;\r
+        }\r
+        public TextLabel SubtitleLabel4\r
+        {\r
+            get => subtitleLabel4;\r
+        }\r
 \r
         private bool isPlaying = false;\r
 \r
@@ -168,6 +216,7 @@ namespace MusicPlayer.Views
             }\r
             if (type == DisposeTypes.Explicit)\r
             {\r
+                ThemeManager.ThemeChanged -= OnThemeUpdated;\r
                 Remove(itemSeperator);\r
                 itemSeperator?.Dispose();\r
                 itemSeperator = null;\r
@@ -182,10 +231,26 @@ namespace MusicPlayer.Views
                 titleLabel?.Dispose();\r
                 titleLabel = null;\r
 \r
-                textView.Remove(subtitleLabel);\r
+                subtitleView.Remove(subtitleLabel);\r
                 subtitleLabel?.Dispose();\r
                 subtitleLabel = null;\r
 \r
+                subtitleView.Remove(subtitleLabel2);\r
+                subtitleLabel2?.Dispose();\r
+                subtitleLabel2 = null;\r
+\r
+                subtitleView.Remove(subtitleLabel3);\r
+                subtitleLabel3?.Dispose();\r
+                subtitleLabel3 = null;\r
+\r
+                subtitleView.Remove(subtitleLabel4);\r
+                subtitleLabel4?.Dispose();\r
+                subtitleLabel4 = null;\r
+\r
+                textView.Remove(subtitleView);\r
+                subtitleView?.Dispose();\r
+                subtitleView = null;\r
+\r
                 Remove(textView);\r
                 textView?.Dispose();\r
                 textView = null;\r
@@ -202,11 +267,23 @@ namespace MusicPlayer.Views
                 {\r
                     titleLabel.TextColor = UIColors.HEX1473E6;\r
                 }\r
-                if(subtitleLabel != null)\r
+                if (subtitleLabel != null)\r
                 {\r
                     subtitleLabel.TextColor = UIColors.HEX1473E6;\r
                 }\r
-                if(isAnimationRequired && isAnimating == false)\r
+                if (subtitleLabel2 != null)\r
+                {\r
+                    subtitleLabel2.TextColor = UIColors.HEX1473E6;\r
+                }\r
+                if (subtitleLabel3 != null)\r
+                {\r
+                    subtitleLabel3.TextColor = UIColors.HEX1473E6;\r
+                }\r
+                if (subtitleLabel4 != null)\r
+                {\r
+                    subtitleLabel4.TextColor = UIColors.HEX1473E6;\r
+                }\r
+                if (isAnimationRequired && isAnimating == false)\r
                 {\r
                     isAnimating = AddAnimation();\r
                 }\r
@@ -258,10 +335,22 @@ namespace MusicPlayer.Views
                 {\r
                     titleLabel.TextColor = UIColors.HEX001447;\r
                 }\r
-                if(subtitleLabel != null)\r
+                if (subtitleLabel != null)\r
                 {\r
                     subtitleLabel.TextColor = UIColors.HEX001447;\r
                 }\r
+                if (subtitleLabel2 != null)\r
+                {\r
+                    subtitleLabel2.TextColor = UIColors.HEX001447;\r
+                }\r
+                if (subtitleLabel3 != null)\r
+                {\r
+                    subtitleLabel3.TextColor = UIColors.HEX001447;\r
+                }\r
+                if (subtitleLabel4 != null)\r
+                {\r
+                    subtitleLabel4.TextColor = UIColors.HEX001447;\r
+                }\r
             }\r
             else if(currentPlatformThemeId.Equals(AppConstants.DarkPlatformThemeId))\r
             {\r
@@ -269,10 +358,22 @@ namespace MusicPlayer.Views
                 {\r
                     titleLabel.TextColor = Color.White;\r
                 }\r
-                if(subtitleLabel != null)\r
+                if (subtitleLabel != null)\r
                 {\r
                     subtitleLabel.TextColor = Color.White;\r
                 }\r
+                if (subtitleLabel2 != null)\r
+                {\r
+                    subtitleLabel2.TextColor = Color.White;\r
+                }\r
+                if (subtitleLabel3 != null)\r
+                {\r
+                    subtitleLabel3.TextColor = Color.White;\r
+                }\r
+                if (subtitleLabel4 != null)\r
+                {\r
+                    subtitleLabel4.TextColor = Color.White;\r
+                }\r
             }\r
         }\r
 \r
index 7d904d1ef3200271054893bb53e2a02e64076983..d572031d3ea6ea497eecbcb26359ed773f32bac8 100755 (executable)
@@ -31,6 +31,7 @@ namespace MusicPlayer.Views
                 layout.Icon.SetBinding(ImageView.ResourceUrlProperty, "PlaylistThumbnailPath");
                 layout.TitleLabel.SetBinding(TextLabel.TextProperty, "PlaylistName");
                 layout.SubtitleLabel.SetBinding(TextLabel.TextProperty, "PlaylistTrackCount");
+                layout.SubtitleLabel2.SetBinding(TextLabel.TranslatableTextProperty, "PlaylistTrackTitle");
                 return layout;
             });
             collectionView.SelectionChanged += OnPlaylistSelectionChange;
index c12a9cb6c0751a821f3557c0ee432a312e5f2b64..5a97e10f6c96833bcf61fb1006359d52677e9cf5 100755 (executable)
@@ -13,8 +13,12 @@ namespace MusicPlayer.Views
         private CheckBox checkBox;
         private View itemSeperator;
         private View textView;
+        private View subtitleView;
         private TextLabel titleLabel;
         private TextLabel subtitleLabel;
+        private TextLabel subtitleLabel2;
+        private TextLabel subtitleLabel3;
+        private TextLabel subtitleLabel4;
         private ImageView icon;
 
         public SelectListLayout() : base()
@@ -81,19 +85,21 @@ namespace MusicPlayer.Views
             };
             textView.Add(titleLabel);
 
-            subtitleLabel = new TextLabel()
+            subtitleView = new View()
             {
-                StyleName = "ItemLabel",
-                WidthSpecification = LayoutParamPolicies.MatchParent,
+                BackgroundColor = Color.Transparent,
                 HeightSpecification = 36.SpToPx(),
-                PixelSize = 24.SpToPx(),
-                FontFamily = "BreezeSans",
-                HorizontalAlignment = HorizontalAlignment.Begin,
-                VerticalAlignment = VerticalAlignment.Center,
-                FontStyle = UIFontStyles.AllNormal,
-                Ellipsis = true,
+                WidthSpecification = LayoutParamPolicies.MatchParent,
+                Layout = new LinearLayout()
+                {
+                    LinearOrientation = LinearLayout.Orientation.Horizontal,
+                    HorizontalAlignment = HorizontalAlignment.Begin,
+                    VerticalAlignment = VerticalAlignment.Center,
+                    CellPadding = new Size2D(8, 0),
+                }
             };
-            textView.Add(subtitleLabel);
+            textView.Add(subtitleView);
+            AddSubtitlelabels();
 
             itemSeperator = new View()
             {
@@ -106,6 +112,35 @@ namespace MusicPlayer.Views
             IsSelected = false;
         }
 
+        void AddSubtitlelabels()
+        {
+            subtitleLabel = CreateSubtitleLabel();
+            subtitleLabel2 = CreateSubtitleLabel();
+            subtitleLabel3 = CreateSubtitleLabel();
+            subtitleLabel4 = CreateSubtitleLabel();
+            subtitleLabel2.WidthSpecification = 102.SpToPx();
+            subtitleLabel4.WidthSpecification = 102.SpToPx();
+            subtitleView.Add(subtitleLabel);
+            subtitleView.Add(subtitleLabel2);
+            subtitleView.Add(subtitleLabel3);
+            subtitleView.Add(subtitleLabel4);
+        }
+
+        private TextLabel CreateSubtitleLabel()
+        {
+            TextLabel Label = new TextLabel()
+            {
+                HeightSpecification = 36.SpToPx(),
+                PixelSize = 24.SpToPx(),
+                FontFamily = "BreezeSans",
+                HorizontalAlignment = HorizontalAlignment.Begin,
+                VerticalAlignment = VerticalAlignment.Center,
+                FontStyle = UIFontStyles.AllNormal,
+                Ellipsis = true,
+            };
+            return Label;
+        }
+
         public ImageView Icon
         {
             get => icon;
@@ -119,6 +154,19 @@ namespace MusicPlayer.Views
             get => subtitleLabel;
         }
 
+        public TextLabel SubtitleLabel2
+        {
+            get => subtitleLabel2;
+        }
+
+        public TextLabel SubtitleLabel3
+        {
+            get => subtitleLabel3;
+        }
+        public TextLabel SubtitleLabel4
+        {
+            get => subtitleLabel4;
+        }
         public CheckBox Checkbox
         {
             get => checkBox;
@@ -148,10 +196,26 @@ namespace MusicPlayer.Views
                 titleLabel?.Dispose();
                 titleLabel = null;
 
-                textView.Remove(subtitleLabel);
+                subtitleView.Remove(subtitleLabel);
                 subtitleLabel?.Dispose();
                 subtitleLabel = null;
 
+                subtitleView.Remove(subtitleLabel2);
+                subtitleLabel2?.Dispose();
+                subtitleLabel2 = null;
+
+                subtitleView.Remove(subtitleLabel3);
+                subtitleLabel3?.Dispose();
+                subtitleLabel3 = null;
+
+                subtitleView.Remove(subtitleLabel4);
+                subtitleLabel4?.Dispose();
+                subtitleLabel4 = null;
+
+                textView.Remove(subtitleView);
+                subtitleView?.Dispose();
+                subtitleView = null;
+
                 Remove(textView);
                 textView?.Dispose();
                 textView = null;
index ef22bebaeac30ddbfb84e060d86963e03186be49..6f5ac700d1eef6368c0a9defd3bda0c6bf7e5e5f 100755 (executable)
@@ -23,6 +23,7 @@ namespace MusicPlayer.Views
         private View topView;
         private View selAllView;
         private TextLabel selectedCountLabel;
+        private TextLabel selectedCountLabel2;
         private CheckBox selAllButton;
         private Button cancelButton;
         private Button doneButton;
@@ -105,15 +106,29 @@ namespace MusicPlayer.Views
                 HorizontalAlignment = HorizontalAlignment.Begin,
                 VerticalAlignment = VerticalAlignment.Center,
                 Ellipsis = true,
+                Margin = new Extents(0, 4, 0, 0).SpToPx(),
             };
             selectedCountLabel.BindingContext = viewModel;
             selectedCountLabel.SetBinding(TextLabel.TextProperty, "SelectedCount");
             topView.Add(selectedCountLabel);
 
-            RelativeLayout.SetLeftTarget(selectedCountLabel, topView);
-            RelativeLayout.SetLeftRelativeOffset(selectedCountLabel, 0.0f);
-            RelativeLayout.SetFillHorizontal(selectedCountLabel, true);
-            RelativeLayout.SetVerticalAlignment(selectedCountLabel, RelativeLayout.Alignment.Center);
+            selectedCountLabel2 = new TextLabel()
+            {
+                StyleName = "TitleText",
+                HeightSpecification = 48.SpToPx(),
+                PixelSize = 32.SpToPx(),
+                FontFamily = "BreezeSans",
+                HorizontalAlignment = HorizontalAlignment.Begin,
+                VerticalAlignment = VerticalAlignment.Center,
+                Ellipsis = true,
+                Margin = new Extents(4, 0, 0, 0).SpToPx(),
+            };
+            selectedCountLabel2.BindingContext = viewModel;
+            selectedCountLabel2.SetBinding(TextLabel.TranslatableTextProperty, "SelectedTitle");
+            topView.Add(selectedCountLabel2);
+
+            RelativeLayout.SetLeftTarget(selectedCountLabel2, selectedCountLabel);
+            RelativeLayout.SetLeftRelativeOffset(selectedCountLabel2, 1.0f);
         }
 
         private void AddButtons()
@@ -347,7 +362,10 @@ namespace MusicPlayer.Views
                     SelectListLayout layout = new SelectListLayout();
                     layout.Icon.SetBinding(ImageView.ResourceUrlProperty, "AlbumArtPath");
                     layout.TitleLabel.SetBinding(TextLabel.TextProperty, "ArtistName");
-                    layout.SubtitleLabel.SetBinding(TextLabel.TextProperty, "TotalCount");
+                    layout.SubtitleLabel.SetBinding(TextLabel.TextProperty, "AlbumCount");
+                    layout.SubtitleLabel2.SetBinding(TextLabel.TranslatableTextProperty, "AlbumTitle");
+                    layout.SubtitleLabel3.SetBinding(TextLabel.TextProperty, "TrackCount");
+                    layout.SubtitleLabel4.SetBinding(TextLabel.TranslatableTextProperty, "TrackTitle");
                     layout.Checkbox.SetBinding(Button.IsSelectedProperty, "IsSelected");
                     return layout;
                 });
@@ -361,6 +379,7 @@ namespace MusicPlayer.Views
                     layout.Icon.SetBinding(ImageView.ResourceUrlProperty, "PlaylistThumbnailPath");
                     layout.TitleLabel.SetBinding(TextLabel.TextProperty, "PlaylistName");
                     layout.SubtitleLabel.SetBinding(TextLabel.TextProperty, "PlaylistTrackCount");
+                    layout.SubtitleLabel2.SetBinding(TextLabel.TranslatableTextProperty, "PlaylistTrackTitle");
                     layout.Checkbox.SetBinding(Button.IsSelectedProperty, "PlaylistIsSelected");
                     return layout;
                 });
@@ -374,7 +393,6 @@ namespace MusicPlayer.Views
         {
             List<object> oldSel = new List<object>(ev.PreviousSelection);
             List<object> newSel = new List<object>(ev.CurrentSelection);
-
             foreach (object item in oldSel)
             {
                 if (item != null && !newSel.Contains(item))
@@ -468,7 +486,6 @@ namespace MusicPlayer.Views
                     }
                 }
             }
-
             viewModel.SelectedCount = itemCount.ToString();
             doneButton.IsEnabled = itemCount != 0;
             Tizen.Log.Debug(AppConstants.LogTag, "Total tracks selected " + selectedItemList.Count);
index a1144a5554024c373722226873af799f328cf898..6e34808da883a85ecd8fd8ed39acc8f42d294871 100755 (executable)
Binary files a/packaging/org.tizen.MusicPlayer-1.0.0.tpk and b/packaging/org.tizen.MusicPlayer-1.0.0.tpk differ