Example #1
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            var split         = new SplitButtonElement();
            var followers     = split.AddButton("Followers", "-", () => ViewModel.GoToFollowersCommand.ExecuteIfCan());
            var following     = split.AddButton("Following", "-", () => ViewModel.GoToFollowingCommand.ExecuteIfCan());
            var events        = new DialogStringElement("Events", () => ViewModel.GoToEventsCommand.ExecuteIfCan(), Images.Rss);
            var organizations = new DialogStringElement("Organizations", () => ViewModel.GoToOrganizationsCommand.ExecuteIfCan(), Images.Organization);
            var repos         = new DialogStringElement("Repositories", () => ViewModel.GoToRepositoriesCommand.ExecuteIfCan(), Images.Repo);
            var gists         = new DialogStringElement("Gists", () => ViewModel.GoToGistsCommand.ExecuteIfCan(), Images.Gist);

            Root.Reset(new [] { new Section {
                                    split
                                }, new Section {
                                    events, organizations, repos, gists
                                } });

            this.WhenAnyValue(x => x.ViewModel.User).IsNotNull().Subscribe(x =>
            {
                HeaderView.ImageUri = x.AvatarUrl;
                followers.Text      = x.Followers.ToString();
                following.Text      = x.Following.ToString();
                HeaderView.SubText  = string.IsNullOrEmpty(x.Name) ? null : x.Name;
                RefreshHeaderView();
            });
        }
Example #2
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            var split     = new SplitButtonElement();
            var followers = split.AddButton("Followers", "-", ViewModel.GoToFollowersCommand.ExecuteIfCan);
            var following = split.AddButton("Following", "-", ViewModel.GoToFollowingCommand.ExecuteIfCan);
            var members   = new DialogStringElement("Members", ViewModel.GoToMembersCommand.ExecuteIfCan, Images.Following);
            var teams     = new DialogStringElement("Teams", ViewModel.GoToTeamsCommand.ExecuteIfCan, Images.Organization);
            var events    = new DialogStringElement("Events", ViewModel.GoToEventsCommand.ExecuteIfCan, Images.Rss);
            var repos     = new DialogStringElement("Repositories", ViewModel.GoToRepositoriesCommand.ExecuteIfCan, Images.Repo);
            var gists     = new DialogStringElement("Gists", ViewModel.GoToGistsCommand.ExecuteIfCan, Images.Gist);

            Root.Reset(new Section {
                split
            }, new Section {
                members, teams
            }, new Section {
                events
            }, new Section {
                repos, gists
            });

            this.WhenAnyValue(x => x.ViewModel.Organization)
            .IsNotNull()
            .Subscribe(x =>
            {
                followers.Text      = x != null ? x.Followers.ToString() : "-";
                following.Text      = x != null ? x.Following.ToString() : "-";
                HeaderView.ImageUri = x.AvatarUrl;
                RefreshHeaderView();
            });
        }
Example #3
0
        private void Render()
        {
            var model = ViewModel.Repository;
            var sec1  = new Section();

            sec1.Add(_splitElements);
            sec1.Add(_ownerElement);

            if (model.Parent != null)
            {
                var parent = new StyledStringElement("Forked From", model.Parent.FullName)
                {
                    Image = Images.Fork, Accessory = UITableViewCellAccessory.DisclosureIndicator
                };
                parent.Tapped += () => ViewModel.GoToForkParentCommand.Execute(model.Parent);
                sec1.Add(parent);
            }

            var events = new DialogStringElement("Events", ViewModel.GoToEventsCommand.ExecuteIfCan, Images.Rss);
            var sec2   = new Section {
                events
            };

            if (model.HasIssues)
            {
                sec2.Add(new DialogStringElement("Issues", ViewModel.GoToIssuesCommand.ExecuteIfCan, Images.IssueOpened));
            }

            if (ViewModel.Readme != null)
            {
                sec2.Add(new DialogStringElement("Readme", ViewModel.GoToReadmeCommand.ExecuteIfCan, Images.Book));
            }

            Root.Reset(new Section {
                _split
            }, sec1, sec2, _sourceSection);

            if (!string.IsNullOrEmpty(model.Homepage))
            {
                Root.Add(new Section {
                    new DialogStringElement("Website", ViewModel.GoToHomepageCommand.ExecuteIfCan, Images.Globe)
                });
            }
        }