public void OnDataChanged(DataEventBuffer dataEvents) { var dataEvent = Enumerable.Range(0, dataEvents.Count) .Select(i => dataEvents.Get(i).JavaCast <IDataEvent>()) .FirstOrDefault(de => de.Type == DataEvent.TypeChanged && de.DataItem.Uri.Path == TweetsPath + "/Answer"); if (dataEvent == null) { return; } var dataMapItem = DataMapItem.FromDataItem(dataEvent.DataItem); var map = dataMapItem.DataMap; var tweets = new List <Tweet>(); var data = map.GetDataMapArrayList("Tweets"); foreach (var d in data) { tweets.Add(new Tweet { ScreenName = d.GetString("ScreenName", "<no name>"), Text = d.GetString("Text", "<no name>"), CreatedAt = new DateTime(d.GetLong("CreatedAt", DateTime.Now.Ticks)) }); } if (tweets.Any()) { handler.Post(() => { var adapter = new TweetAdapter(FragmentManager, tweets); viewPager.Adapter = adapter; viewPager.OffscreenPageCount = 5; progress.Visibility = ViewStates.Gone; viewPager.Visibility = ViewStates.Visible; }); } }
public void OnDataChanged(DataEventBuffer dataEvents) { var dataEvent = Enumerable.Range(0, dataEvents.Count) .Select(i => dataEvents.Get(i).JavaCast<IDataEvent>()) .FirstOrDefault(de => de.Type == DataEvent.TypeChanged && de.DataItem.Uri.Path == TweetsPath + "/Answer"); if (dataEvent == null) return; var dataMapItem = DataMapItem.FromDataItem(dataEvent.DataItem); var map = dataMapItem.DataMap; var tweets = new List<Tweet>(); var data = map.GetDataMapArrayList("Tweets"); foreach (var d in data) { tweets.Add(new Tweet { ScreenName = d.GetString("ScreenName", "<no name>"), Text = d.GetString("Text", "<no name>"), CreatedAt = new DateTime(d.GetLong("CreatedAt", DateTime.Now.Ticks)) }); } if (tweets.Any()) { handler.Post(() => { var adapter = new TweetAdapter(FragmentManager, tweets); viewPager.Adapter = adapter; viewPager.OffscreenPageCount = 5; progress.Visibility = ViewStates.Gone; viewPager.Visibility = ViewStates.Visible; }); } }