diff --git a/Sources/Linaris/AlbumPage.xaml.cs b/Sources/Linaris/AlbumPage.xaml.cs index bc0cb02..722fec8 100644 --- a/Sources/Linaris/AlbumPage.xaml.cs +++ b/Sources/Linaris/AlbumPage.xaml.cs @@ -14,10 +14,10 @@ public partial class AlbumPage : ContentPage } } - public AlbumPage(Album a) + public AlbumPage() { InitializeComponent(); - album = a; + album = (Application.Current as App).Manager.CurrentAlbum; BindingContext = album; } } \ No newline at end of file diff --git a/Sources/Linaris/App.xaml.cs b/Sources/Linaris/App.xaml.cs index c27c9d4..40708c8 100644 --- a/Sources/Linaris/App.xaml.cs +++ b/Sources/Linaris/App.xaml.cs @@ -15,8 +15,14 @@ public partial class App : Application protected override Window CreateWindow(IActivationState activationState) { + var Window = base.CreateWindow(activationState); + Window.Created += (sender, eventArgs) => + { + Manager.LoadSerialization(); + }; + Window.Stopped += (sender, eventArgs) => { Manager.SaveSerialization(); }; diff --git a/Sources/Linaris/Layout.xaml.cs b/Sources/Linaris/Layout.xaml.cs index 4fd35dd..9cbb72b 100644 --- a/Sources/Linaris/Layout.xaml.cs +++ b/Sources/Linaris/Layout.xaml.cs @@ -9,7 +9,7 @@ public partial class Layout : ContentView private async void Go_Home(object sender, EventArgs e) { - await Navigation.PushAsync(new MainPage()); + await Navigation.PopToRootAsync(); } private async void Go_Playlists(object sender, EventArgs e) diff --git a/Sources/Linaris/MainPage.xaml.cs b/Sources/Linaris/MainPage.xaml.cs index 294c310..322a472 100644 --- a/Sources/Linaris/MainPage.xaml.cs +++ b/Sources/Linaris/MainPage.xaml.cs @@ -24,7 +24,8 @@ public partial class MainPage : ContentPage { if (image.BindingContext is Album album) { - await Navigation.PushAsync(new AlbumPage(album)); + (Application.Current as App).Manager.CurrentAlbum = album; + await Navigation.PushAsync(new AlbumPage()); } } } diff --git a/Sources/Model/Manager.cs b/Sources/Model/Manager.cs index c5ef903..cc4837e 100644 --- a/Sources/Model/Manager.cs +++ b/Sources/Model/Manager.cs @@ -66,6 +66,20 @@ public class Manager } } + private Album currentAlbum; + + public Album CurrentAlbum + { + get + { + return currentAlbum; + } + set + { + currentAlbum = value; + } + } + public Manager(IDataManager dataManager) { DataManager = dataManager; @@ -75,6 +89,7 @@ public class Manager infoTitles = DataManager.GetInfoTitles(); playlists = DataManager.GetPlaylists(); artists = DataManager.GetArtists(); + currentAlbum = albums.First(); } public void AddAlbum(Album album)