public ChampListPage() { Title = "Database"; filter = new FilterControl { Items = new List <string> { "Champions", "Items", "Summoner Spells" } }; imageTemplate = new DataTemplate(typeof(ChampionListCell)); otherTemplate = new DataTemplate(typeof(ItemListCell)); summonerSpellTemplate = new DataTemplate(typeof(SummonerSpellListCell)); var task = Task.Run(async() => { var championList = await loadChampions(); CView.Content = championList; }); task.Wait(); filter.SelectedIndexChanged += async(sender, e) => { switch (filter.SelectedIndex) { case 0: var championList = await loadChampions(); CView.Content = championList; break; case 1: var itemList = await loadItems(); CView.Content = itemList; break; case 2: var summonerSpellList = await loadSummonerSpells(); CView.Content = summonerSpellList; break; } }; Content = new StackLayout { Children = { filter, CView } }; NavigationPage.SetHasNavigationBar(this, true); }
public FilterHeaderCell() { var filter = new FilterControl(); filter.SetBinding(FilterControl.ItemsProperty, "Items"); var cellLayout = new StackLayout { Padding = new Thickness(10, 0, 0, 0), //Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.FillAndExpand, Children = { filter } }; View = cellLayout; }
public static async Task <DownloadImages> loadPage(Summoner summoner, Region region, Page searchPage) { SearchPage = searchPage; infoIcon = new ToolbarItem { Text = "+" }; icon = string.Format(icon, summoner.Region, summoner.Id); if (!(App.RecentDatabase.GetItems().Where(item => item.Name == summoner.Name && item.Region == summoner.Region.ToString().ToUpper()).ToList().Count > 0)) { App.RecentDatabase.SaveItem(new SearchesAndFavorites { Name = summoner.Name, Region = summoner.Region.ToString().ToUpper(), Icon = icon, summonerID = (int)summoner.Id }); } if (App.RecentDatabase.GetItems().Count > 10) { App.RecentDatabase.DeleteItem(1); } memeTest = new FilterControl { Items = new List <string> { "Match History", "Current Game", "Statistics" } }; memeTest.SelectedIndex = 0; var webImage = new Image { Aspect = Aspect.AspectFit }; var rankedImage = new Image { WidthRequest = 50, HeightRequest = 50 }; webImage.Source = ImageSource.FromUri(new Uri(icon)); var rankedInfo = new Label(); try { allLeagues = api.GetLeagues(summoner.Region, new List <int> { (int)summoner.Id }); ranked5v5League = allLeagues[summoner.Id].Single(x => x.Queue == Queue.RankedSolo5x5); div = ranked5v5League.Entries.Where(x => x.PlayerOrTeamId == summoner.Id.ToString()).Select(x => x.Division).Single(); } catch { ranked5v5League = null; div = null; allLeagues = null; } if (ranked5v5League == null) { rankedImage.Source = ImageSource.FromFile("Unranked.png"); rankedInfo.Text = "Unranked"; } else { rankedImage.Source = ImageSource.FromFile(ranked5v5League.Tier + ".png"); if (ranked5v5League.Tier == RiotSharp.LeagueEndpoint.Enums.Tier.Challenger || ranked5v5League.Tier == RiotSharp.LeagueEndpoint.Enums.Tier.Master) { rankedInfo.Text = ranked5v5League.Tier.ToString(); } else { rankedInfo.Text = ranked5v5League.Tier + " " + div; } } grid = new Grid { RowDefinitions = { new RowDefinition { Height = new GridLength(50, GridUnitType.Absolute) } }, ColumnDefinitions = { new ColumnDefinition { Width = new GridLength(50, GridUnitType.Absolute) }, new ColumnDefinition { Width = GridLength.Auto }, new ColumnDefinition { Width = new GridLength(50, GridUnitType.Absolute) }, new ColumnDefinition { Width = GridLength.Auto } } }; contentVue = new ContentView(); grid.Children.Add(webImage, 0, 0); grid.Children.Add(new Label { Text = summoner.Name + Environment.NewLine + "Level: " + summoner.Level }, 1, 0); grid.Children.Add(rankedImage, 2, 0); grid.Children.Add(rankedInfo, 3, 0); var MatchList = await loadMatchHistory(summoner, region); contentVue.Content = MatchList; memeTest.SelectedIndexChanged += async(object sender, EventArgs e) => { switch (memeTest.SelectedIndex) { case 0: UserDialogs.Instance.ShowLoading("Loading", MaskType.Black); MatchList = await loadMatchHistory(summoner, region); contentVue.Content = MatchList; UserDialogs.Instance.HideLoading(); break; case 1: UserDialogs.Instance.ShowLoading("Loading", MaskType.Black); currentGameView = await loadCurrentGameView(summoner, summoner.Region); contentVue.Content = currentGameView; UserDialogs.Instance.HideLoading(); break; case 2: UserDialogs.Instance.ShowLoading("Loading", MaskType.Black); var scrollView = await loadPlayerStats(summoner, region); contentVue.Content = scrollView; UserDialogs.Instance.HideLoading(); break; } }; return(new DownloadImages(summoner)); }
public SearchedSummonerPage(Summoner summoner, Region region) { InitializeComponent(); nameText.BackgroundColor = Color.FromRgba(0, 0, 0, 0.6); Title = summoner.Name; Region = region; Summoner = summoner; filterControl = new FilterControl(); filterControl.SelectedIndex = 0; contentViewFilter.Content = filterControl; nameText.Text = "\n\t\t " + summoner.Name; summonerIcon.Source = string.Format(icon, region, summoner.Id); var frequentlyPlayed = Task.Run(async() => { var matchList = await api.GetRecentGamesAsync(region, summoner.Id); var freqPlayed = matchList.GroupBy(q => q.ChampionId) .OrderByDescending(gp => gp.Count()) .Select(g => g.Key) .First(); var championPlayedMost = staticApi.GetChampion(region, freqPlayed, new List <ChampionData> { ChampionData.skins }); freqPlayedChamp.Source = string.Format(skinString, championPlayedMost.Key, championPlayedMost.Skins[0].Num); }); frequentlyPlayed.Wait(); var MatchListTask = Task.Run(async() => { var MatchList = await loadMatchHistory(summoner, region, this); contentVue.Content = MatchList; }); MatchListTask.Wait(); switch (App.device.HardwareVersion) { case "iPhone SE": case "iPhone 5S": case "iPhone 5S GSM": case "iPhone 5S CDMA": case "iPhone 5": case "iPhone 5 GSM": case "iPhone 5 CDMA": contentVue.HeightRequest = 230; break; case "iPhone 6S": case "iPhone 6": case "iPhone 7": contentVue.HeightRequest = 330; break; case "iPhone 6+": case "iPhone 6s+": case "iPhone 6 Plus": case "iPhone 6S Plus": case "iPhone 7 Plus": case "iPhone 7+": contentVue.HeightRequest = 410; break; } try { allLeagues = api.GetLeagues(region, new List <int> { (int)summoner.Id }); ranked5v5League = allLeagues[summoner.Id].Single(x => x.Queue == Queue.RankedSolo5x5); filterControl.Items = new List <string> { "Match History", "Ranked", "Current Game" }; } catch { filterControl.Items = new List <string> { "Match History", "Current Game" }; } filterControl.SelectedIndexChanged += async(object sender, EventArgs e) => { UserDialogs.Instance.ShowLoading("Loading", MaskType.Black); try { allLeagues = await api.GetLeaguesAsync(region, new List <int> { (int)summoner.Id }); ranked5v5League = allLeagues[summoner.Id].Single(x => x.Queue == Queue.RankedSolo5x5); switch (filterControl.SelectedIndex) { case 0: var MatchList = await loadMatchHistory(summoner, region, this); contentVue.Content = MatchList; UserDialogs.Instance.HideLoading(); break; case 1: var statsPage = await loadRanked(summoner, summoner.Region, this); contentVue.Content = statsPage; UserDialogs.Instance.HideLoading(); break; case 2: currentGameView = await loadCurrentGameView(summoner, summoner.Region, this); contentVue.Content = currentGameView; UserDialogs.Instance.HideLoading(); break; } } catch { switch (filterControl.SelectedIndex) { case 0: var MatchList = await loadMatchHistory(summoner, region, this); contentVue.Content = MatchList; UserDialogs.Instance.HideLoading(); break; case 1: currentGameView = await loadCurrentGameView(summoner, summoner.Region, this); contentVue.Content = currentGameView; UserDialogs.Instance.HideLoading(); break; } } }; var soloRankString = ""; var soloIcon = ""; var flexRankString = ""; var flexIcon = ""; try { allLeagues = api.GetLeagues(region, new List <int> { (int)summoner.Id }); ranked5v5League = allLeagues[summoner.Id].Single(x => x.Queue == Queue.RankedSolo5x5); div = ranked5v5League.Entries.Where(x => x.PlayerOrTeamId == summoner.Id.ToString()).Select(x => x.Division).Single(); var soloLP = ranked5v5League.Entries.FirstOrDefault(x => x.PlayerOrTeamName == summoner.Name).LeaguePoints; soloRankString = ranked5v5League.Tier + " " + div + " " + soloLP + "LP\nSolo Queue"; switch (ranked5v5League.Tier) { case RiotSharp.LeagueEndpoint.Enums.Tier.Bronze: soloIcon = "Bronze.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Silver: soloIcon = "Silver.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Gold: soloIcon = "Gold.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Platinum: soloIcon = "Platinum.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Diamond: soloIcon = "Diamond.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Master: soloIcon = "Master.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Challenger: soloIcon = "Challenger.png"; break; } } catch { soloRankString = "Unranked\nSolo Queue"; soloIcon = "Unranked.png"; } try { rankedFlexLeague = allLeagues[summoner.Id].Single(x => x.Queue == Queue.RankedFlexSR); flexDiv = rankedFlexLeague.Entries.Where(x => x.PlayerOrTeamId == summoner.Id.ToString()).Select(x => x.Division).Single(); var flexLP = rankedFlexLeague.Entries.FirstOrDefault(x => x.PlayerOrTeamName == summoner.Name).LeaguePoints; flexRankString = rankedFlexLeague.Tier + " " + flexDiv + " " + flexLP + "LP\nFlex 5v5"; switch (rankedFlexLeague.Tier) { case RiotSharp.LeagueEndpoint.Enums.Tier.Bronze: flexIcon = "Bronze.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Silver: flexIcon = "Silver.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Gold: flexIcon = "Gold.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Platinum: flexIcon = "Platinum.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Diamond: flexIcon = "Diamond.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Master: flexIcon = "Master.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Challenger: flexIcon = "Challenger.png"; break; } } catch { flexRankString = "Unranked\nFlex 5v5"; flexIcon = "Unranked.png"; } var grid = new Grid { RowDefinitions = { new RowDefinition { Height = new GridLength(50, GridUnitType.Absolute) } }, ColumnDefinitions = { new ColumnDefinition { Width = new GridLength(50, GridUnitType.Absolute) }, new ColumnDefinition { Width = GridLength.Auto }, new ColumnDefinition { Width = new GridLength(50, GridUnitType.Absolute) }, new ColumnDefinition { Width = GridLength.Auto }, } }; grid.Children.Add(new Image { Source = soloIcon }, 0, 0); grid.Children.Add(new Label { TextColor = Color.White, Text = soloRankString }, 1, 0); grid.Children.Add(new Image { Source = flexIcon }, 2, 0); grid.Children.Add(new Label { TextColor = Color.White, Text = flexRankString }, 3, 0); grid.BackgroundColor = Color.FromRgba(0, 0, 0, 0.6); rankedImagesStuff.Content = grid; }
public ChampionPage(ChampionStatic champion) { NavigationPage.SetHasNavigationBar(this, true); memeTest = new FilterControl { Items = new List <string> { "Lore", "Tips", "Abilities" } }; memeTest.SelectedIndex = 0; Title = champion.Name; skins = new ObservableCollection <Skins>(); for (int i = 0; i < champion.Skins.Count; i++) { skins.Add(new Skins { ImageUrl = string.Format(skinString, champion.Key, champion.Skins[i].Num), Name = champion.Skins[i].Name }); if (skins[i].Name == "default") { skins[i].Name = "Default"; } } var images = new List <Image>(); for (int i = 0; i < skins.Count; i++) { images.Add(new Image { Source = skins[i].ImageUrl }); } SliderView slider = new SliderView(images[0], 200, 400) { BackgroundColor = Color.Gray, TransitionLength = 200, StyleId = "SliderView", MinimumSwipeDistance = 50 }; for (int i = 1; i < images.Count; i++) { slider.Children.Add(images[i]); } var filterViewChange = new ContentView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, }; filterViewChange.Content = LoadLore(champion); memeTest.SelectedIndexChanged += (sender, e) => { switch (memeTest.SelectedIndex) { case 0: filterViewChange.Content = LoadLore(champion); break; case 1: filterViewChange.Content = LoadTips(champion); break; case 2: filterViewChange.Content = LoadAbilities(champion); break; } }; var stackLayout = new StackLayout(); filterViewChange.HeightRequest = 440; stackLayout.Children.Add(slider); stackLayout.Children.Add(memeTest); stackLayout.Children.Add(filterViewChange); Content = stackLayout; }
public ProfilePage(Summoner summoner, Region region) { InitializeComponent(); search.IsVisible = false; nameText.BackgroundColor = Color.FromRgba(0, 0, 0, 0.6); Title = "Profile"; storeService = DependencyService.Get <ICredentialsService>(); var logoutButton = new ToolbarItem { Text = "Logout", Priority = 1 }; var searchButton = new ToolbarItem { Text = "Search", Icon = "Search.png", Priority = 0 }; ToolbarItems.Add(logoutButton); ToolbarItems.Add(searchButton); logoutButton.Clicked += async(sender, e) => { var logout = await UserDialogs.Instance.ConfirmAsync("", "Are you sure you want to Logout?", "Yes", "No"); if (logout) { if (storeService.DoCredentialsExist()) { storeService.DeleteCredentials(); Application.Current.MainPage = new NavigationPage(new loginXaml()); await Navigation.PopToRootAsync(); } } }; search.ScopeChanged += (sender, e) => { searchRegion = App.regFromString(search.SelectedScopeText); }; searchButton.Clicked += (sender, e) => { if (search.IsFocused) { search.Unfocus(); searchFilterControl.Unfocus(); } else { search.IsVisible = true; search.Focus(); } }; search.SearchButtonPressed += async(sender, e) => { string searchText = System.Net.WebUtility.HtmlEncode(search.Text); //search.Text.Replace(" ", ""); search.Text = ""; search.Unfocus(); try { UserDialogs.Instance.ShowLoading("Loading", MaskType.Black); var searchedSummoner = await App.api.GetSummonerAsync(searchRegion, searchText); icon = string.Format(icon, searchedSummoner.Region, searchedSummoner.Id); var test = new SearchedSummonerPage(searchedSummoner, searchedSummoner.Region); UserDialogs.Instance.HideLoading(); await Navigation.PushAsync(test); } catch { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync("Try again", "Summoner not found!", "Okay"); } }; var task = Task.Run(async() => { if (freqPlayedChamp.Source == null) { GameList = await api.GetRecentGamesAsync(region, summoner.Id); var freqPlayed = GameList.GroupBy(q => q.ChampionId) .OrderByDescending(gp => gp.Count()) .Select(g => g.Key) .First(); var championPlayedMost = await staticApi.GetChampionAsync(Reg, (int)freqPlayed, new List <ChampionData> { ChampionData.skins }); freqPlayedChamp.Source = new UriImageSource { Uri = new Uri(string.Format(skinString, championPlayedMost.Key, championPlayedMost.Skins[0].Num)), CachingEnabled = false }; updated = true; } }); task.Wait(); search.Unfocused += (sender, e) => { search.IsVisible = false; }; Reg = region; Summoner = summoner; filterControl = new FilterControl { Items = new List <string> { "Match History", "Ranked", "Current Game", "Champions" } }; filterControl.SelectedIndex = 0; contentViewFilter.Content = filterControl; //contentVue.VerticalOptions = LayoutOptions.FillAndExpand; nameText.Text = "\n\t\t " + summoner.Name; summonerIcon.Source = new UriImageSource { Uri = new Uri(string.Format(icon, region, summoner.Id)), CachingEnabled = true }; switch (App.device.HardwareVersion) { case "iPhone SE": case "iPhone 5S": case "iPhone 5S GSM": case "iPhone 5S CDMA": case "iPhone 5": case "iPhone 5 GSM": case "iPhone 5 CDMA": contentVue.HeightRequest = 230; break; case "iPhone 6": case "iPhone 6S": case "iPhone 7": contentVue.HeightRequest = 330; break; case "iPhone 6+": case "iPhone 6s+": case "iPhone 6 Plus": case "iPhone 6S Plus": case "iPhone 7 Plus": case "iPhone 7+": contentVue.HeightRequest = 410; break; } try { allLeagues = api.GetLeagues(region, new List <int> { (int)summoner.Id }); ranked5v5League = allLeagues[summoner.Id].Single(x => x.Queue == Queue.RankedSolo5x5); filterControl.Items = new List <string> { "Match History", "Ranked", "Current Game" }; } catch { filterControl.Items = new List <string> { "Match History", "Current Game" }; } filterControl.SelectedIndexChanged += async(object sender, EventArgs e) => { UserDialogs.Instance.ShowLoading("Loading", MaskType.Black); try { allLeagues = await api.GetLeaguesAsync(region, new List <int> { (int)summoner.Id }); ranked5v5League = allLeagues[summoner.Id].Single(x => x.Queue == Queue.RankedSolo5x5); switch (filterControl.SelectedIndex) { case 0: var MatchList = await loadMatchHistory(summoner, region, this); contentVue.Content = MatchList; UserDialogs.Instance.HideLoading(); break; case 1: var statsPage = await loadRanked(summoner, summoner.Region, this); contentVue.Content = statsPage; UserDialogs.Instance.HideLoading(); break; case 2: currentGameView = await loadCurrentGameView(summoner, summoner.Region, this); contentVue.Content = currentGameView; UserDialogs.Instance.HideLoading(); break; } } catch { switch (filterControl.SelectedIndex) { case 0: var MatchList = await loadMatchHistory(summoner, region, this); contentVue.Content = MatchList; UserDialogs.Instance.HideLoading(); break; case 1: currentGameView = await loadCurrentGameView(summoner, summoner.Region, this); contentVue.Content = currentGameView; UserDialogs.Instance.HideLoading(); break; } } }; var soloRankString = ""; var soloIcon = ""; var flexRankString = ""; var flexIcon = ""; try { div = ranked5v5League.Entries.Where(x => x.PlayerOrTeamId == summoner.Id.ToString()).Select(x => x.Division).Single(); var soloLP = ranked5v5League.Entries.FirstOrDefault(x => x.PlayerOrTeamName == summoner.Name).LeaguePoints; soloRankString = ranked5v5League.Tier + " " + div + " " + soloLP + "LP\nSolo Queue"; switch (ranked5v5League.Tier) { case RiotSharp.LeagueEndpoint.Enums.Tier.Bronze: soloIcon = "Bronze.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Silver: soloIcon = "Silver.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Gold: soloIcon = "Gold.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Platinum: soloIcon = "Platinum.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Diamond: soloIcon = "Diamond.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Master: soloIcon = "Master.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Challenger: soloIcon = "Challenger.png"; break; } } catch { soloRankString = "Unranked"; soloIcon = "Unranked.png"; } try { rankedFlexLeague = allLeagues[summoner.Id].Single(x => x.Queue == Queue.RankedFlexSR); flexDiv = rankedFlexLeague.Entries.Where(x => x.PlayerOrTeamId == summoner.Id.ToString()).Select(x => x.Division).Single(); var flexLP = rankedFlexLeague.Entries.FirstOrDefault(x => x.PlayerOrTeamName == summoner.Name).LeaguePoints; flexRankString = rankedFlexLeague.Tier + " " + flexDiv + " " + flexLP + "LP\nFlex 5v5"; switch (rankedFlexLeague.Tier) { case RiotSharp.LeagueEndpoint.Enums.Tier.Bronze: flexIcon = "Bronze.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Silver: flexIcon = "Silver.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Gold: flexIcon = "Gold.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Platinum: flexIcon = "Platinum.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Diamond: flexIcon = "Diamond.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Master: flexIcon = "Master.png"; break; case RiotSharp.LeagueEndpoint.Enums.Tier.Challenger: flexIcon = "Challenger.png"; break; } } catch { flexRankString = "Unranked"; flexIcon = "Unranked.png"; } var grid = new Grid { RowDefinitions = { new RowDefinition { Height = new GridLength(50, GridUnitType.Absolute) } }, ColumnDefinitions = { new ColumnDefinition { Width = new GridLength(50, GridUnitType.Absolute) }, new ColumnDefinition { Width = GridLength.Auto }, new ColumnDefinition { Width = new GridLength(50, GridUnitType.Absolute) }, new ColumnDefinition { Width = GridLength.Auto }, } }; grid.Children.Add(new Image { Source = soloIcon }, 0, 0); grid.Children.Add(new Label { TextColor = Color.White, Text = soloRankString }, 1, 0); grid.Children.Add(new Image { Source = flexIcon }, 2, 0); grid.Children.Add(new Label { TextColor = Color.White, Text = flexRankString }, 3, 0); grid.BackgroundColor = Color.FromRgba(0, 0, 0, 0.6); rankedImagesStuff.Content = grid; }