/// <summary> /// /// </summary> /// <param name="parameter"></param> /// <param name="mode"></param> /// <param name="suspensionState"></param> /// <returns></returns> public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary <string, object> suspensionState) { if (suspensionState.Any()) { // Recovering the state PokemonInventory = (ObservableCollection <PokemonData>)suspensionState[nameof(PokemonInventory)]; CurrentPokemonSortingMode = (PokemonSortingModes)suspensionState[nameof(CurrentPokemonSortingMode)]; } else if (parameter is bool) { // Navigating from game page, so we need to actually load the inventory and set default sorting mode PokemonInventory.AddRange(GameClient.PokemonsInventory); CurrentPokemonSortingMode = PokemonSortingModes.Combat; } await Task.CompletedTask; }
public void Load(ulong selectedPokemonId, PokemonSortingModes sortingMode, PokemonDetailPageViewMode viewMode) { PokemonInventory.Clear(); SortingMode = sortingMode; ViewMode = viewMode; if (viewMode == PokemonDetailPageViewMode.Normal) { // Navigating from inventory page so we need to load the pokemoninventory and the current pokemon PokemonInventory.AddRange(GameClient.PokemonsInventory.Select(pokemonData => new PokemonDataWrapper(pokemonData)).SortBySortingmode(sortingMode)); SelectedPokemon = PokemonInventory.FirstOrDefault(pokemon => pokemon.Id == selectedPokemonId); } else { // Navigating from Capture, Egg hatch or evolve, only show this pokemon PokemonInventory.Add(GameClient.PokemonsInventory.Where(pokemon => pokemon.Id == selectedPokemonId).Select(pokemonData => new PokemonDataWrapper(pokemonData)).FirstOrDefault()); SelectedPokemon = PokemonInventory.First(); } StardustAmount = GameClient.PlayerProfile.Currencies.FirstOrDefault(item => item.Name.Equals("STARDUST")).Amount; PlayerTeamIsSet = GameClient.PlayerProfile.Team != TeamColor.Neutral; }