Skip to content

Commit cf64d82

Browse files
author
theweavr
committed
fix #229 fix #230
1 parent 66776ea commit cf64d82

4 files changed

Lines changed: 23 additions & 26 deletions

File tree

BreadPlayer.Views.UWP/Shell.xaml.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,15 +89,15 @@ private async void HandleNavigationMessage(Message message)
8989
if (message.Payload != null)
9090
{
9191
dynamic payload = message.Payload;
92-
if (NowPlayingFrame.CurrentSourcePageType != payload.pageType)
93-
{
94-
if (!InitializeSwitch.IsMobile)
92+
if (!InitializeSwitch.IsMobile)
93+
{
94+
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
9595
{
96-
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
97-
{
98-
NowPlayingFrame.Width = payload.parameter is string ? 700 : 900;
99-
});
100-
}
96+
NowPlayingFrame.Width = payload.parameter is string ? 700 : 900;
97+
});
98+
}
99+
if (NowPlayingFrame.CurrentSourcePageType != payload.pageType)
100+
{
101101
NowPlayingFrame.Navigate(payload.pageType, payload.parameter, new Windows.UI.Xaml.Media.Animation.SlideNavigationTransitionInfo());
102102
}
103103
else if(payload.pageType == typeof(PlaylistView))

BreadPlayer.Views.UWP/Themes/DataTemplates.xaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,8 @@
8989
<MenuFlyout x:Key="Flyout">
9090
<Extensions:MenuFlyoutIconItem
9191
x:Name="playMenuItem"
92-
Command="{Binding Path=PlayCommand}"
92+
Command="{Binding Source={StaticResource LibVM}, Path=PlayCommand}"
9393
CommandParameter="{Binding}"
94-
DataContext="{StaticResource LibVM}"
9594
Glyph="&#xE768;"
9695
Text="Play" />
9796
<Extensions:MenuFlyoutIconItem

BreadPlayer.Views.UWP/ViewModels/PlaylistsCollectionViewModel.cs

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -209,27 +209,24 @@ IEnumerable<ChildSong> playlistSongs
209209
});
210210
var db = new KeyValueStoreDatabaseService(SharedLogic.Instance.DatabasePath, "PlaylistSongs");
211211
await db.InsertRecords(playlistSongs);
212-
var s = await db.GetRecords<ChildSong>();
213-
//await AddSongsToPlaylist(plist, songs.ToList());
212+
await AddSongsToPlaylist(plist);
214213
}
215214
});
216215
}
217216

218-
private async Task AddSongsToPlaylist(Playlist list, IReadOnlyCollection<Mediafile> songsToadd)
217+
private async Task AddSongsToPlaylist(Playlist list)
219218
{
220-
if (songsToadd.Any())
221-
{
222-
await PlaylistService.InsertTracksAsync(songsToadd.Where(t => !PlaylistService.Exists(t.Id)), list);
223-
var pSongs = (await PlaylistService.GetTracksAsync(list.Id)).ToList();
219+
//await PlaylistService.InsertTracksAsync(songsToadd.Where(t => !PlaylistService.Exists(t.Id)), list);
220+
var pSongs = (await PlaylistService.GetTracksAsync(list.Id)).ToList();
224221

225-
//update duration and songs count
226-
var collectionPlaylist = Playlists.FirstOrDefault(t => t.Name == list.Name);
227-
collectionPlaylist.SongsCount = pSongs.Count + " songs";
228-
collectionPlaylist.ImagePath = pSongs.First(t => t.AttachedPicture != null)?.AttachedPicture ?? "";
229-
collectionPlaylist.ImageColor = (await SharedLogic.Instance.GetDominantColor(await StorageFile.GetFileFromPathAsync(list.ImagePath))).ToHexString();
230-
collectionPlaylist.Duration = string.Format("{0:0.0}", Math.Truncate(pSongs.Sum(t => TimeSpan.ParseExact(IsHour(t.Length) ? t.Length : "00:" + t.Length, @"hh\:mm\:ss", CultureInfo.InvariantCulture).TotalMinutes) * 10) / 10) + " Minutes";
231-
await PlaylistService.UpdatePlaylistAsync(collectionPlaylist).ConfigureAwait(false);
232-
}
222+
//update duration and songs count
223+
var collectionPlaylist = Playlists.FirstOrDefault(t => t.Name == list.Name);
224+
collectionPlaylist.SongsCount = pSongs.Count + " songs";
225+
collectionPlaylist.ImagePath = pSongs.First(t => t.AttachedPicture != null)?.AttachedPicture ?? "";
226+
if(!string.IsNullOrEmpty(collectionPlaylist.ImagePath))
227+
collectionPlaylist.ImageColor = (await SharedLogic.Instance.GetDominantColor(await StorageFile.GetFileFromPathAsync(collectionPlaylist.ImagePath))).ToHexString();
228+
collectionPlaylist.Duration = string.Format("{0:0.0}", Math.Truncate(pSongs.Sum(t => TimeSpan.ParseExact(IsHour(t.Length) ? t.Length : "00:" + t.Length, @"hh\:mm\:ss", CultureInfo.InvariantCulture).TotalMinutes) * 10) / 10) + " Minutes";
229+
await PlaylistService.UpdatePlaylistAsync(collectionPlaylist).ConfigureAwait(false);
233230
}
234231

235232
private async void AddToPlaylist(object file)

BreadPlayer.Views.UWP/Views/PlaylistsCollectionView.xaml.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using BreadPlayer.Controls;
2+
using BreadPlayer.Messengers;
23
using BreadPlayer.Services;
34
using Windows.UI.Xaml.Controls;
45
using Windows.UI.Xaml.Navigation;
@@ -22,7 +23,7 @@ private void OnPlaylistClicked(object sender, ItemClickEventArgs e)
2223
if (e.ClickedItem != null)
2324
{
2425
SplitViewMenu.UnSelectAll();
25-
NavigationService.Instance.Frame.Navigate(typeof(PlaylistView), e.ClickedItem);
26+
Messenger.Instance.NotifyColleagues(MessageTypes.MsgNavigate, new { pageType = typeof(PlaylistView), parameter = e.ClickedItem });
2627
}
2728
}
2829
}

0 commit comments

Comments
 (0)