From 8a9980e6ecdea027f250fb5fa8e70fb9846ea05f Mon Sep 17 00:00:00 2001 From: "aman.jeph" Date: Wed, 12 Jan 2022 10:35:23 +0530 Subject: [PATCH] [TIZENIOT-2507]Fixing mini-player adding process Change-Id: Ib5efb9271ee4e32205a74029249e3ab0cd0f6411 Signed-off-by: aman.jeph --- music-player/Core/PlaybackHelper.cs | 29 ++++++++++++++++++------ music-player/Views/MiniPlayer.cs | 35 +++++++++++++++++++++++------ music-player/Views/ViewManager.cs | 15 +++++-------- 3 files changed, 56 insertions(+), 23 deletions(-) diff --git a/music-player/Core/PlaybackHelper.cs b/music-player/Core/PlaybackHelper.cs index 8cce6e9..9b29402 100755 --- a/music-player/Core/PlaybackHelper.cs +++ b/music-player/Core/PlaybackHelper.cs @@ -14,9 +14,12 @@ namespace MusicPlayer.Core private static readonly PlaybackHelper instance = new PlaybackHelper(); + public event EventHandler AddMiniPlayer; + private readonly PlayerView playerView; private readonly PlayerViewModel playerViewModel; private readonly MiniPlayer miniPlayer; + private bool isMiniPlayerAdded; private PlaybackHelper() { @@ -25,6 +28,16 @@ namespace MusicPlayer.Core miniPlayer = new MiniPlayer(playerViewModel); playerView.BackKeyPressed += OnBackKeyPressed; playerViewModel.ShowDetails += OnShowDetails; + playerView.RemovedFromWindow += OnPlayViewRemoved; + isMiniPlayerAdded = false; + } + + private void OnPlayViewRemoved(object sender, EventArgs e) + { + if(isMiniPlayerAdded == false) + { + AddMiniPlayer?.Invoke(this, new EventArgs()); + } } private void OnShowDetails(object sender, DetailOperationEventHandlerArgs e) @@ -50,19 +63,21 @@ namespace MusicPlayer.Core playerView.HideView(); } - public View GetMiniPlayer() - { - return miniPlayer; - } - - public void ShowMiniPlayer() + public void ShowMiniPlayer(View parent) { - miniPlayer.ShowView(); + if(parent) + { + parent.Add(miniPlayer); + miniPlayer.ShowView(); + isMiniPlayerAdded = true; + } } public void HideMiniPlayer() { + miniPlayer.Unparent(); miniPlayer.HideView(); + isMiniPlayerAdded = false; } public void PlayAll(ListViewModel trackList, Track startingTrack) diff --git a/music-player/Views/MiniPlayer.cs b/music-player/Views/MiniPlayer.cs index 36e9b98..add3103 100755 --- a/music-player/Views/MiniPlayer.cs +++ b/music-player/Views/MiniPlayer.cs @@ -25,7 +25,7 @@ namespace MusicPlayer.Views private Slider playbackSlider; private TextLabel currentTime; private TextLabel totalTime; - + private View baseView; private readonly PlayerViewModel viewModel; public MiniPlayer(PlayerViewModel viewModel) : base() @@ -36,14 +36,35 @@ namespace MusicPlayer.Views ThemeChangeSensitive = true; WidthSpecification = LayoutParamPolicies.MatchParent; HeightSpecification = 124; - Layout = new FlexLayout() + baseView = new View() + { + WidthSpecification = LayoutParamPolicies.MatchParent, + HeightSpecification = LayoutParamPolicies.MatchParent, + BackgroundColor = Color.Transparent, + Position = new Position(0, 0), + }; + Add(baseView); + baseView.Layout = new FlexLayout() { Direction = FlexLayout.FlexDirection.Row, - Padding = new Extents(64, 64, 24, 19), + Padding = new Extents(64, 64, 24, 20), }; AddTrackDetails(); AddControlElements(); AddSliderElements(); + AddSeparatorLine(); + } + + private void AddSeparatorLine() + { + View separator = new View() + { + WidthSpecification = LayoutParamPolicies.MatchParent, + HeightSpecification = 1, + StyleName = "InputLine", + Position = new Position(0, 0), + }; + Add(separator); } private void AddTrackDetails() @@ -59,7 +80,7 @@ namespace MusicPlayer.Views Margin = new Extents(0, 0, 0, 5), } }; - base.Add(trackInfo); + baseView.Add(trackInfo); AddTrackName(); AddArtistName(); } @@ -78,7 +99,7 @@ namespace MusicPlayer.Views PlaybackHelper.Instance.ShowPlayer(); return true; }; - base.Add(thumbnail); + baseView.Add(thumbnail); } private void AddTrackName() @@ -127,7 +148,7 @@ namespace MusicPlayer.Views }, Margin = new Extents(0, 120, 14, 19), }; - base.Add(controlsView); + baseView.Add(controlsView); AddPreviousButton(); AddPlayButton(); AddNextButton(); @@ -238,7 +259,7 @@ namespace MusicPlayer.Views BackgroundColor = Color.Transparent, Margin = new Extents(0, 0, 19, 0), }; - base.Add(sliderView); + baseView.Add(sliderView); AddPlaybackSlider(); AddCurrentTimeLabel(); AddTotalTimeLabel(); diff --git a/music-player/Views/ViewManager.cs b/music-player/Views/ViewManager.cs index 22a90db..ce6ef12 100755 --- a/music-player/Views/ViewManager.cs +++ b/music-player/Views/ViewManager.cs @@ -125,15 +125,12 @@ namespace MusicPlayer.Views baseView.Tabs.ItemChangedEvent += OnTabItemSelect; baseView.GetSearchButton().Clicked += OnSearchIconClicked; SetTabItem(-1, (int)ContentViewType.Playlist); - miniPlayer = PlaybackHelper.Instance.GetMiniPlayer(); - View separator = new View() - { - WidthSpecification = LayoutParamPolicies.MatchParent, - HeightSpecification = 1, - StyleName = "InputLine", - }; - rootview.Add(separator); - rootView.Add(miniPlayer); + PlaybackHelper.Instance.AddMiniPlayer += OnMiniPlayerAdd; + } + + private void OnMiniPlayerAdd(object sender, EventArgs e) + { + PlaybackHelper.Instance.ShowMiniPlayer(rootView); } private void OnSearchIconClicked(object sender, ClickedEventArgs e) -- 2.34.1