protected override void InitBindings()
        {
            ForumBoardPageIcon.Typeface = FontManager.GetTypeface(Activity, FontManager.TypefacePath);

            Bindings.Add(
                this.SetBinding(() => ViewModel.LoadingTopics,
                                () => ForumBoardPageLoadingSpinner.Visibility).ConvertSourceToTarget(Converters.BoolToVisibility));

            Bindings.Add(
                this.SetBinding(() => ViewModel.Title,
                                () => ForumBoardPageTitle.Text));

            Bindings.Add(this.SetBinding(() => ViewModel.Icon).WhenSourceChanges(() =>
            {
                ForumBoardPageIcon.SetText(DummyFontAwesomeToRealFontAwesomeConverter.Convert(ViewModel.Icon));
            }));

            Bindings.Add(
                this.SetBinding(() => ViewModel.SearchButtonVisibility,
                                () => ForumBoardPageSearchButton.Visibility)
                .ConvertSourceToTarget(Converters.BoolToVisibility));

            Bindings.Add(
                this.SetBinding(() => ViewModel.NewTopicButtonVisibility,
                                () => ForumBoardPageActionButton.Visibility).ConvertSourceToTarget(Converters.BoolToVisibility));

            ForumBoardPageActionButton.Click += (sender, args) => ViewModel.CreateNewTopicCommand.Execute(null);


            Bindings.Add(this.SetBinding(() => ViewModel.Topics).WhenSourceChanges(() =>
            {
                ForumBoardPagePostsList.Adapter = ViewModel.Topics.GetAdapter(GetTopicTemplateDelegate);
            }));

            Bindings.Add(
                this.SetBinding(() => ViewModel.EmptyNoticeVisibility,
                                () => ForumBoardPageEmptyNotice.Visibility).ConvertSourceToTarget(Converters.BoolToVisibility));

            ForumBoardPageSearchButton.Click += async(sender, args) =>
            {
                var str = await TextInputDialogBuilder.BuildInputTextDialog(Context, "Search", "keyword...", "Go");

                if (!string.IsNullOrEmpty(str))
                {
                    ViewModel.SearchQuery = str;
                    ViewModel.SearchCommand.Execute(null);
                }
            };

            ForumBoardPageGotoPageButton.SetOnClickListener(new OnClickListener(OnGotoPageButtonClick));

            Bindings.Add(this.SetBinding(() => ViewModel.AvailablePages).WhenSourceChanges(UpdatePageSelection));
        }
Beispiel #2
0
        protected override void BindModelBasic()
        {
            ForumIndexPageBoardItemIcon.SetText(DummyFontAwesomeToRealFontAwesomeConverter.Convert(ViewModel.Icon));

            ForumIndexPageBoardItemBoardName.Text =
                ViewModel.Entry.Name;
            ForumIndexPageBoardItemDecription.Text =
                ViewModel.Entry.Description;

            switch (ViewModel.Board)
            {
            case ForumBoards.Updates:
                ForumIndexPageBoardItemListHeader.Visibility = ViewStates.Visible;
                ForumIndexPageBoardItemListHeader.Text       = "MyAnimeList";
                break;

            case ForumBoards.NewsDisc:
                ForumIndexPageBoardItemListHeader.Visibility = ViewStates.Visible;
                ForumIndexPageBoardItemListHeader.Text       = "Anime & Manga";
                break;

            case ForumBoards.Intro:
                ForumIndexPageBoardItemListHeader.Visibility = ViewStates.Visible;
                ForumIndexPageBoardItemListHeader.Text       = "General";
                break;

            default:
                ForumIndexPageBoardItemListHeader.Visibility = ViewStates.Gone;
                break;
            }

            if (_binding == null)
            {
                if (_parentViewModel.LoadingSideContentVisibility)
                {
                    ForumIndexPageBoardItemBoardProgressBar.Visibility = ViewStates.Visible;
                    ForumIndexPageBoardItemPeekPostSection.Visibility  = ViewStates.Invisible;
                }
                else
                {
                    ForumIndexPageBoardItemBoardProgressBar.Visibility = ViewStates.Gone;
                    ForumIndexPageBoardItemPeekPostSection.Visibility  = ViewStates.Visible;
                    OnFinishedLoading();
                }
            }
        }
        private View GetTopicTemplateDelegate(int i, ForumTopicEntryViewModel forumTopicEntryViewModel, View arg3)
        {
            var view = arg3;

            if (view == null)
            {
                view = Activity.LayoutInflater.Inflate(Resource.Layout.ForumBoardPagePostItem, null);

                var root = view.FindViewById(Resource.Id.ForumBordPagePostItemRootContainer);
                root.Click += PostOnClick;
                root.SetOnLongClickListener(new OnLongClickListener(OnLongClickAction));
                view.FindViewById(Resource.Id.ForumBordPagePostItemLastPostSection).Click       += LastPostOnClick;
                view.FindViewById <TextView>(Resource.Id.ForumBordPagePostItemPollIcon).Typeface =
                    FontManager.GetTypeface(Activity, FontManager.TypefacePath);
            }
            view.Tag = forumTopicEntryViewModel.Wrap();

            view.FindViewById(Resource.Id.ForumBordPagePostItemRootContainer).SetBackgroundResource(i % 2 == 0 ? ResourceExtension.BrushRowAlternate1Res : ResourceExtension.BrushRowAlternate2Res);

            if (forumTopicEntryViewModel.FontAwesomeIcon == FontAwesomeIcon.None)
            {
                view.FindViewById(Resource.Id.ForumBordPagePostItemPollIcon).Visibility = ViewStates.Gone;
            }
            else
            {
                var icnView = view.FindViewById <TextView>(Resource.Id.ForumBordPagePostItemPollIcon);
                icnView.Visibility = ViewStates.Visible;
                icnView.SetText(DummyFontAwesomeToRealFontAwesomeConverter.Convert(forumTopicEntryViewModel.FontAwesomeIcon));
            }

            view.FindViewById <TextView>(Resource.Id.ForumBordPagePostItemTitle).Text =
                forumTopicEntryViewModel.Data.Title;
            view.FindViewById <TextView>(Resource.Id.ForumBordPagePostItemOpAndDate).Text =
                $"{forumTopicEntryViewModel.Data.Op} {forumTopicEntryViewModel.Data.Created}";
            view.FindViewById <TextView>(Resource.Id.ForumBordPagePostItemReplies).Text =
                forumTopicEntryViewModel.Data.Replies;
            view.FindViewById <TextView>(Resource.Id.ForumBordPagePostItemLastPostAuthor).Text =
                forumTopicEntryViewModel.Data.LastPoster;
            view.FindViewById <TextView>(Resource.Id.ForumBordPagePostItemLastPostDate).Text =
                forumTopicEntryViewModel.Data.LastPostDate;

            view.FindViewById(Resource.Id.ForumBordPagePostItemLastPostSection).Tag = forumTopicEntryViewModel.Wrap();

            return(view);
        }