protected override void DetachInnerBindings() { if (Bindings.Any()) { AnimeGridItemMoreButton.SetOnClickListener(null); Container.SetOnClickListener(null); } _bindingsInitialized = false; _oneTimeBindingsInitialized = false; _swipeLayoutInitialized = false; }
protected override void InitOneTimeBindings() { if (_oneTimeBindingsInitialized) { return; } _oneTimeBindingsInitialized = true; if (!Fling && (int)Container.Tag != ViewModel.Id) { ViewModel.AnimeItemDisplayContext = ViewModelLocator.AnimeList.AnimeItemsDisplayContext; var img = Container.FindViewById <ImageViewAsync>(Resource.Id.AnimeGridItemImage); img.AnimeInto(ViewModel.ImgUrl); Container.FindViewById(Resource.Id.AnimeGridItemImgPlaceholder).Visibility = ViewStates.Gone; Container.FindViewById(Resource.Id.AnimeGridItemFavouriteIndicator).Visibility = ViewModel.IsFavouriteVisibility ? ViewStates.Visible : ViewStates.Gone; if (AllowSwipeInGivenContext && ViewModel.Auth) { InitializeSwipeLayout(); } else { DisableSwipe(); } Container.SetOnClickListener(new OnClickListener(view => ContainerOnClick())); AnimeGridItemMoreButton.SetOnClickListener(new OnClickListener(view => AnimeGridItemMoreButtonOnClick())); Container.Tag = ViewModel.Id; } else if (Fling) { Container.FindViewById(Resource.Id.AnimeGridItemImage).Visibility = ViewStates.Invisible; Container.FindViewById(Resource.Id.AnimeGridItemImgPlaceholder).Visibility = ViewStates.Visible; } Container.FindViewById <TextView>(Resource.Id.AnimeGridItemTitle).Text = ViewModel.Title; }
protected override void RootContainerInit() { RootContainer.SetOnClickListener(new OnClickListener(view => ContainerOnClick())); AnimeGridItemMoreButton.SetOnClickListener(new OnClickListener(view => MoreButtonOnClick())); AnimeGridItemTagsButton.SetOnClickListener(new OnClickListener(OnTagsButtonClick)); AnimeGridItemAddToListButton.SetOnClickListener(new OnClickListener(view => ViewModel.AddAnimeCommand.Execute(null))); if (_allowSwipeInGivenContext) { RootContainer.SwipeEnabled = true; RootContainer.SetShowMode(SwipeLayout.ShowMode.LayDown); RootContainer.LeftSwipeEnabled = true; RootContainer.RightSwipeEnabled = true; RootContainer.ClickToClose = false; _swipeListener = new SwipeLayoutListener(); RootContainer.SwipeListener = _swipeListener; RootContainer.AddDrag(SwipeLayout.DragEdge.Right, FindViewById(Resource.Id.AnimeGridItemBackSurfaceAdd)); RootContainer.AddDrag(SwipeLayout.DragEdge.Left, FindViewById(Resource.Id.AnimeGridItemBackSurfaceSubtract)); _swipeListener.OnOpenAction = SwipeOnOpenEvent; } else { RootContainer.SwipeEnabled = false; RootContainer.LeftSwipeEnabled = false; RootContainer.RightSwipeEnabled = false; } if (Settings.MakeGridItemsSmaller) { AnimeGridItemUpperSection.LayoutParameters.Height = DimensionsHelper.DpToPx(174); AnimeGridItemLowerSection.LayoutParameters.Height = DimensionsHelper.DpToPx(44); AnimeGridItemTagsButton.LayoutParameters.Height = AnimeGridItemTagsButton.LayoutParameters.Width = DimensionsHelper.DpToPx(30); AnimeGridItemBackSurfaceAdd.LayoutParameters.Width = DimensionsHelper.DpToPx(66); AnimeGridItemBackSurfaceSubtract.LayoutParameters.Width = DimensionsHelper.DpToPx(72); AnimeGridItemBackSurfaceAdd.GetChildAt(0).TranslationX /= 1.1f; AnimeGridItemCurrentWatchingStatus.SetTextSize(ComplexUnitType.Sp, 13); AnimeGridItemWatchedStatus.SetTextSize(ComplexUnitType.Sp, 13); AnimeGridItemScore.SetTextSize(ComplexUnitType.Sp, 13); AnimeGridItemTopLeftInfoMain.SetTextSize(ComplexUnitType.Sp, 13); AnimeGridItemTopLeftInfoSub.SetTextSize(ComplexUnitType.Sp, 11); AnimeGridItemType.SetTextSize(ComplexUnitType.Sp, 11); AnimeGridItemTitle.SetTextSize(ComplexUnitType.Sp, 13); AnimeGridItemMoreButton.ScaleX = AnimeGridItemMoreButton.ScaleY = .85f; AnimeGridItemFavouriteIndicator.ScaleX = AnimeGridItemMoreButton.ScaleY = .85f; AnimeGridItemTagIcon.ScaleX = AnimeGridItemTagIcon.ScaleY = .85f; } if (Settings.ReverseSwipingDirection) { AnimeGridItemBackSurfaceAdd.SetBackgroundColor(new Color(ResourceExtension.BrushFlyoutBackground)); SurfaceAddIcon.SetImageResource(Resource.Drawable.icon_minus); SurfaceAddIcon.ImageTintList = ColorStateList.ValueOf(new Color(ResourceExtension.BrushText)); AnimeGridItemBackSurfaceSubtract.SetBackgroundColor(new Color(ResourceExtension.AccentColour)); SurfaceSubtractIcon.SetImageResource(Resource.Drawable.icon_add); SurfaceSubtractIcon.ImageTintList = ColorStateList.ValueOf(Color.White); } }