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)); }
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); }