//public void Update(FeedItemModel feed)
        public void Update(UIView container, RewardResponseModel rewardResponse, RewardItemModel reward, RewardDetailViewController ctrl = null)
        {
            ResponseCode = rewardResponse?.ResponseCode ?? 0;
            Container    = container;
            Controller   = ctrl;

            UpdateFonts();

            //float backgroundToOverlayWidthRatio = 0.9227f;      //from spec
            //float backgroundToOverlayHegithRatio = 0.761f;

            //float backgroundToOverlayHegithRatio = 0.461f;
            nfloat width  = container.Frame.Width;
            nfloat height = width * 0.89f;                            //cell.Height;
            nfloat x      = (container.Frame.Width - width) / 2.0f;   //center in overlay
            nfloat y      = (container.Frame.Height - height) / 2.0f; //center in overlay

            Frame = new CGRect(x, y, width, height);

            CloseButton.TouchUpInside             += CloseAction;
            (Container as UIButton).TouchUpInside += CloseAction;

            apologizeLabel.Text = rewardResponse.ResponseCode > 0 ? "Congratulations, " : "Oh No, we`re sorry!";
            reasonLabel.Text    = rewardResponse.ResponseCode > 0 ? "You got this reward!" : "You did not get this reward...";

            MessageText.Text = !string.IsNullOrWhiteSpace(rewardResponse.ResponseMessage) ? rewardResponse.ResponseMessage
                : (rewardResponse.ResponseCode > 0 ? $"You spent {reward.MinScore} pts" : "There are no more units available");
            MessageText.Lines = 0;//can be 5 lines if email not confirmed

            if (rewardResponse.ResponseCode <= 0)
            {
                btnSeeOtherRewards.Hidden = false;
                btnSeeOtherRewards.SetTitle("See what other rewards you qualify for >", UIControlState.Normal);
                btnSeeOtherRewards.TouchUpInside += (object sender, EventArgs e) =>
                {
                    onViewClosed?.Invoke();
                    container.RemoveFromSuperview();
                    ctrl?.NavigationController.PopViewController(true);//go to rewards list
                };
            }

            EventImage.ContentMode     = UIViewContentMode.ScaleAspectFit;
            EventImage.BackgroundColor = UIColor.White; // Border Color

            double borderMultiplier  = 0.265;
            double contentMultiplier = 0.25;

            var borderMaskImageView = new UIImageView();

            borderMaskImageView.Image       = UIImage.FromBundle("Polygon-mask1");
            borderMaskImageView.Frame       = new CGRect(0, 0, container.Frame.Width * borderMultiplier, (container.Frame.Width * borderMultiplier) * 1.1);
            borderMaskImageView.ContentMode = UIViewContentMode.ScaleAspectFit;

            var contentMaskImageView = new UIImageView();

            contentMaskImageView.Image       = UIImage.FromBundle("Polygon-mask1");
            contentMaskImageView.Frame       = new CGRect(0, 0, container.Frame.Width * contentMultiplier, (container.Frame.Width * contentMultiplier) * 1.1);
            contentMaskImageView.ContentMode = UIViewContentMode.ScaleAspectFit;

            float startContentX = (float)(container.Frame.Width * borderMultiplier - container.Frame.Width * contentMultiplier) / 2;
            float startContentY = (float)((container.Frame.Width * borderMultiplier) * 1.1 - (container.Frame.Width * contentMultiplier) * 1.1) / 2;

            var profileImage = new UIImageView();

            //profileImage.Image = UIImage.FromBundle("CellImagePlaceholder"); //hardcode
            profileImage.BackgroundColor = UIColor.Gray;
            ImageService.Instance.LoadUrl(reward.MainImageURL).Into(profileImage);

            profileImage.ContentMode = UIViewContentMode.ScaleAspectFill;
            profileImage.MaskView    = contentMaskImageView;

            // Make a little bit smaller to show "border" image behind it
            profileImage.Frame = new CGRect(startContentX, startContentY, container.Frame.Width * contentMultiplier, (container.Frame.Width * contentMultiplier) * 1.1);

            EventImage.MaskView = borderMaskImageView;
            EventImage.AddSubview(profileImage);

            if (rewardResponse.ResponseCode > 0)
            {
                collectButton.Hidden         = false;
                collectButton.TouchUpInside += (object sender, EventArgs e) =>
                {
                    var webView = new WKWebView(ctrl.View.Frame, new WKWebViewConfiguration());
                    webView.NavigationDelegate = new NavDelegate(this);
                    Overlay = Platform.AddOverlay(ctrl.View, webView.Frame, UIColor.White, true, true, 0.1f);
                    webView.LoadRequest(new NSUrlRequest(new NSUrl("https://socialladder.rkiapps.com/SL/HelpDesk/RewardStatus?deviceUUID=" + SL.DeviceUUID + "&AreaGUID=" + SL.AreaGUID)));
                    ctrl.View.AddSubview(webView);

                    onViewClosed?.Invoke();
                    container.RemoveFromSuperview();
                };
            }
        }