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()); } }
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) { } }
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); }