예제 #1
0
        public static CriticsListFragment NewInstance(RTCritics critics)
        {
            var criticFragment = new CriticsListFragment();

            criticFragment.critics = critics;
            return(criticFragment);
        }
예제 #2
0
        public RTCritics GetRTCritics(string movieID)
        {
            // Set up the URI base
            string uri = "http://api.rottentomatoes.com/api/public/v1.0/movies/"
                         + movieID + "/reviews.json?review_type=top_critic&";

            // Add the API Key
            uri += "apikey=" + APIKey;

            // Get the API response JSON
            string APIResponse = webClient.getUriAsync(new Uri(uri)).Result;

            JsonSerializerSettings settings = new JsonSerializerSettings();

            settings.NullValueHandling = NullValueHandling.Ignore;
            RTCritics critics = JsonConvert.DeserializeObject <RTCritics>(APIResponse, settings);

            return(critics);
        }
예제 #3
0
        protected override void OnCreate(Bundle bundle)
        {
            FileCache.SaveLocation = CacheDir.AbsolutePath;
            base.OnCreate(bundle);

            var RTClient = (new RotTom.Portable.RottenTomatoesAPIClient(GetString(Resource.String.rottentomatoes_api_key)));
            // Look for intents
            string id;

            if (Intent.HasExtra("Movie"))
            {
                id = Intent.GetStringExtra("Movie");
            }
            else
            {
                id = "770672122";
            }
            this.movie = RTClient.GetRTMovie(id);
            RTCritics critics = RTClient.GetRTCritics(id);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            this.Title = movie.title;

            // Set the ActionBar for tabbed navigation
            this.ActionBar.NavigationMode = ActionBarNavigationMode.Tabs;

            // Set up the tab strings for easy lookup
            Dictionary <Tab, int> tabStrings = new Dictionary <Tab, int>();

            tabStrings.Add(Tab.INFO, Resource.String.movieinfo_tab_title);
            tabStrings.Add(Tab.CAST, Resource.String.moviecast_tab_title);
            tabStrings.Add(Tab.CRITICS, Resource.String.moviecritics_tab_title);

            // Add those tabs
            foreach (Tab tabid in (Tab[])Enum.GetValues(typeof(Tab)))
            {
                // Create the tab
                var tab = this.ActionBar.NewTab();

                // Name the tab
                tab.SetText(tabStrings[tabid]);

                // Set the callback routine
                tab.TabSelected += delegate(object sender, ActionBar.TabEventArgs e) {
                    switch (tabid)
                    {
                    case (Tab.CAST):
                        e.FragmentTransaction.Replace(Resource.Id.fragmentContainer, CastListFragment.NewInstance(movie));
                        break;

                    case (Tab.INFO):
                        e.FragmentTransaction.Replace(Resource.Id.fragmentContainer, MovieInfoFragment.NewInstance(movie));
                        break;

                    case (Tab.CRITICS):
                        e.FragmentTransaction.Replace(Resource.Id.fragmentContainer, CriticsListFragment.NewInstance(critics));
                        break;
                    }
                };

                //tab.TabUnselected += delegate(object sender, ActionBar.TabEventArgs e) {
                //	e.FragmentTransaction.Remove(this.FragmentManager.FindFragmentById(Resource.Id.fragmentContainer));
                //};

                // Finally, add the tab
                this.ActionBar.AddTab(tab);
            }

            if (bundle != null)
            {
                this.ActionBar.SelectTab(this.ActionBar.GetTabAt(bundle.GetInt("tab")));
            }
        }