From: aman.jeph Date: Mon, 18 Apr 2022 12:52:17 +0000 (+0530) Subject: Fixing image view for scale in style file. X-Git-Tag: submit/tizen/20220509.153423~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=274ba426913e7df016be5a20c5dd62693e456501;p=profile%2Fiot%2Fapps%2Fdotnet%2Fmusic-player.git Fixing image view for scale in style file. Refactor PlaylistSelectorView for better scalability. Fix dispose function for item layout classes. Change-Id: Id311be6230a8ad7bf8afd80bf4131940e6e73c16 Signed-off-by: aman.jeph --- diff --git a/music-player/Views/ListItemLayout.cs b/music-player/Views/ListItemLayout.cs index 22e61a1..24f4f2f 100755 --- a/music-player/Views/ListItemLayout.cs +++ b/music-player/Views/ListItemLayout.cs @@ -53,12 +53,12 @@ namespace MusicPlayer.Views }, defaultValueCreator: (bindable) => ((ListItemLayout)bindable).playingStatus); - public ListItemLayout(bool animationRequired = false, int width = 1792, int height = 108) : base() + public ListItemLayout(bool animationRequired = false) : base() { OnInitialize(); AnimationRequired = animationRequired; WidthSpecification = LayoutParamPolicies.MatchParent; - HeightSpecification = height.SpToPx(); + HeightSpecification = 108.SpToPx(); BackgroundColor = Color.Transparent; Layout = new RelativeLayout() { @@ -169,22 +169,27 @@ defaultValueCreator: (bindable) => ((ListItemLayout)bindable).playingStatus); } if (type == DisposeTypes.Explicit) { - base.Remove(itemSeperator); + Remove(itemSeperator); itemSeperator?.Dispose(); itemSeperator = null; RemoveAnimation(); - base.Remove(icon); + RemovePlayingStatus(); + Remove(icon); icon?.Dispose(); icon = null; - base.Remove(titleLabel); + textView.Remove(titleLabel); titleLabel?.Dispose(); titleLabel = null; - base.Remove(subtitleLabel); + textView.Remove(subtitleLabel); subtitleLabel?.Dispose(); subtitleLabel = null; + + Remove(textView); + textView?.Dispose(); + textView = null; } base.Dispose(type); @@ -278,7 +283,10 @@ defaultValueCreator: (bindable) => ((ListItemLayout)bindable).playingStatus); { return false; } - LottieAnimationView lottieAnimationView = new LottieAnimationView(); + LottieAnimationView lottieAnimationView = new LottieAnimationView() + { + Size2D = new Size2D(64, 64).SpToPx(), + }; if(lottieAnimationView == null) { return false; @@ -291,7 +299,7 @@ defaultValueCreator: (bindable) => ((ListItemLayout)bindable).playingStatus); } private void RemoveAnimation() { - if(icon != null) + if(icon != null && icon.ChildCount > 0) { View child = icon.GetChildAt(0); if (child != null && child is LottieAnimationView) @@ -314,14 +322,17 @@ defaultValueCreator: (bindable) => ((ListItemLayout)bindable).playingStatus); { Icon = new ImageViewStyle() { + Size = new Size(IconSize, IconSize).SpToPx(), ResourceUrl = Resources.GetImagePath() + "play_icon.png", }, IsEnabled = true, IsSelectable = true, }; - playPauseIcon = new Button(buttonStyle); - playPauseIcon.WidthSpecification = IconSize; - playPauseIcon.HeightSpecification = IconSize; + playPauseIcon = new Button(buttonStyle) + { + WidthSpecification = IconSize.SpToPx(), + HeightSpecification = IconSize.SpToPx() + }; playPauseIcon.Clicked += (object sender, ClickedEventArgs e) => { PlaybackHelper.Instance.ChangePlayingStatus(); @@ -332,7 +343,7 @@ defaultValueCreator: (bindable) => ((ListItemLayout)bindable).playingStatus); private void RemovePlayingStatus() { - if (icon != null) + if (icon != null && icon.ChildCount > 0) { View child = icon.GetChildAt(0); if (child != null && child is Button) diff --git a/music-player/Views/LyricsView.cs b/music-player/Views/LyricsView.cs index 4b9b53c..d9602a2 100755 --- a/music-player/Views/LyricsView.cs +++ b/music-player/Views/LyricsView.cs @@ -27,14 +27,14 @@ namespace MusicPlayer.Views { this.lyricsViewModel = lyricsViewModel; BindingContext = lyricsViewModel.lyricsModel; - WidthSpecification = LayoutParamPolicies.MatchParent; - HeightSpecification = LayoutParamPolicies.MatchParent; + WidthSpecification = 784.SpToPx(); + HeightSpecification = 784.SpToPx(); Layout = new FlexLayout() { Direction = FlexLayout.FlexDirection.Column, Alignment = FlexLayout.AlignmentType.Center, Justification = FlexLayout.FlexJustification.Center, - Margin = new Extents(24, 24, 0, 46).SpToPx(), + Margin = new Extents(24, 24, 24, 46).SpToPx(), }; isAnimating = false; AddThumbnail(); diff --git a/music-player/Views/MiniPlayer.cs b/music-player/Views/MiniPlayer.cs index b6b861d..3c33449 100755 --- a/music-player/Views/MiniPlayer.cs +++ b/music-player/Views/MiniPlayer.cs @@ -213,6 +213,7 @@ namespace MusicPlayer.Views playButton = new MultiStateButton() { Size2D = new Size2D(48, 48).SpToPx(), + IconSize = new Size(48, 48).SpToPx(), BackgroundColor = Color.Transparent, IconResources = new Dictionary>() { diff --git a/music-player/Views/PlayerView.cs b/music-player/Views/PlayerView.cs index aed34b0..7a5bfc5 100755 --- a/music-player/Views/PlayerView.cs +++ b/music-player/Views/PlayerView.cs @@ -18,7 +18,7 @@ namespace MusicPlayer.Views AlbumArt, TrackList, } - private const int IconSize = 48; + private const int IconButtonSize = 48; private const int ControlViewHeightLandscape = 386; private const int ControlViewHeightPortrait = 438; private const int TitleLabelHeight = 48; @@ -324,7 +324,7 @@ namespace MusicPlayer.Views ThemeChangeSensitive = true, WidthSpecification = LayoutParamPolicies.MatchParent, HeightSpecification = 48.SpToPx(), - PixelSize = 40.SpToPx(), + PixelSize = 36.SpToPx(), FontFamily = "BreezeSans", FontStyle = UIFontStyles.AllNormal, Text = "Delete", @@ -482,7 +482,8 @@ namespace MusicPlayer.Views { shuffleButton = new MultiStateButton() { - Size2D = new Size2D(IconSize, IconSize).SpToPx(), + Size2D = new Size2D(IconButtonSize, IconButtonSize).SpToPx(), + IconSize = new Tizen.NUI.Size(IconButtonSize, IconButtonSize).SpToPx(), Margin = new Extents(0, 40, 0, 0).SpToPx(), IconResources = new Dictionary>() { @@ -558,7 +559,8 @@ namespace MusicPlayer.Views { playButton = new MultiStateButton() { - Size2D = new Size2D(IconSize, IconSize).SpToPx(), + Size2D = new Size2D(IconButtonSize, IconButtonSize).SpToPx(), + IconSize = new Tizen.NUI.Size(IconButtonSize, IconButtonSize).SpToPx(), BackgroundColor = Color.Transparent, IconResources = new Dictionary>() { @@ -642,7 +644,8 @@ namespace MusicPlayer.Views { repeatButton = new MultiStateButton() { - Size2D = new Size2D(IconSize, IconSize).SpToPx(), + Size2D = new Size2D(IconButtonSize, IconButtonSize).SpToPx(), + IconSize = new Tizen.NUI.Size(IconButtonSize, IconButtonSize).SpToPx(), Margin = new Extents(40, 0, 0, 0).SpToPx(), IconResources = new Dictionary>() { @@ -975,7 +978,8 @@ namespace MusicPlayer.Views favouriteButton = new MultiStateButton() { - Size2D = new Size2D(IconSize, IconSize).SpToPx(), + Size2D = new Size2D(IconButtonSize, IconButtonSize).SpToPx(), + IconSize = new Tizen.NUI.Size(IconButtonSize, IconButtonSize).SpToPx(), IconResources = new Dictionary>() { { diff --git a/music-player/Views/PlayingListView.cs b/music-player/Views/PlayingListView.cs index 4e56f5e..aee643d 100755 --- a/music-player/Views/PlayingListView.cs +++ b/music-player/Views/PlayingListView.cs @@ -26,7 +26,7 @@ namespace MusicPlayer.Views ItemsLayouter = new LinearLayouter(), ItemTemplate = new DataTemplate(() => { - ListItemLayout layout = new ListItemLayout(true, 832, 108); + ListItemLayout layout = new ListItemLayout(true); layout.Icon.SetBinding(ImageView.ResourceUrlProperty, "ThumbnailPath"); layout.TitleLabel.SetBinding(TextLabel.TextProperty, "TrackTitle"); layout.SubtitleLabel.SetBinding(TextLabel.TextProperty, "ArtistName"); diff --git a/music-player/Views/PlaylistSelectorView.cs b/music-player/Views/PlaylistSelectorView.cs index 4221781..d0d0bda 100755 --- a/music-player/Views/PlaylistSelectorView.cs +++ b/music-player/Views/PlaylistSelectorView.cs @@ -1,14 +1,11 @@ using System; using System.Collections.Generic; -using Tizen.Content.MediaContent; using MusicPlayer.ViewModels; using Tizen.NUI.Components; using Tizen.NUI.BaseComponents; using Tizen.NUI; using Tizen.NUI.Binding; using MusicPlayer.Common; -using MusicPlayer.Models; -using MusicPlayer.Core; namespace MusicPlayer.Views { @@ -31,7 +28,9 @@ namespace MusicPlayer.Views private TextLabel noListText; private TextLabel underText; private CollectionView collectionView; + private View selectPlaylistActionArea; private Button selectPlaylistCancelButton; + private View createPlaylistButtonArea; private Button createPlaylistCancelButton; private Button createPlaylistCreateButton; private AlertDialog selectPlaylistDialog; @@ -45,23 +44,47 @@ namespace MusicPlayer.Views public PlaylistSelectorView(PlaylistSelectorViewModel viewModel) { this.viewModel = viewModel; + bool needShrinkedSize = viewModel.ListViewModel.Count <= 1; AddSelectPlaylistContentArea(); AddSelectPlaylistCancelButton(); selectPlaylistDialog = new AlertDialog() { - Size2D = new Size2D((DeviceInfo.IsPortrait ? 1016 : 1184), 660).SpToPx(), - Title = "Add to playlist", + WidthSpecification = (DeviceInfo.IsPortrait ? 1016 : 1184).SpToPx(), + HeightSpecification = (needShrinkedSize ? 544 : 652).SpToPx(), + Layout = new LinearLayout() + { + Padding = new Extents(80, 80, 40, 40).SpToPx(), + Margin = new Extents(32, 32, 0, 0).SpToPx(), + LinearOrientation = LinearLayout.Orientation.Vertical, + HorizontalAlignment = HorizontalAlignment.Begin, + VerticalAlignment = VerticalAlignment.Top, + }, + TitleContent = CreateAlertDialogTitle("Add to playlist"), Content = selectPlaylistContentArea, - Actions = new List { selectPlaylistCancelButton }, - Padding = new Extents(0, 0, 0, 0).SpToPx(), - Margin = new Extents(32, 32, 0, 0).SpToPx(), + ActionContent = selectPlaylistActionArea, }; - TextLabel textLabel = (TextLabel)selectPlaylistDialog.TitleContent; - textLabel.FontStyle = UIFontStyles.AllNormal; Window.Instance.Add(selectPlaylistDialog); selectPlaylistDialog.BackKeyPressed += OnBackKeyPressed; } + private TextLabel CreateAlertDialogTitle(string titleText) + { + TextLabel titleLabel = new TextLabel() + { + Name = "AlertDialogTitle", + StyleName = "LabelText", + ThemeChangeSensitive = true, + PixelSize = 40.SpToPx(), + FontFamily = "BreezeSans", + FontStyle = UIFontStyles.AllNormal, + Text = titleText, + WidthSpecification = LayoutParamPolicies.MatchParent, + HorizontalAlignment = HorizontalAlignment.Center, + VerticalAlignment = VerticalAlignment.Center, + }; + return titleLabel; + } + private void OnBackKeyPressed(object sender, EventArgs e) { OnBackKey(); @@ -72,13 +95,14 @@ namespace MusicPlayer.Views selectPlaylistContentArea = new View() { WidthSpecification = LayoutParamPolicies.MatchParent, - HeightSpecification = 340.SpToPx(), + HeightSpecification = (viewModel.ListViewModel.Count <= 1 ? 216 : 324).SpToPx(), BackgroundColor = Color.Transparent, Layout = new FlexLayout() { Direction = FlexLayout.FlexDirection.Column, ItemsAlignment = FlexLayout.AlignmentType.FlexStart, Justification = FlexLayout.FlexJustification.FlexStart, + Margin = new Extents(0, 0, 40, 0).SpToPx(), }, }; AddCreatePlayListButton(); @@ -97,10 +121,10 @@ namespace MusicPlayer.Views WidthSpecification = LayoutParamPolicies.MatchParent, HeightSpecification = 108.SpToPx(), TextAlignment = HorizontalAlignment.Begin, - Padding = (DeviceInfo.IsPortrait ? new Extents(80, 80, 0, 0) : new Extents(64, 64, 0, 0)).SpToPx(), IsEnabled = true, IsSelectable = false, - ItemAlignment = LinearLayout.Alignment.CenterVertical, + ItemHorizontalAlignment = HorizontalAlignment.Begin, + ItemVerticalAlignment = VerticalAlignment.Center, }; createNewPlaylistButton.TextAlignment = HorizontalAlignment.Begin; createNewPlaylistButton.BindingContext = viewModel; @@ -111,7 +135,6 @@ namespace MusicPlayer.Views WidthSpecification = LayoutParamPolicies.MatchParent, HeightSpecification = 2.SpToPx(), BackgroundColor = UIColors.ItemSeperator, - Margin = (DeviceInfo.IsPortrait ? new Extents(80, 80, 0, 0) : new Extents(64, 64, 0, 0)).SpToPx(), }; selectPlaylistContentArea.Add(itemSeperator); createNewPlaylistButton.Clicked += CreateNewPlaylistButtonClicked; @@ -124,15 +147,20 @@ namespace MusicPlayer.Views AddCreatePlaylistButtons(); createPlaylistDialog = new AlertDialog() { - Size2D = new Size2D((DeviceInfo.IsPortrait ? 1016 : 1184), 465).SpToPx(), - Title = "Create playlist", + WidthSpecification = (DeviceInfo.IsPortrait ? 1016 : 1184).SpToPx(), + HeightSpecification = 465.SpToPx(), + Layout = new LinearLayout() + { + Padding = new Extents(80, 80, 40, 40).SpToPx(), + Margin = new Extents(32, 32, 0, 0).SpToPx(), + LinearOrientation = LinearLayout.Orientation.Vertical, + HorizontalAlignment = HorizontalAlignment.Begin, + VerticalAlignment = VerticalAlignment.Top, + }, + TitleContent = CreateAlertDialogTitle("Create playlist"), Content = createPlaylistContentArea, - Actions = new List { createPlaylistCancelButton, createPlaylistCreateButton }, - Padding = new Extents(0, 0, 0, 0).SpToPx(), - Margin = new Extents(32, 32, 0, 0).SpToPx(), + ActionContent = createPlaylistButtonArea, }; - TextLabel textLabel = (TextLabel)selectPlaylistDialog.TitleContent; - textLabel.FontStyle = UIFontStyles.AllNormal; Window.Instance.Add(createPlaylistDialog); createPlaylistDialog.BackKeyPressed += OnPlaylistCreateDialogBackKey; } @@ -148,10 +176,10 @@ namespace MusicPlayer.Views { ThemeChangeSensitive = true, StyleName = "ListBackground", - Size2D = new Size2D((DeviceInfo.IsPortrait ? 1016 : 1184), 108).SpToPx(), + WidthSpecification = LayoutParamPolicies.MatchParent, + HeightSpecification = 108.SpToPx(), ItemsLayouter = new LinearLayouter(), ScrollingDirection = ScrollableBase.Direction.Vertical, - HeightSpecification = LayoutParamPolicies.WrapContent, SelectionMode = ItemSelectionMode.Single, }; collectionView.ScrollDragStarted += (object o, ScrollEventArgs e) => @@ -231,17 +259,30 @@ namespace MusicPlayer.Views VerticalAlignment = VerticalAlignment.Center, FontFamily = "BreezeSans", FontStyle = UIFontStyles.NormalLight, - Padding = (DeviceInfo.IsPortrait ? new Extents(80, 80, 0, 0) : new Extents(64, 64, 0, 0)).SpToPx(), }; selectPlaylistContentArea.Add(noListText); } private void AddSelectPlaylistCancelButton() { + selectPlaylistActionArea = new View() + { + BackgroundColor = Color.Transparent, + HeightSpecification = 96.SpToPx(), + WidthSpecification = LayoutParamPolicies.MatchParent, + Layout = new LinearLayout() + { + Margin = new Extents(0, 0, 64, 0).SpToPx(), + HorizontalAlignment = HorizontalAlignment.Center, + VerticalAlignment = VerticalAlignment.Center + } + }; + selectPlaylistCancelButton = new Button() { Size2D = new Size2D(336, 96).SpToPx(), Text = "Cancel", }; + selectPlaylistActionArea.Add(selectPlaylistCancelButton); selectPlaylistCancelButton.TextLabel.FontStyle = UIFontStyles.AllNormal; selectPlaylistCancelButton.IsSelectable = true; selectPlaylistCancelButton.Clicked += SelectPlaylistCancelButtonClicked; @@ -264,14 +305,14 @@ namespace MusicPlayer.Views createPlaylistContentArea = new View() { WidthSpecification = LayoutParamPolicies.MatchParent, - HeightSpecification = 169.SpToPx(), + HeightSpecification = 146.SpToPx(), BackgroundColor = Color.Transparent, Layout = new FlexLayout() { Direction = FlexLayout.FlexDirection.Column, ItemsAlignment = FlexLayout.AlignmentType.FlexStart, Justification = FlexLayout.FlexJustification.FlexStart, - Padding = (DeviceInfo.IsPortrait ? new Extents(80, 80, 0, 0) : new Extents(64, 64, 0, 0)).SpToPx(), + Margin = new Extents(0, 0, 40, 0).SpToPx(), }, }; TextLabel textLabel = new TextLabel() @@ -294,7 +335,7 @@ namespace MusicPlayer.Views { BackgroundColor = UIColors.ItemSeperator, WidthSpecification = LayoutParamPolicies.MatchParent, - HeightSpecification = 1.SpToPx(), + HeightSpecification = 2.SpToPx(), }; createPlaylistContentArea.Add(itemSeperator); underText = new TextLabel() @@ -317,7 +358,8 @@ namespace MusicPlayer.Views { inputArea = new View() { - Size2D = new Size2D((DeviceInfo.IsPortrait ? 856 : 1024), 48).SpToPx(), + WidthSpecification = LayoutParamPolicies.MatchParent, + HeightSpecification = 48.SpToPx(), Layout = new FlexLayout() { Direction = FlexLayout.FlexDirection.Row, @@ -381,6 +423,17 @@ namespace MusicPlayer.Views private void AddCreatePlaylistButtons() { + createPlaylistButtonArea = new View() + { + BackgroundColor = Color.Transparent, + HeightSpecification = 96.SpToPx(), + WidthSpecification = LayoutParamPolicies.MatchParent, + Layout = new RelativeLayout() + { + Margin = new Extents(0, 0, 54, 0).SpToPx(), + } + }; + createPlaylistCancelButton = new Button("CancelButton") { ThemeChangeSensitive = true, @@ -388,6 +441,10 @@ namespace MusicPlayer.Views createPlaylistCancelButton.TextLabel.FontStyle = UIFontStyles.AllNormal; createPlaylistCancelButton.IsSelectable = true; createPlaylistCancelButton.Clicked += CreatePlaylistCancelButtonClicked; + createPlaylistButtonArea.Add(createPlaylistCancelButton); + RelativeLayout.SetLeftRelativeOffset(createPlaylistCancelButton, 0.0f); + RelativeLayout.SetHorizontalAlignment(createPlaylistCancelButton, RelativeLayout.Alignment.Start); + RelativeLayout.SetVerticalAlignment(createPlaylistCancelButton, RelativeLayout.Alignment.Start); createPlaylistCreateButton = new Button() { @@ -397,6 +454,10 @@ namespace MusicPlayer.Views createPlaylistCreateButton.TextLabel.FontStyle = UIFontStyles.AllNormal; createPlaylistCreateButton.IsSelectable = true; createPlaylistCreateButton.Clicked += CreatePlaylistCreateButtonClicked; + createPlaylistButtonArea.Add(createPlaylistCreateButton); + RelativeLayout.SetRightRelativeOffset(createPlaylistCreateButton, 1.0f); + RelativeLayout.SetHorizontalAlignment(createPlaylistCreateButton, RelativeLayout.Alignment.End); + RelativeLayout.SetVerticalAlignment(createPlaylistCreateButton, RelativeLayout.Alignment.Start); } private void OnCreateDialogBackKeyPressed() @@ -457,13 +518,15 @@ namespace MusicPlayer.Views } inputArea = null; underText = null; - createPlaylistDialog.Dispose(); - createPlaylistDialog = null; - createPlaylistContentArea = null; + createPlaylistButtonArea.Remove(createPlaylistCancelButton); createPlaylistCancelButton?.Dispose(); createPlaylistCancelButton = null; + createPlaylistButtonArea.Remove(createPlaylistCreateButton); createPlaylistCreateButton?.Dispose(); createPlaylistCreateButton = null; + createPlaylistDialog.Dispose(); + createPlaylistDialog = null; + createPlaylistContentArea = null; } protected override void Dispose(DisposeTypes type) @@ -495,12 +558,13 @@ namespace MusicPlayer.Views collectionView = null; noListText = null; + selectPlaylistActionArea.Remove(selectPlaylistCancelButton); + selectPlaylistCancelButton?.Dispose(); + selectPlaylistCancelButton = null; + selectPlaylistDialog?.Dispose(); selectPlaylistDialog = null; selectPlaylistContentArea = null; - - selectPlaylistCancelButton?.Dispose(); - selectPlaylistCancelButton = null; } base.Dispose(type); diff --git a/music-player/Views/PlaylistView.cs b/music-player/Views/PlaylistView.cs index 920afb3..7a8aee8 100755 --- a/music-player/Views/PlaylistView.cs +++ b/music-player/Views/PlaylistView.cs @@ -59,7 +59,7 @@ namespace MusicPlayer.Views Margin = new Extents(40, 0, 0, 0).SpToPx(), }; playlistCreateButton.BindingContext = viewModel; - playlistCreateButton.SetBinding(Button.IsEnabledProperty, "CanCreatePlaylist"); + playlistCreateButton.SetBinding(IsEnabledProperty, "CanCreatePlaylist"); titleView.Add(playlistCreateButton); RelativeLayout.SetLeftRelativeOffset(playlistCreateButton, 1.0f); RelativeLayout.SetRightRelativeOffset(playlistCreateButton, 1.0f); @@ -338,9 +338,7 @@ namespace MusicPlayer.Views { ThemeChangeSensitive = true, StyleName = "Dialogs", - //FixMe : Here WidthSpecification in portrait mode should be 1016 but that cause the - // AlertDialog to fill Full width of window but keeping width 952 is showing correclty - WidthSpecification = (DeviceInfo.IsPortrait ? 952 : 1184).SpToPx(), + WidthSpecification = (DeviceInfo.IsPortrait ? 1016 : 1184).SpToPx(), HeightSpecification = 466.SpToPx(), Layout = new LinearLayout() { diff --git a/music-player/Views/SelectListLayout.cs b/music-player/Views/SelectListLayout.cs index e034f28..ae72565 100755 --- a/music-player/Views/SelectListLayout.cs +++ b/music-player/Views/SelectListLayout.cs @@ -132,25 +132,29 @@ namespace MusicPlayer.Views } if (type == DisposeTypes.Explicit) { - base.Remove(itemSeperator); + Remove(itemSeperator); itemSeperator?.Dispose(); itemSeperator = null; - base.Remove(checkBox); + Remove(checkBox); checkBox?.Dispose(); checkBox = null; - base.Remove(icon); + Remove(icon); icon?.Dispose(); icon = null; - base.Remove(titleLabel); + textView.Remove(titleLabel); titleLabel?.Dispose(); titleLabel = null; - base.Remove(subtitleLabel); + textView.Remove(subtitleLabel); subtitleLabel?.Dispose(); subtitleLabel = null; + + Remove(textView); + textView?.Dispose(); + textView = null; } base.Dispose(type); diff --git a/music-player/Views/Utils/ContentViewFactory.cs b/music-player/Views/Utils/ContentViewFactory.cs index d7a09f8..437b22f 100755 --- a/music-player/Views/Utils/ContentViewFactory.cs +++ b/music-player/Views/Utils/ContentViewFactory.cs @@ -10,6 +10,7 @@ namespace MusicPlayer.Views.Utils Track = 1, Album = 2, Artist = 3, + Search = 4, }; abstract class ContentViewFactory diff --git a/music-player/Views/Utils/MultiStateButton.cs b/music-player/Views/Utils/MultiStateButton.cs index e605dc0..8f889e5 100644 --- a/music-player/Views/Utils/MultiStateButton.cs +++ b/music-player/Views/Utils/MultiStateButton.cs @@ -8,7 +8,7 @@ namespace MusicPlayer.Views.Utils { class MultiStateButton: Button { - public static readonly BindableProperty CustomStateProperty = BindableProperty.Create(nameof(CusotmState), typeof(string), typeof(MultiStateButton), null, propertyChanged: (bindable, oldValue, newValue) => + public static readonly BindableProperty CustomStateProperty = BindableProperty.Create(nameof(CustomState), typeof(string), typeof(MultiStateButton), null, propertyChanged: (bindable, oldValue, newValue) => { var instance = (MultiStateButton)bindable; if (newValue != null) @@ -17,11 +17,7 @@ namespace MusicPlayer.Views.Utils instance.UpdateCustomState(newCustomState); } }, - defaultValueCreator: (bindable) => - { - var instance = (MultiStateButton)bindable; - return instance.customState; - }); + defaultValueCreator: (bindable) => ((MultiStateButton)bindable).customState); public MultiStateButton() : base() { @@ -39,7 +35,7 @@ namespace MusicPlayer.Views.Utils } private string customState; - public string CusotmState + public string CustomState { get => (string)GetValue(CustomStateProperty); set => SetValue(CustomStateProperty, value); @@ -86,7 +82,7 @@ namespace MusicPlayer.Views.Utils protected override void OnThemeChanged(object sender, ThemeChangedEventArgs e) { base.OnThemeChanged(sender, e); - UpdateCustomState(CusotmState); + UpdateCustomState(CustomState); } } } diff --git a/music-player/Views/Utils/OperationViewFactory.cs b/music-player/Views/Utils/OperationViewFactory.cs index 61beb10..f5f5a8a 100755 --- a/music-player/Views/Utils/OperationViewFactory.cs +++ b/music-player/Views/Utils/OperationViewFactory.cs @@ -110,7 +110,7 @@ namespace MusicPlayer.Views.Utils return addToPlaylistView; } - public SearchView CreateSearchView() + private View CreateSearchView() { SearchViewModel viewModel = new SearchViewModel(); SearchView searchView = new SearchView(viewModel); diff --git a/music-player/Views/Utils/ViewLibrary.cs b/music-player/Views/Utils/ViewLibrary.cs index 14392db..6c73d81 100755 --- a/music-player/Views/Utils/ViewLibrary.cs +++ b/music-player/Views/Utils/ViewLibrary.cs @@ -1,15 +1,16 @@ using System; using System.Collections.Generic; using MusicPlayer.Common; +using Tizen.NUI.BaseComponents; namespace MusicPlayer.Views.Utils { class ViewLibrary { private readonly IDictionary contentViewDictionary; - private readonly ConcreteContentViewFactory contentViewFactory; - private readonly ConcreteSubContentViewFactory subContentViewFactory; - private readonly ConcreteOperationViewFactory operationViewFactory; + private readonly ContentViewFactory contentViewFactory; + private readonly SubContentViewFactory subContentViewFactory; + private readonly OperationViewFactory operationViewFactory; public ViewLibrary() { @@ -39,15 +40,9 @@ namespace MusicPlayer.Views.Utils return view; } - public void AddOperationView(OperationViewType type, ContentViewType contentType, object viewModelData, object otherData) + public View AddOperationView(OperationViewType type, ContentViewType contentType, object viewModelData, object otherData) { - operationViewFactory.AddOperationView(type, contentType, viewModelData, otherData); + return operationViewFactory.AddOperationView(type, contentType, viewModelData, otherData); } - - public SearchView CreateSearchView() - { - return operationViewFactory.CreateSearchView(); - } - } } diff --git a/music-player/Views/ViewManager.cs b/music-player/Views/ViewManager.cs index 0508d55..f38f9fd 100755 --- a/music-player/Views/ViewManager.cs +++ b/music-player/Views/ViewManager.cs @@ -134,7 +134,7 @@ namespace MusicPlayer.Views private void OnSearchIconClicked(object sender, ClickedEventArgs e) { - SearchView searchView = viewLibrary.CreateSearchView(); + SearchView searchView = (SearchView)viewLibrary.AddOperationView(OperationViewType.Search, ContentViewType.Search, null, null); if (searchView != null) { searchView.LaunchDetailView += OnSubViewAdded; diff --git a/music-player/music-player.csproj b/music-player/music-player.csproj index 753a081..e2eacec 100755 --- a/music-player/music-player.csproj +++ b/music-player/music-player.csproj @@ -19,9 +19,7 @@ - - Runtime - + diff --git a/music-player/res/themes/dark.xaml b/music-player/res/themes/dark.xaml index 0b0febc..8c06189 100755 --- a/music-player/res/themes/dark.xaml +++ b/music-player/res/themes/dark.xaml @@ -23,7 +23,7 @@ Id="DarkTheme"> - + @@ -33,7 +33,7 @@ Id="DarkTheme"> - + @@ -43,7 +43,7 @@ Id="DarkTheme"> - + @@ -53,7 +53,7 @@ Id="DarkTheme"> - + @@ -63,7 +63,7 @@ Id="DarkTheme"> - + @@ -73,7 +73,7 @@ Id="DarkTheme"> - + @@ -83,7 +83,7 @@ Id="DarkTheme"> - + @@ -93,7 +93,7 @@ Id="DarkTheme"> - + @@ -103,7 +103,7 @@ Id="DarkTheme"> - + @@ -133,7 +133,7 @@ Id="DarkTheme"> - + @@ -143,7 +143,7 @@ Id="DarkTheme"> - + @@ -153,7 +153,7 @@ Id="DarkTheme"> - + *Resource*/images/dark/search_icon.png @@ -198,7 +198,7 @@ Id="DarkTheme"> - + *Resource*/images/dark/cross_button.png @@ -206,7 +206,7 @@ Id="DarkTheme"> - + @@ -225,7 +225,7 @@ Id="DarkTheme"> - + *Resource*/images/dark/search_icon.png diff --git a/music-player/res/themes/light.xaml b/music-player/res/themes/light.xaml index 17dee37..410c03e 100755 --- a/music-player/res/themes/light.xaml +++ b/music-player/res/themes/light.xaml @@ -23,7 +23,7 @@ Id="LightTheme"> - + @@ -33,7 +33,7 @@ Id="LightTheme"> - + @@ -43,7 +43,7 @@ Id="LightTheme"> - + @@ -53,7 +53,7 @@ Id="LightTheme"> - + @@ -63,7 +63,7 @@ Id="LightTheme"> - + @@ -73,7 +73,7 @@ Id="LightTheme"> - + @@ -83,7 +83,7 @@ Id="LightTheme"> - + @@ -93,7 +93,7 @@ Id="LightTheme"> - + @@ -103,7 +103,7 @@ Id="LightTheme"> - + @@ -133,7 +133,7 @@ Id="LightTheme"> - + @@ -143,7 +143,7 @@ Id="LightTheme"> - + @@ -153,7 +153,7 @@ Id="LightTheme"> - + *Resource*/images/light/search_icon.png @@ -198,7 +198,7 @@ Id="LightTheme"> - + *Resource*/images/light/cross_button.png @@ -206,7 +206,7 @@ Id="LightTheme"> - + @@ -225,7 +225,7 @@ Id="LightTheme"> - + *Resource*/images/light/search_icon.png diff --git a/packaging/org.tizen.MusicPlayer-1.0.0.tpk b/packaging/org.tizen.MusicPlayer-1.0.0.tpk index 3002de7..d3806a7 100755 Binary files a/packaging/org.tizen.MusicPlayer-1.0.0.tpk and b/packaging/org.tizen.MusicPlayer-1.0.0.tpk differ