Пример #1
0
        public void OnPageSelected(int position)
        {
            if (currentList != null)
            {
                currentList.Scroll -= HandleScroll;
            }

            if (currentLayout != null)
            {
                currentLayout.Refresh -= HandleRefresh;
            }
            currentLayout          = reflections [position];
            currentList            = reflectionsList [position];
            currentAdapter         = reflectionsAdapter [position];
            currentLayout.Refresh += HandleRefresh;
            currentList.Scroll    += HandleScroll;

            if (currentAdapter.ReflectionFeed.data.Count > 0)
            {
                SetFeedResourceUrl();
            }
            else
            {
                Task.Run(async() => await GetInitialFeed());
            }
        }
Пример #2
0
        async public override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            webService = new WlcWebService();

            var prefs            = Activity.GetSharedPreferences("wlcPrefs", FileCreationMode.Private);
            var myStatsUrl       = prefs.GetString("statsUrl", "");
            var challengeProfile = prefs.GetString("challengeProfile", "");

            csrfToken = prefs.GetString("csrfToken", "");
            adapter   = new ReflectionAdapter(Activity);
            try {
                profile = Newtonsoft.Json.JsonConvert.DeserializeObject <ChallengeProfile> (challengeProfile, new Newtonsoft.Json.JsonSerializerSettings()
                {
                    NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
                });

                client = new RestClient("https://game.wholelifechallenge.com");
                client.CookieContainer = StoredCookies;
                client.FollowRedirects = true;
                //TODO: parametrize the team id!
                postsReq = new RestRequest("api/frontend/current_user/teams/7569/posts.json", Method.GET);
                postsReq.AddHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
                postsReq.AddHeader("X-CSRF-TOKEN", csrfToken);
                postsReq.AddHeader("Referer", "https://game.wholelifechallenge.com/wlcmay15/hub");
                postsReq.AddParameter("per", 10);
                var resp = await client.ExecuteGetTaskAsync(postsReq);

                var content = resp.Content;
                serializerSettings = new JsonSerializerSettings()
                {
                    NullValueHandling = NullValueHandling.Ignore,
                    DateParseHandling = DateParseHandling.None
                };
                //_record = JsonConvert.DeserializeObject<DailyRecord> (contentStr.Result);

                int teamId = profile.teams.Select(x => x.id).First();

                adapter.ReflectionFeed = JsonConvert.DeserializeObject <Feed> (content, serializerSettings);
//				adapter.ReflectionFeed = await webService.GetReflections(teamId, 0, 10, StoredCookies, csrfToken);
                if (!Activity.IsFinishing)
                {
                    UpdateView();
                }
            } catch (Exception ex) {
            }
        }
Пример #3
0
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            var v = inflater.Inflate(Resource.Layout.fragment_tabstrip, container, false);

            loadingView        = inflater.Inflate(Resource.Layout.loading_view, null, false);
            reflections        = new List <Android.Support.V4.Widget.SwipeRefreshLayout>();
            reflectionsList    = new List <ListView> ();
            reflectionsAdapter = new List <ReflectionAdapter> ();
            if (profile.teams.Count > 0)
            {
                foreach (var team in profile.teams)
                {
                    var rv  = new Android.Support.V4.Widget.SwipeRefreshLayout(Activity);
                    var lv  = new ListView(Activity);
                    var adp = new ReflectionAdapter(Activity);
                    lv.Adapter = adp;
                    rv.AddView(lv);
                    TeamHolder th = new TeamHolder();
                    th.id   = team.id;
                    th.name = team.name;
                    Console.WriteLine(team.slug);
                    rv.Tag = th;
                    reflections.Add(rv);
                    reflectionsList.Add(lv);
                    reflectionsAdapter.Add(adp);
                }
            }

            var uv  = new Android.Support.V4.Widget.SwipeRefreshLayout(Activity);
            var ulv = new ListView(Activity);
            var ula = new ReflectionAdapter(Activity);

            ulv.Adapter = ula;
            uv.AddView(ulv);
            TeamHolder userTeam = new TeamHolder();

            userTeam.id   = -1;
            userTeam.name = "Me";
            uv.Tag        = userTeam;
            reflections.Add(uv);
            reflectionsList.Add(ulv);
            reflectionsAdapter.Add(ula);

            var wv  = new Android.Support.V4.Widget.SwipeRefreshLayout(Activity);
            var wlv = new ListView(Activity);
            var wla = new ReflectionAdapter(Activity);

            wlv.Adapter = wla;
            wv.AddView(wlv);
            TeamHolder worldTeam = new TeamHolder();

            worldTeam.id   = -2;
            worldTeam.name = "World";
            wv.Tag         = worldTeam;
            reflections.Add(wv);
            reflectionsList.Add(wlv);
            reflectionsAdapter.Add(wla);


            currentLayout          = reflections [0];
            currentList            = reflectionsList [0];
            currentAdapter         = reflectionsAdapter [0];
            currentList.Scroll    += HandleScroll;
            currentLayout.Refresh += HandleRefresh;
            adapter = new MyPagerAdapter(reflections);

            pager = v.FindViewById <ViewPager> (Resource.Id.pager);

            tabs          = v.FindViewById <PagerSlidingTabStrip> (Resource.Id.tabs);
            pager.Adapter = adapter;
            tabs.SetViewPager(pager);
            tabs.OnPageChangeListener = this;


            return(v);
        }