From e34223173f751f9694d6d62c3f2c674fdc3754df Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Mon, 14 Oct 2019 17:03:15 +0200 Subject: [PATCH] =?UTF-8?q?D=C3=A9but=20passage=20en=20repositories=20(!?= =?UTF-8?q?=20bookmarks=20cass=C3=A9s)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AideDeJeu/AideDeJeu/AideDeJeu.csproj | 14 ++++- .../Repositories/BookmarksRepository.cs | 10 ++++ .../Repositories/LibraryRepository.cs | 10 ++++ AideDeJeu/AideDeJeu/ViewModels/Navigator.cs | 57 ++++++++++--------- .../Views/Library/BookmarksPage.xaml | 11 +++- .../Views/Library/BookmarksPage.xaml.cs | 2 +- .../AideDeJeu/Views/Library/ItemPage.xaml | 2 +- 7 files changed, 73 insertions(+), 33 deletions(-) create mode 100644 AideDeJeu/AideDeJeu/Repositories/BookmarksRepository.cs create mode 100644 AideDeJeu/AideDeJeu/Repositories/LibraryRepository.cs diff --git a/AideDeJeu/AideDeJeu/AideDeJeu.csproj b/AideDeJeu/AideDeJeu/AideDeJeu.csproj index 0451bc2a..be2423d4 100644 --- a/AideDeJeu/AideDeJeu/AideDeJeu.csproj +++ b/AideDeJeu/AideDeJeu/AideDeJeu.csproj @@ -14,8 +14,13 @@ Latest + + + + + @@ -114,9 +119,6 @@ ItemView.xaml - - MainTabbedPage.xaml - ItemPicker.xaml @@ -150,6 +152,12 @@ + + + MainTabbedPage.xaml + + + PublicResXFileCodeGenerator diff --git a/AideDeJeu/AideDeJeu/Repositories/BookmarksRepository.cs b/AideDeJeu/AideDeJeu/Repositories/BookmarksRepository.cs new file mode 100644 index 00000000..52b3b6d5 --- /dev/null +++ b/AideDeJeu/AideDeJeu/Repositories/BookmarksRepository.cs @@ -0,0 +1,10 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace AideDeJeu.Repositories +{ + public class BookmarksRepository + { + } +} diff --git a/AideDeJeu/AideDeJeu/Repositories/LibraryRepository.cs b/AideDeJeu/AideDeJeu/Repositories/LibraryRepository.cs new file mode 100644 index 00000000..6cbe335c --- /dev/null +++ b/AideDeJeu/AideDeJeu/Repositories/LibraryRepository.cs @@ -0,0 +1,10 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace AideDeJeu.Repositories +{ + public class LibraryRepository + { + } +} diff --git a/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs b/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs index 5bfac331..4fcf50bb 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs @@ -155,31 +155,34 @@ namespace AideDeJeu.ViewModels await Shell.Current.GoToAsync("//deepsearch", true); } - private Command _AddToFavoritesCommand = null; - public Command AddToFavoritesCommand + private Command _AddToFavoritesCommand = null; + public Command AddToFavoritesCommand { get { - return _AddToFavoritesCommand ?? (_AddToFavoritesCommand = new Command(async () => await ExecuteAddToFavoritesCommandAsync())); + return _AddToFavoritesCommand ?? (_AddToFavoritesCommand = new Command(async (item) => await ExecuteAddToFavoritesCommandAsync(item))); } } - public async Task ExecuteAddToFavoritesCommandAsync() + public async Task ExecuteAddToFavoritesCommandAsync(ItemViewModel itemVM) { - var tabbedPage = App.Current.MainPage as MainTabbedPage; - var navigationPage = tabbedPage; //.MainNavigationPage; - var lastPage = navigationPage.Navigation.NavigationStack.LastOrDefault(); - var context = lastPage.BindingContext; - Item item = (context as ItemViewModel)?.Item; - //if (context is ItemDetailViewModel) - //{ - // item = (context as ItemDetailViewModel).Item; - //} - //else if (context is ItemsViewModel) - //{ - // item = (context as ItemsViewModel).AllItems; - //} + //var page = Shell.Current; + //var tabbedPage = App.Current.MainPage as MainTabbedPage; + //var navigationPage = tabbedPage; //.MainNavigationPage; + //var lastPage = navigationPage.Navigation.NavigationStack.LastOrDefault(); + //var context = lastPage.BindingContext; + //Item item = (context as ItemViewModel)?.Item; + ////if (context is ItemDetailViewModel) + ////{ + //// item = (context as ItemDetailViewModel).Item; + ////} + ////else if (context is ItemsViewModel) + ////{ + //// item = (context as ItemsViewModel).AllItems; + ////} + //await Application.Current.MainPage.DisplayAlert("Id", item.Id, "OK"); + var item = itemVM.Item; var vm = Main.Bookmarks; var result = await Application.Current.MainPage.DisplayActionSheet("Ajouter à", "Annuler", "Nouvelle liste", vm.BookmarkCollectionNames.ToArray()); if (result != "Annuler") @@ -207,7 +210,7 @@ namespace AideDeJeu.ViewModels var itemsViewModel = new ItemViewModel() { Item = item, AllItems = items, Filter = filterViewModel }; itemsViewModel.LoadItemsCommand.Execute(null); - SwitchToMainTab(); + await SwitchToMainTabAsync(); if (filterViewModel == null) { @@ -219,14 +222,15 @@ namespace AideDeJeu.ViewModels } } - public void SwitchToMainTab() + public async Task SwitchToMainTabAsync() { - var tabbedPage = App.Current.MainPage as MainTabbedPage; - if (tabbedPage != null) - { - tabbedPage.SelectedItem = null; - tabbedPage.SelectedItem = tabbedPage; //.MainNavigationPage; - } + await Shell.Current.GoToAsync("//library"); + //var tabbedPage = App.Current.MainPage as MainTabbedPage; + //if (tabbedPage != null) + //{ + // tabbedPage.SelectedItem = null; + // tabbedPage.SelectedItem = tabbedPage; //.MainNavigationPage; + //} } public async Task GotoItemsPageAsync(ItemViewModel itemsVM) @@ -256,6 +260,7 @@ namespace AideDeJeu.ViewModels public async Task NavigateToLinkAsync(string s) { + await SwitchToMainTabAsync(); await Navigation.PushAsync(new ItemPage(s), true);//.GoToAsync($"item?path={Uri.EscapeDataString(s)}"); return; if (s != null) @@ -293,7 +298,7 @@ namespace AideDeJeu.ViewModels filterViewModel.FilterWith(key, val); } } - SwitchToMainTab(); + await SwitchToMainTabAsync(); if (filterViewModel == null) { await GotoItemsPageAsync(itemsViewModel); diff --git a/AideDeJeu/AideDeJeu/Views/Library/BookmarksPage.xaml b/AideDeJeu/AideDeJeu/Views/Library/BookmarksPage.xaml index a43deeee..be5dc39c 100644 --- a/AideDeJeu/AideDeJeu/Views/Library/BookmarksPage.xaml +++ b/AideDeJeu/AideDeJeu/Views/Library/BookmarksPage.xaml @@ -3,10 +3,16 @@ xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core" xmlns:tools="clr-namespace:AideDeJeu.Tools" + xmlns:libvm="clr-namespace:AideDeJeu.ViewModels.Library" + xmlns:lib="clr-namespace:AideDeJeuLib" x:Class="AideDeJeu.Views.Library.BookmarksPage" x:Name="This" + x:DataType="libvm:BookmarksViewModel" Title="Favoris" Icon="stars_stack.png"> + + + @@ -37,9 +43,10 @@ - +