/// <summary> /// Gets the JSON list /// </summary> /// <returns>A <see cref="Task"/></returns> public async Task GetJson() { this.ButtonEnabled = false; string url = "http://www.google.co.uk"; if (await NetworkStatus.HasConnectivity(url)) { try { Tuple <bool, string> getJsonResponse = await this.getJsonService.GetJsonAsync(); bool isSuccessful = getJsonResponse.Item1; ObservableCollection <Player> players = new ObservableCollection <Player>(); if (isSuccessful) { string content = getJsonResponse.Item2; JObject parsedPayload = JsonConvert.DeserializeObject(content) as JObject; JToken data = parsedPayload.SelectToken("$.players"); if (data.HasValues) { if (data.Type == JTokenType.Array) { var dataArray = data as JArray; players = JsonConvert.DeserializeObject <ObservableCollection <Player> >(dataArray.ToString()); } else if (data.Type == JTokenType.Object) { var player = JsonConvert.DeserializeObject <Player>(data.ToString()); players.Add(player); } } if (players.Count > 0) { this.PlayersList = players; await this.StartChoosing(null); this.ButtonEnabled = true; } } } catch (Exception) { this.ButtonEnabled = true; await App.Current.MainPage.DisplayAlert("Something went wrong", "Please try again", "OK"); } } else { this.ButtonEnabled = true; await App.Current.MainPage.DisplayAlert("No internet", "You're internet connection is rubbish. Please try again", "OK"); } }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.Main); var explorer = FindViewById <WebView>(Resource.Id.webView1); explorer.Settings.JavaScriptEnabled = true; var button = FindViewById <Button>(Resource.Id.MyButton); var txtWelcome = this.FindViewById <TextView>(Resource.Id.txtWelcome); if (NetworkStatus.HasConnectivity(this)) { TrelloUserInfoProxy = new TrelloOAuth(); TrelloUserInfoProxy.OAuthFailed += delegate { _progress.Hide(); Toast.MakeText(this, "Unable to login. OAuthentication failed...", ToastLength.Short).Show(); TrelloUserInfoProxy.Authenticate(false); }; TrelloUserInfoProxy.LoggedIn += delegate(InfoUser infoUser) { var dashboard = new Intent(this, typeof(DashboardActivity)); button.Text = "Logout"; button.Enabled = true; _progress.Hide(); txtWelcome.Text = string.Format("Welcome, {0}", infoUser.FullName); Thread.Sleep(1000); StartActivity(dashboard); }; TrelloUserInfoProxy.UrlReady += delegate { _progress.Hide(); button.Enabled = true; }; this._progress = new ProgressDialog(this) { Indeterminate = true }; this._progress.SetTitle("Login In Progress"); this._progress.SetMessage("Please wait..."); this._progress.Show(); TrelloUserInfoProxy.Authenticate(true); } else { Toast.MakeText(this, "Unable to reach internet...", ToastLength.Long).Show(); button.Enabled = false; } button.Click += delegate { if (button.Text == "Logout") { button.Text = "Login"; TrelloUserInfoProxy.ForceLogout(); TrelloUserInfoProxy.Authenticate(false); } else { explorer.LoadUrl(TrelloUserInfoProxy.Url.ToString()); button.Enabled = false; RunOnUiThread(() => { explorer.Visibility = ViewStates.Visible; }); } }; explorer.SetWebViewClient(new TrelloAuthViewClient()); }