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

            NavigationItem.Title = "Add Review";
            UpdateFonts();
            AddStartRatingView();


            var set = this.CreateBindingSet <MovieReviewView, MovieReviewViewModel>();

            set.Bind(titleTextField).For(p => p.Text).To(vm => vm.Title);
            set.Bind(commentsTextField).For(p => p.Text).To(vm => vm.Review);
            set.Bind(view).For(p => p.Value).To(vm => vm.Rating);
            set.Bind(ratingCount).For(p => p.Text).To(vm => vm.Rating).Mode(MvvmCross.Binding.MvxBindingMode.OneWay);
            set.Apply();

            SetupNavigationBar();

            ViewModel.PropertyChanged += ViewModel_PropertyChanged;

            writeReviewButton.BackgroundColor     = UIColorUtils.GetAppThemeColor();
            writeReviewButton.Layer.CornerRadius  = 10;
            writeReviewButton.Layer.MasksToBounds = true;

            cancelButton.BackgroundColor     = UIColorUtils.GetAppThemeColor();
            cancelButton.Layer.CornerRadius  = 10;
            cancelButton.Layer.MasksToBounds = true;

            View.AddGestureRecognizer(new UITapGestureRecognizer(DismissKeyboard));
        }
예제 #2
0
        protected override UICollectionViewCell GetOrCreateCellFor(UICollectionView collectionView, NSIndexPath indexPath, object item)
        {
            var cell = (GenreCollectionCell)base.GetOrCreateCellFor(collectionView, indexPath, item);

            if (cell is IMvxDataConsumer dataConsumer)
            {
                var dataItem = (Genre)item;
                dataConsumer.DataContext = dataItem;
                if (dataItem.IsSelected)
                {
                    cell.BackgroundColor = UIColorUtils.GetAppThemeColor();
                    cell.UpdateLabelColor(UIColor.White);
                    cell.Selected            = true;
                    cell.Layer.BorderWidth   = 0f;
                    cell.Layer.ShadowColor   = UIColorUtils.GetAppThemeColor().CGColor;
                    cell.Layer.ShadowOffset  = new CGSize(1.0, 2.0);
                    cell.Layer.ShadowRadius  = 1.5f;
                    cell.Layer.ShadowOpacity = 1.0f;
                    cell.Layer.MasksToBounds = false;
                }
                else
                {
                    cell.BackgroundColor = UIColorUtils.GetBorderColor();
                    cell.UpdateLabelColor(UIColorUtils.GetAppTextLightColor());
                    cell.Layer.ShadowOffset  = new CGSize(0.0, 0.0);
                    cell.Layer.ShadowRadius  = 0.0f;
                    cell.Layer.ShadowOpacity = 0.0f;
                }
            }
            return(cell);
        }
예제 #3
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            ImageService
            .Instance
            .LoadUrl(ViewModel.MovieDetails.PosterUrl)
            .Into(posterImageView);

            tagsCollectionView.RegisterNibForCell(GenreCollectionCell.Nib, GenreCollectionCell.Key);
            var source = new GenreCollectionViewFlowLayoutSource(tagsCollectionView, GenreCollectionCell.Key);

            tagsCollectionView.Delegate = source;
            tagsCollectionView.Source   = source;

            var set = this.CreateBindingSet <MovieDetailsView, MovieDetailsViewModel>();

            set.Bind(titleLabel).For(p => p.Text).To(vm => vm.MovieDetails.Title);
            set.Bind(releaseDateLabel).For(p => p.Text).To(vm => vm.MovieDetails.ReleaseDate);
            set.Bind(ratingLabel).For(p => p.Text).To(vm => vm.MovieDetails.VoteAverage);
            votesLabel.Text = $" - {ViewModel.MovieDetails.VoteCount} Votes";
            set.Bind(overviewLabel).For(p => p.Text).To(vm => vm.MovieDetails.Overview);

            set.Bind(source).For(p => p.ItemsSource).To(vm => vm.MovieDetails.Genres);

            //Review view bindings
            set.Bind(reviewTitleLabel).For(p => p.Text).To(vm => vm.CurrentMovieReview.Title);
            set.Bind(reviewRatingView).For(p => p.Text).To(vm => vm.CurrentMovieReview.Rating);
            set.Bind(reviewDetailsTextView).For(p => p.Text).To(vm => vm.CurrentMovieReview.Review);
            set.Apply();

            scrollView.ContentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentBehavior.Never;

            if (ViewModel.CurrentMovieReview != null)
            {
                reviewView.Hidden = false;
                AddAttachment();
            }
            else
            {
                reviewView.Hidden = true;
            }

            UpdateFavoriteStatus();

            writeReviewButton.BackgroundColor     = UIColorUtils.GetAppThemeColor();
            writeReviewButton.Layer.CornerRadius  = 10;
            writeReviewButton.Layer.MasksToBounds = true;

            attachmentImageView.Layer.CornerRadius  = attachmentImageView.Frame.Height / 3;
            attachmentImageView.Layer.MasksToBounds = true;

            UpdateFonts();

            ViewModel.PropertyChanged += ViewModel_PropertyChanged;
        }
예제 #4
0
        private void AddStartRatingView()
        {
            view                 = new RatingView();
            view.Frame           = starRating.Bounds;
            view.Path            = PathConstants.Star;
            view.ColorOn         = UIColorUtils.GetAppThemeColor();
            view.OutlineOffColor = UIColorUtils.GetAppTextDarkColor();
            view.Value           = ViewModel.Rating == null ? 0 : (double)ViewModel.Rating;
            view.ValueChanged   += View_ValueChanged;

            starRating.AddSubview(view);
        }
예제 #5
0
 private void UpdateFavoriteStatus()
 {
     if (ViewModel.MovieDetails.IsFavorite)
     {
         favoriteImageView.Image     = UIImage.FromBundle("favorite-filled").ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate);
         favoriteImageView.TintColor = UIColor.Red;
     }
     else
     {
         favoriteImageView.Image     = UIImage.FromBundle("favorite-gray").ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate);
         favoriteImageView.TintColor = UIColorUtils.GetAppTextLightColor();
     }
 }
        protected override UICollectionViewCell GetOrCreateCellFor(UICollectionView collectionView, NSIndexPath indexPath, object item)
        {
            var cell = (GenreCollectionCell)base.GetOrCreateCellFor(collectionView, indexPath, item);

            if (cell is IMvxDataConsumer dataConsumer)
            {
                var dataItem = (string)item;
                dataConsumer.DataContext = dataItem;
                cell.BackgroundColor     = UIColorUtils.GetBorderColor();
                cell.UpdateLabelColor(UIColorUtils.GetAppTextLightColor());
            }
            return(cell);
        }
예제 #7
0
        public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
        {
            // create a new window instance based on the screen size
            //Window = new UIWindow(UIScreen.MainScreen.Bounds);
            //Window.RootViewController = new UIViewController();

            // make the window visible
            //Window.MakeKeyAndVisible();

            UITabBar.Appearance.TintColor = UIColorUtils.GetAppThemeColor();
            UINavigationBar.Appearance.SetTitleTextAttributes(new UITextAttributes()
            {
                Font = FontUtils.GetBoldFont(20)
            });

            return(base.FinishedLaunching(application, launchOptions));
        }
예제 #8
0
        protected override UICollectionViewCell GetOrCreateCellFor(UICollectionView collectionView, NSIndexPath indexPath, object item)
        {
            if (currentViewModel is DiscoverViewModel discoverViewModel)
            {
                if (discoverViewModel.ViewType == ViewType.List)
                {
                    var listCell = (MovieListCell)collectionView.DequeueReusableCell(MovieListCell.Key, indexPath);
                    listCell.favoriteButtonImplementor = this;
                    if (((Movie)item).IsFavorite)
                    {
                        listCell.favoriteImageView.Image     = UIImage.FromBundle("favorite-filled").ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate);
                        listCell.favoriteImageView.TintColor = UIColor.Red;
                    }
                    else
                    {
                        listCell.favoriteImageView.Image     = UIImage.FromBundle("favorite-gray").ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate);
                        listCell.favoriteImageView.TintColor = UIColorUtils.GetAppTextLightColor();
                    }
                    return(listCell);
                }
            }

            var cell = (MovieCollectionCell)base.GetOrCreateCellFor(collectionView, indexPath, item);

            cell.favoriteButtonImplementor = this;
            var movie = (Movie)item;

            if (movie.IsFavorite)
            {
                cell.favoriteImageView.Image     = UIImage.FromBundle("favorite-filled").ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate);
                cell.favoriteImageView.TintColor = UIColor.Red;
            }
            else
            {
                cell.favoriteImageView.Image     = UIImage.FromBundle("favorite-gray").ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate);
                cell.favoriteImageView.TintColor = UIColorUtils.GetAppTextLightColor();
            }
            return(cell);
        }