private void UpdateDrinkListView(List <DrinkMultiple> drinkMultiple, List <String> drinkNames) { if (drinkMultiple == null || drinkMultiple.Count < 1) { return; } int drinkOrder_MustContaianAtLeastIngridients = 2; List <DrinkMultiple> availableDrinksMixFiltered = CocktailDBService.FilterMixableDrinks(drinkMultiple, drinkNames, drinkOrder_MustContaianAtLeastIngridients); ListView listView = FindViewById <ListView>(Resource.Id.cocktailListView); List <Drink> allDrinks = new List <Drink>(); // Clean and Empty the list int childCount = listView.ChildCount; if (childCount > 0) { List <Drink> emptyList = new List <Drink>(); listAdapterDrink adapterTemp = new listAdapterDrink(this, emptyList); listView.SetAdapter(adapterTemp); } // Add to list foreach (var item in availableDrinksMixFiltered) { allDrinks.AddRange(item.Drinks); } // Order by all pictures first allDrinks = allDrinks.OrderByDescending(o => o.strDrinkThumb).ToList(); listAdapterDrink adapter = new listAdapterDrink(this, allDrinks); listView.Adapter = adapter; }
private SortedDictionary <string, DrinkMultiple> UpdateRepositoryData(List <string> drinkNames) { bool changed = false; // Repo is empty, get all new data if (TransporterClass.Repository == null) { foreach (var item in drinkNames) { DrinkMultiple availableDrinks = CocktailDBService.getAllDrinks(item); Repository.AddDrinkMultiple(availableDrinks, item); changed = true; } } else { // Check if exist in repo or get it from DB foreach (string drinkItem in drinkNames) { if (!TransporterClass.Repository.ContainsKey(drinkItem)) { DrinkMultiple missingDrinkMultiple = CocktailDBService.getAllDrinks(drinkItem); Repository.AddDrinkMultiple(missingDrinkMultiple, drinkItem); changed = true; } } } if (changed) { Repository.SaveData(); TransporterClass.Repository = Repository.repositoryDictionery; } return(TransporterClass.Repository); }
private void listView_ItemClick(object sender, AdapterView.ItemClickEventArgs e) { ListView listView = sender as Android.Widget.ListView; if (listView == null) { return; } listAdapterDrink listAdapterDrink = listView.Adapter as listAdapterDrink; if (listAdapterDrink == null) { return; } Drink drink = listAdapterDrink.listDrink[e.Position]; // TODO: DEV ONLY : Remove this? Or you can have this left? Drink detailDrink = CocktailDBService.HttpGet(drink.idDrink.ToString(), HttpGetRequests.CocktailByID).Drinks[0]; ChangePage(detailDrink); }