diff --git a/AideDeJeu/AideDeJeu/ViewModels/BookmarksViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/BookmarksViewModel.cs index 8a20190b..fbab9e29 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/BookmarksViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/BookmarksViewModel.cs @@ -73,6 +73,18 @@ namespace AideDeJeu.ViewModels else if(BookmarkCollectionIndex == BookmarkCollectionNames.Count - 1) { var result = await Main.Navigator.OpenCancellableTextInputAlertDialog(""); + if(result.Item2 == Navigator.PopupResultEnum.Save) + { + var index = BookmarkCollectionNames.Count - 1; + BookmarkCollectionNames.Insert(index, result.Item1); + //BookmarkCollectionIndex = index; + BookmarkCollectionIndex = 0; + await SaveBookmarksAsync(); + } + else + { + BookmarkCollectionIndex = 0; + } } } @@ -161,13 +173,27 @@ namespace AideDeJeu.ViewModels if (result.Item2 == Navigator.PopupResultEnum.Delete) { var confirm = await App.Current.MainPage.DisplayAlert("Supprimer ?", "Etes vous sûr de vouloir supprimer la liste ?", "Supprimer", "Annuler"); + if (confirm) + { + var index = BookmarkCollectionIndex; + var name = BookmarkCollectionNames[BookmarkCollectionIndex]; + await SaveBookmarksAsync(name, null); + BookmarkCollectionNames.Remove(name); + BookmarkCollectionIndex = 0; + } + } + else if (result.Item2 == Navigator.PopupResultEnum.Save) + { + var items = await GetBookmarkCollection(BookmarkCollectionNames[BookmarkCollectionIndex]); + await SaveBookmarksAsync(BookmarkCollectionNames[BookmarkCollectionIndex], null); + BookmarkCollectionNames[BookmarkCollectionIndex] = result.Item1; + await SaveBookmarksAsync(BookmarkCollectionNames[BookmarkCollectionIndex], items); } - } - public async Task> GetBookmarkCollection(string key) + public async Task> GetBookmarkCollection(string key) { if (key != null) { @@ -213,7 +239,14 @@ namespace AideDeJeu.ViewModels public async Task SaveBookmarksAsync(string key, List items) { - App.Current.Properties[key] = ToString(items); + if (items == null) + { + App.Current.Properties.Remove(key); + } + else + { + App.Current.Properties[key] = ToString(items); + } await App.Current.SavePropertiesAsync(); }