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;
                });
            }
        }
Beispiel #2
0
    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;
        });
      }
    }