Exemplo n.º 1
0
 protected override ContentRow GetRow(Notification item)
 {
     return(new TitleDynamicRow {
         Text = BclEx.RemoveHtmlTags(item.body),
         Details = BclEx.OffsetFromNow(item.creation_date),
         AfterGetCellInit = cell => {
             cell._image.SetImage(new NSUrl(item.site.logo_url), placeholder);
         }
     });
 }
Exemplo n.º 2
0
 public CommentListRow(Comment comment)
 {
     _comment = comment;
     _body    = _comment.BodyDecoded;
     if (_body.IsNotNullOrEmpty())
     {
         _body = BclEx.RemoveHtmlTags(_body);
         _body = _body.Trim();
         _body = _body.CollapseWhitespace();
     }
 }
Exemplo n.º 3
0
        public AnswerListRow(Post post, bool isDetails)
        {
            _isDetails = isDetails;
            _post      = post;

            _body = _post.BodyDecoded;
            if (_body.IsNotNullOrEmpty())
            {
                _body = BclEx.RemoveHtmlTags(_body);
                _body = _body.Trim();
                _body = _body.CollapseWhitespace();
            }
        }
Exemplo n.º 4
0
        public async override void ViewDidLoad()
        {
            try {
                LongRunning = true;
                base.ViewDidLoad();

                AddTableHeader(InitializeHeader());

                var response = await ServiceProxy.GetUserById(_shallowUser.user_id);

                var user = response.items.First();

                AddValue1FixedRow("Reputation", user.reputation.ToString());

                if (user.age > 0)
                {
                    AddValue1FixedRow("Age", user.age.ToString());
                }

                AddRow(new Value1FixedRow {
                    Text          = "Questions",
                    Details       = user.question_count.ToString(),
                    Accessory     = UITableViewCellAccessory.DisclosureIndicator,
                    NavController = () => new QuestionsByUserController(user.user_id)
                });

                AddRow(new Value1FixedRow {
                    Text          = "Answers",
                    Details       = user.answer_count.ToString(),
                    Accessory     = UITableViewCellAccessory.DisclosureIndicator,
                    NavController = () => new AnswersForUserController(user.user_id)
                });

                AddRow(new DefaultFixedRow {
                    Text             = "Badges",
                    IsFixed          = true,
                    NavController    = () => new BadgesController(user.user_id),
                    Accessory        = UITableViewCellAccessory.DisclosureIndicator,
                    AfterGetCellInit = cell => {
                        float offset = 90;

                        if (user.badge_counts.silver > 999)
                        {
                            offset -= 4;
                        }

                        if (user.badge_counts.bronze > 999)
                        {
                            offset -= 4;
                        }

                        if (user.badge_counts.gold > 0)
                        {
                            var label = new UILabel {
                                Text = user.badge_counts.gold.ToString()
                            };
                            var image = new UIImageView(UIImage.FromFile("badges/gold.png"));
                            cell.ContentView.Add(label);
                            cell.ContentView.Add(image);
                            label.Frame = new RectangleF(offset, 10, label.StringSize(label.Text, label.Font).Width, 24);
                            image.Frame = new RectangleF(label.Frame.X + label.Frame.Width, 10, 24, 24);
                            offset     += label.Frame.Width + image.Frame.Width + 8;
                        }

                        if (user.badge_counts.silver > 0)
                        {
                            var label = new UILabel {
                                Text = user.badge_counts.silver.ToString()
                            };
                            var image = new UIImageView(UIImage.FromFile("badges/silver.png"));
                            cell.ContentView.Add(label);
                            cell.ContentView.Add(image);
                            label.Frame = new RectangleF(offset, 10, label.StringSize(label.Text, label.Font).Width, 24);
                            image.Frame = new RectangleF(label.Frame.X + label.Frame.Width, 10, 24, 24);
                            offset     += label.Frame.Width + image.Frame.Width + 8;
                        }

                        if (user.badge_counts.bronze > 0)
                        {
                            var label = new UILabel {
                                Text = user.badge_counts.bronze.ToString()
                            };
                            var image = new UIImageView(UIImage.FromFile("badges/bronze.png"));
                            cell.ContentView.Add(label);
                            cell.ContentView.Add(image);
                            label.Frame = new RectangleF(offset, 10, label.StringSize(label.Text, label.Font).Width, 24);
                            image.Frame = new RectangleF(label.Frame.X + label.Frame.Width, 10, 24, 24);
                            offset     += label.Frame.Width + image.Frame.Width + 8;
                        }
                    }
                });

                AddRow(new DefaultFixedRow {
                    Text          = "Favorites",
                    NavController = () => new FavoritesByUserController(user.user_id, true),
                    Accessory     = UITableViewCellAccessory.DisclosureIndicator
                });

                AddRow(new DefaultFixedRow {
                    Text          = "Mentions",
                    NavController = () => new UserMentionsController(user),
                    Accessory     = UITableViewCellAccessory.DisclosureIndicator
                });

                AddRow(new DefaultFixedRow {
                    Text          = "Top Tags",
                    NavController = () => new TopTagsForUserController(user.user_id),
                    Accessory     = UITableViewCellAccessory.DisclosureIndicator
                });

                AddValue1FixedRow("Profile Created", BclEx.OffsetFromNow(user.creation_date));

                AddSubtitleFixedRow("Votes", string.Format("{0} \uD83D\uDC4D, {1} \uD83D\uDC4E", user.up_vote_count, user.down_vote_count));

                if (user.is_employee)
                {
                    AddDefaultFixedRow("He is StackExchange employee");
                }

                AddRow(new SubtitleFixedRow {
                    Text          = "Activity",
                    Details       = "Last seen " + BclEx.OffsetFromNow(user.last_access_date),
                    NavController = () => new TimelineController(user.user_id),
                    Accessory     = UITableViewCellAccessory.DisclosureIndicator
                });

                if (user.location.IsNotNullOrEmpty())
                {
                    AddSubtitleDynamicRow("Location", user.location);
                }

                AddValue1FixedRow("Profile Views", user.view_count.ToString());

                if (user.website_url.IsNotNullOrEmpty())
                {
                    AddRow(new SubtitleFixedRow
                    {
                        Text          = "Website",
                        Details       = user.website_url,
                        Accessory     = UITableViewCellAccessory.DisclosureIndicator,
                        NavController = () => new WebBrowserController(user.website_url)
                    });
                }

                string bio = user.about_me;
                if (bio.IsNotNullOrEmpty())
                {
                    bio = HttpUtility.HtmlDecode(bio);
                    bio = BclEx.RemoveHtmlTags(bio);
                    bio = bio.Trim();
                    bio = bio.CollapseWhitespace();
                }

                if (bio.IsNotNullOrEmpty())
                {
                    AddRow(new SubtitleDynamicRow {
                        Text          = "About",
                        Details       = bio,
                        MaxHeight     = 80,
                        Accessory     = UITableViewCellAccessory.DisclosureIndicator,
                        NavController = () => new UserBioController(user)
                    });
                }

                ForceReloadData();

                await Database.AddUserHistory(_shallowUser.user_id);
            }
            catch (Exception ex) {
                this.UnhandledError(ex);
            }
        }