public static async Task <CastDetails> GetSeasons(string movieID, string season) { string key = "253ceb1e198e26b094348524da5bc8ab"; string query = string.Format("https://api.themoviedb.org/3/tv/{0}/season/{1}?api_key={2}&language=en-US", movieID, season, key); var result = downloadjson.getJson(query); CastDetails currentPerson = null; //create new object currentPerson = new CastDetails(); try { currentPerson.Name = result["name"].ToString(); currentPerson.ID = result["id"].ToString(); } catch (Exception ex) { } try { Java.Net.URL link2 = new Java.Net.URL("http://image.tmdb.org/t/p/w185/" + result["poster_path"].ToString()); await Task.Run(() => { currentPerson.profile_path = BitmapFactory.DecodeStream(link2.OpenStream()); }); } catch (Exception ex) { } return(currentPerson); }
protected override async void OnCreate(Bundle savedInstanceState) { ActionBar.Hide(); base.OnCreate(savedInstanceState); font = Typeface.CreateFromAsset(Assets, "Womby.ttf"); SetContentView(Resource.Layout.FullMovieLayout); title = FindViewById(Resource.Id.title) as TextView; overview = FindViewById(Resource.Id.overview) as TextView; rating = FindViewById(Resource.Id.IMDBrating) as TextView; genres = FindViewById(Resource.Id.genres) as TextView; redate = FindViewById(Resource.Id.Movieredate) as TextView; poster = FindViewById(Resource.Id.poster) as ImageView; backdrop = FindViewById(Resource.Id.backdrop) as ImageView; playtrailer = FindViewById(Resource.Id.playtrailer) as Button; CastView = FindViewById(Resource.Id.lv2) as GridView; SeasonView = FindViewById(Resource.Id.lv3) as GridView; duration = FindViewById(Resource.Id.Movieduration) as TextView; budget = FindViewById(Resource.Id.Moviebudget) as TextView; rating.SetTypeface(font, TypefaceStyle.Normal); seasons = FindViewById(Resource.Id.seasons) as FrameLayout; string movieID = Intent.GetStringExtra("movieID"); string type = Intent.GetStringExtra("type"); MovieDetails current = await getDataFromApi.GetMovieDetails(movieID, type); List <Bitmap> img = await getDataFromApi.GetBackdrop(current.ID.ToString(), type); if (type == "movie") { seasons.Visibility = ViewStates.Gone; try { title.Text = current.title; duration.Text = current.duration.ToString() + " min."; redate.Text = current.release_date; budget.Text = "$ " + current.budget; poster.SetImageBitmap(img[1]); if (current.genres != null) { for (int i = 0; i < current.genres.Count(); i++) { if (i == current.genres.Count() - 1) { genres.Text += current.genres[i]; break; } genres.Text += current.genres[i] + " | "; } } backdrop.SetImageBitmap(img[0]); overview.Text = current.overview; IMDb imdb = new IMDb(current.title, true); rating.Text = imdb.Rating; for (int i = 0; i < 10; i++) { try { CastDetails currentPerson = await getDataFromApi.GetCast(current.ID.ToString(), i, type); CastList.Add(currentPerson); } catch (Exception ex) { } } CastView.Adapter = new CastAdapter(this, CastList, font); CastView.ItemClick += (object sender, AdapterView.ItemClickEventArgs e) => { Toast.MakeText(this, CastList[e.Position].Name, ToastLength.Short).Show(); }; } catch (Exception ex) { Console.Write(ex.ToString()); } } else if (type == "tv") { seasons.Visibility = ViewStates.Visible; title.Text = current.title; //Setup directors budget.Text = "Directed by: "; if (current.created_by_name != null) { for (int i = 0; i < current.created_by_name.Length; i++) { if (i == current.created_by_name.Length - 1) { budget.Text += current.created_by_name[i]; break; } budget.Text += current.created_by_name[i] + " and "; } } //******************* duration.Text = current.status; redate.Text = current.first_air_date_date; poster.SetImageBitmap(img[1]); if (current.genres != null) { for (int i = 0; i < current.genres.Count(); i++) { if (i == current.genres.Count() - 1) { genres.Text += current.genres[i]; break; } genres.Text += current.genres[i] + " | "; } } backdrop.SetImageBitmap(img[0]); overview.Text = current.overview; IMDb imdb = new IMDb(current.title, true); rating.Text = imdb.Rating; //SETTING UP SEASONS**************************************************** for (int i = 0; i < current.seasons.Length; i++) { try { CastDetails currentPerson = await getDataFromApi.GetSeasons(current.ID.ToString(), i.ToString()); SeasonsList.Add(currentPerson); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } SeasonView.Adapter = new CastAdapter(this, SeasonsList, font); SeasonView.ItemClick += (object sender, AdapterView.ItemClickEventArgs e) => { Toast.MakeText(this, SeasonsList[e.Position].Name, ToastLength.Short).Show(); }; //********************************************************************* //**SETING UP CAST***************************************************** for (int i = 0; i < 10; i++) { try { CastDetails currentPerson = await getDataFromApi.GetCast(current.ID.ToString(), i, type); CastList.Add(currentPerson); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } CastView.Adapter = new CastAdapter(this, CastList, font); CastView.ItemClick += (object sender, AdapterView.ItemClickEventArgs e) => { Toast.MakeText(this, CastList[e.Position].Name, ToastLength.Short).Show(); }; } playtrailer.Click += delegate { var webView = FindViewById(Resource.Id.videoView) as WebView; webView.Visibility = ViewStates.Gone; WebSettings settings = webView.Settings; settings.JavaScriptEnabled = true; webView.SetWebChromeClient(new WebChromeClient()); webView.LoadUrl("http://www.youtube.com/embed/" + current.trailer); }; }