Example #1
0
        public void UpdateUser()
        {
            HeaderImage.Source  = binding.ProfileBannerURL;
            ProfileImage.Source = binding.ProfileHttpsImageURL;

            if (SetVisibleByText(DescriptionLabel, binding.Description))
            {
                DescriptionLabel.FormattedText = TwitterFormater.ParseFormattedString(binding.Description, binding.descriptionEntities, new List <long>()
                {
                    issuer.ID
                });
            }
            if (SetVisibleByText(LinkLabel, binding.URL))
            {
                LinkLabel.FormattedText = TwitterFormater.ParseFormattedString(binding.URL, binding.URLEntities);
            }
            SetTextHideEmpty(LocationLabel, binding.Location);
            NickNameLabel.Text   = binding.NickName;
            ScreenNameLabel.Text = "@" + binding.ScreenName;
            StatusLabel.Text     = string.Format("{0} 트윗 {1} 마음에 들어요 {2} 팔로워 {3} 팔로잉", binding.StatusesCount, binding.FavouritesCount, binding.FollowerCount, binding.FollowingCount);
        }
        public void Update()
        {
            if (BindingContext is DataStatus)
            {
            }
            else
            {
                return;
            }
            var status  = BindingContext as DataStatus;
            var display = DisplayStatus;

            if (display != status && !NeedToPreventDisplay)
            {
                HeaderView.IsVisible = true;
                HeaderLabel.Text     = string.Format("{0} 님이 리트윗 하셨습니다", status.Creater.NickName);
            }
            else
            {
                HeaderView.IsVisible = false;
            }

            ClearImage();
            LockImage.IsVisible = display.Creater.IsProtected;
            CreatedAtLabel.Text = display.CreatedAt.ToLocalTime().ToString();

            if (NeedToPreventDisplay)
            {
                NameLabel.Text      = "이 유저는 보호된 유저입니다";
                TextLabel.Text      = "이 트윗은 보호된 유저의 트윗입니다";
                MediaGrid.IsVisible = false;
                return;
            }

            NameLabel.Text          = string.Format("{0} @{1}", display.Creater.NickName, display.Creater.ScreenName);
            TextLabel.FormattedText = TwitterFormater.ParseFormattedString(display);

            if (display.ExtendMedias != null)
            {
                MediaGrid.IsVisible = true;
            }
            else
            {
                MediaGrid.IsVisible = false;
            }

            IssuerView.BindingContext = status.Issuer;
            IssuerView.Update();
            UpdateImage();
            UpdateButton();

            if (quoteView != null)
            {
                if (display.QuotedStatus != null)
                {
                    quoteView.BindingContext = display.QuotedStatus;
                    quoteView.Update();
                    QuoteViewFrame.IsVisible = true;
                }
                else
                {
                    quoteView.ClearImage();
                    QuoteViewFrame.IsVisible = false;
                }
            }

            if (display.Polls != null)
            {
                var poll = display.Polls[0];
                PollGroupView.IsVisible = true;
                for (int i = 0; i < poll.Options.Length; i++)
                {
                    pollViews[i].Update(poll, i);
                    PollsView.Children.Add(pollViews[i]);
                }
                if (poll.EndDateTime < DateTime.UtcNow)
                {
                    var leftTime = poll.EndDateTime - DateTime.UtcNow;
                    PollStatusLabel.Text = string.Format("{0}표 • 투표가 끝났습니다", poll.TotalCount);
                }
                else
                {
                    var leftTime = poll.EndDateTime - DateTime.UtcNow;
                    PollStatusLabel.Text = string.Format("{0}표 • {1} 남았습니다.", poll.TotalCount, Util.TimespanToString(leftTime));
                }
            }
            else
            {
                PollsView.Children.Clear();
                PollGroupView.IsVisible = false;
            }
        }