private void RewardCommitResponse(RewardResponseModel rewardResponse)
        {
            Action onSubmmitCompleted = (() =>
            {
                RestoreRewardButtonState();
            });

            if (rewardResponse != null)
            {
                if (rewardResponse.RewardAction == "UPDATE" && rewardResponse.UpdatedReward != null)
                {
                    this.Reward = rewardResponse.UpdatedReward;
                    Refresh();
                }

                if (rewardResponse.ResponseCode > 0 && string.IsNullOrEmpty(rewardResponse.ResponseMessage))
                {
                    AddButtonTapGreenAnimation(() =>
                    {
                        var overlay = Platform.AddOverlay(UIApplication.SharedApplication.KeyWindow.Frame, Colors.RewardsGreenAnimationCircleColor, true);
                        SubmitComplete(RewardButton, rewardResponse, onSubmmitCompleted);
                        RewardCompleteView rewardComplete = RewardCompleteView.Create();
                        rewardComplete.onViewClosed      += RestoreRewardButtonState;
                        overlay.AddSubview(rewardComplete);
                        RewardButton.SetBackgroundImage(UIImage.FromBundle("claim-btn_success"), UIControlState.Normal);
                        lblClaimIt.Text          = string.Empty;
                        lblPointsButtonText.Text = "Claimed";
                        rewardComplete.Update(overlay, rewardResponse, Reward, this);
                    });
                    return;
                }

                //if (Overlay != null)
                //{
                AddButtonTapRedAnimation(() =>
                {
                    var overlay = Platform.AddOverlay(UIApplication.SharedApplication.KeyWindow.Frame, Colors.RewardsRedAnimationCircleColor, true);
                    SubmitComplete(RewardButton, rewardResponse, onSubmmitCompleted);
                    RewardCompleteView rewardComplete = RewardCompleteView.Create();
                    rewardComplete.onViewClosed      += RestoreRewardButtonState;
                    overlay.AddSubview(rewardComplete);
                    RewardButton.SetBackgroundImage(UIImage.FromBundle("claim-btn_fail"), UIControlState.Normal);
                    lblClaimIt.Text          = string.Empty;
                    lblPointsButtonText.Text = "Didn't Get";
                    LockImage.Hidden         = true;
                    rewardComplete.Update(overlay, rewardResponse, Reward, this);
                });
                //}
            }
        }
Beispiel #2
0
        private void OnRewardDrillDownCompleted(RewardResponseModel model)
        {
            //if (ShouldDrillUpImmediately && model.RewardList != null && model.RewardList.Count == 0)
            //{
            //    UIStoryboard board = UIStoryboard.FromName("Rewards", null);
            //    var ctrl = board.InstantiateViewController("RewardCollectionViewController") as RewardCollectionViewController;

            //    SL.RewardList = null;
            //    ShouldDrillUpImmediately = false;

            //    UIViewController parentController = Platform.RootViewController;
            //    if (parentController?.GetType() == typeof(SLNavigationController))
            //    {
            //        ctrl.IsChangingAreasDisabled = false;
            //        var child = parentController.ChildViewControllers[0];
            //        (child as MainViewController).SwapInViewController(ctrl, (int)ENavigationTabs.REWARDS);
            //        return;
            //    }

            //    parentController = Platform.TopViewController;
            //    if (parentController?.GetType() == typeof(SLNavigationController))
            //    {
            //        var child = parentController.ChildViewControllers[0];
            //        ctrl.IsChangingAreasDisabled = false;
            //        (child as MainViewController).SwapInViewController(ctrl, (int)ENavigationTabs.REWARDS);
            //        return;
            //    }
            //}

            //ShouldDrillUpImmediately = true;

            TableView.ReloadData();
            //if (model?.RewardList?.Count == 1)
            //{
            //    RewardList = model.RewardList[0].ChildList;
            //    RewardsSubcategoryName = model.RewardList[0].Name;
            //    await SL.Manager.GetRewardsAsync();
            //    TableView.ReloadData();
            //}
        }
Beispiel #3
0
        private void RewardsRefreshCompleted(RewardResponseModel rewardResponse)
        {
            //if (ShouldDrillDownImmediately && SL.RewardList?.Count == 1 && SL.RewardList[0].Type == "CATEGORY")
            //{
            //    var reward = SL.RewardList[0];
            //    IsContentShouldBeCleared = true;
            //    UIStoryboard board = UIStoryboard.FromName("Rewards", null);
            //    RewardsViewController ctrl = (RewardsViewController)board.InstantiateViewController("RewardsViewController") as RewardsViewController;
            //    ctrl.RewardsCategoryName = reward.Name;
            //    if (reward.ChildList != null)
            //        ctrl.RewardList = reward.ChildList;
            //    else
            //    {
            //        ctrl.CategoryID = reward.ID;
            //        SL.RewardList = null;
            //    }
            //    ShouldDrillDownImmediately = false;



            //    UIViewController parentController = Platform.RootViewController;
            //    if (parentController?.GetType() == typeof(SLNavigationController))
            //    {
            //        ctrl.IsChangingAreasDisabled = false;
            //        ctrl.IsCategoryPageSkiped = true;
            //        var child = parentController.ChildViewControllers[0];
            //        (child as MainViewController).SwapInViewController(ctrl, (int)ENavigationTabs.REWARDS);
            //        return;
            //    }

            //    parentController = Platform.TopViewController;
            //    if (parentController?.GetType() == typeof(SLNavigationController))
            //    {
            //        var child = parentController.ChildViewControllers[0];
            //        ctrl.IsChangingAreasDisabled = false;
            //        ctrl.IsCategoryPageSkiped = true;
            //        (child as MainViewController).SwapInViewController(ctrl, (int)ENavigationTabs.REWARDS);
            //        return;
            //    }


            //    //if (parentController?.GetType() == typeof(SLNavigationController))
            //    //{
            //    //    var child = parentController.ChildViewControllers[0];
            //    //    (child as MainViewController).SelectedIndex = (int)2;
            //    //    return;
            //    //}

            //    //parentController = Platform.TopViewController;
            //    //if (parentController?.GetType() == typeof(SLNavigationController))
            //    //{
            //    //    var child = parentController.ChildViewControllers[0];
            //    //    (child as MainViewController).SelectedIndex = (int)tabToNavigate;
            //    //    return;
            //    //}

            //    //SLNavigationController viewController = storyboard.InstantiateViewController(viewControllerName) as SLNavigationController;
            //    //parentController.PresentViewController(viewController, false, null);
            //    //NavigationController.PushViewController(ctrl, true);
            //}

            IsContentShouldBeCleared   = false;
            ShouldDrillDownImmediately = true;

            CollectionView.ReloadData();
            IsRewardCollectionEmpty();


            _isContentLoaded = true;
            HideLoader();
        }
 void RefreshRewardsComplete(RewardResponseModel response)
 {
     didRefreshRewards = true;
     RefreshComplete();
 }
        //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();
                };
            }
        }