Exemple #1
0
        /// <summary>
        /// Updates the publication view list according publication list
        /// </summary>
        public void UpdatePublicationViewList()
        {
            publicationList = PublicationUtil.Instance.GetPublicationOffline();
            foreach (var p in publicationList)
            {
                var pView = AppDisplayUtil.Instance.AppDelegateInstance.PublicationViewList.Find(pv => pv.P.BookId == p.BookId);
                if (pView == null)                  //new subscribed publication
                {
                    AppDisplayUtil.Instance.AddPublicationView(PublicationViewFactory.CreatePublicationView(p, StartDownload, ShowConfirmCancelDownload));
                }
                else
                {
                    //pView.P = p;
                    int count = AppDisplayUtil.Instance.AppDelegateInstance.PublicationViewList.Count;
                    for (int i = 0; i < count; i++)
                    {
                        if (AppDisplayUtil.Instance.AppDelegateInstance.PublicationViewList [i].P.BookId == p.BookId)
                        {
                            if (AppDisplayUtil.Instance.AppDelegateInstance.PublicationViewList [i].P.PublicationStatus != p.PublicationStatus)
                            {
                                AppDisplayUtil.Instance.AppDelegateInstance.PublicationViewList [i].P = p;
                            }

                            if ((AppDisplayUtil.Instance.AppDelegateInstance.PublicationViewList [i].P.DaysRemaining < 0) ^ (p.DaysRemaining < 0))
                            {
                                AppDisplayUtil.Instance.AppDelegateInstance.PublicationViewList [i].P = p;
                            }
                            AppDisplayUtil.Instance.AppDelegateInstance.PublicationViewList [i].P.OrderBy = p.OrderBy;
                        }
                    }
                }
            }

            List <PublicationView> toBeRemovedPV = new List <PublicationView> ();

            foreach (var pv in  AppDisplayUtil.Instance.AppDelegateInstance.PublicationViewList)
            {
                var coorP = publicationList.Find(p => p.BookId == pv.P.BookId);
                if (coorP == null)
                {
                    toBeRemovedPV.Add(pv);
                }
            }

            foreach (var pv in toBeRemovedPV)
            {
                AppDisplayUtil.Instance.AppDelegateInstance.PublicationViewList.Remove(pv);
            }

            //Sort publication view list by publication orderby property
            AppDisplayUtil.Instance.AppDelegateInstance.PublicationViewList.Sort();
        }
Exemple #2
0
        /// <summary>
        /// Updates the publication view in scroll view.
        /// Invoked when publication has been download or some other occasion
        /// </summary>
        /// <param name="publication">Publication.</param>
        /// <param name="publicationView">Publication view.</param>
        private void UpdatePublicationViewInScrollView(Publication publication, PublicationView publicationView)
        {
            publicationList = PublicationUtil.Instance.GetPublicationOffline();
            foreach (var p in publicationList)
            {
                if (p.BookId == publication.BookId)
                {
                    publication = p;
                    break;
                }
            }
            PublicationView updatePublicationView = PublicationViewFactory.CreatePublicationView(publication, StartDownload, ShowConfirmCancelDownload);

            publicationView.RemoveFromSuperview();
            publicationView = null;
            publicationViewScrollContainer.AddSubview(updatePublicationView);
        }
Exemple #3
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            noPublicationLabel.Hidden = true;
            publicationList           = PublicationUtil.Instance.GetPublicationOffline();

            //PublicationViewList = new List<PublicationView> ();
            AppDisplayUtil.Instance.ClearPublicationViewList();
            foreach (var p in publicationList)
            {
                AppDisplayUtil.Instance.AddPublicationView(PublicationViewFactory.CreatePublicationView(p, StartDownload, ShowConfirmCancelDownload));
            }

            AppDisplayUtil.Instance.AppDelegateInstance.MyPublicationController = this;

            NavigationItem.RightBarButtonItems = new UIBarButtonItem[] { TabBarController.NavigationItem.RightBarButtonItem };


            ShowPublicationViews();
        }
        private void ShowPublicationCoverAndActionButton()
        {
            var pvInList = AppDisplayUtil.Instance.AppDelegateInstance.PublicationViewList.Find(item => item.P.BookId == curPublication.BookId);

            PublicationView pv = PublicationViewFactory.CreatePublicationView(curPublication, pvInList.StartDownload, pvInList.ShowDownloadAlert, 0.85f);

            pv.ZoomInOrOut(0.85f);
            PublicationCoverContainer.AddSubview(pv);

            PublicationNameLabel.Text = curPublication.Name;
            CGSize publicationNameLabelSize = TextDisplayUtil.GetStringBoundRect(curPublication.Name, UIFont.SystemFontOfSize(ViewConstant.INFO_NAME_LABEL_FONT_SIZE), new CGSize(ViewConstant.INFO_AUTHOR_LABEL_WIDTH, 600));
            nfloat expectedNameLabelHeight  = publicationNameLabelSize.Height > 26 ? publicationNameLabelSize.Height : 26;

            ChangeViewHeightConstraint(PublicationNameLabel, expectedNameLabelHeight);

            PublicationAuthorLabel.Text = curPublication.Author;
            CGSize publicationAuthorLabelSize = TextDisplayUtil.GetStringBoundRect(curPublication.Author, UIFont.SystemFontOfSize(ViewConstant.INFO_AUTHOR_LABEL_FONT_SIZE), new CGSize(ViewConstant.INFO_AUTHOR_LABEL_WIDTH, 600));
            nfloat expectedAuthorLabelHeight  = publicationAuthorLabelSize.Height < ViewConstant.INFO_AUTHOR_LABEL_MIN_HEIGHT ? ViewConstant.INFO_AUTHOR_LABEL_MIN_HEIGHT : publicationAuthorLabelSize.Height;

            ChangeViewHeightConstraint(PublicationAuthorLabel, expectedAuthorLabelHeight);

            ActionButton.Layer.BorderWidth  = 1.0f;
            ActionButton.Layer.CornerRadius = 5;

            if (curPublication.DaysRemaining < 0)
            {
                ActionButton.Layer.BorderColor = UIColor.Red.CGColor;
                ActionButton.SetTitleColor(UIColor.Red, UIControlState.Normal);
            }
            else
            {
                ActionButton.Layer.BorderColor = UIColor.FromRGB(22, 132, 250).CGColor;
                ActionButton.SetTitleColor(UIColor.FromRGB(22, 132, 250), UIControlState.Normal);
            }

            if (curPublication.IsLoan)
            {
                LoanTagLabel.Layer.CornerRadius  = 8;
                LoanTagLabel.Layer.MasksToBounds = true;

                ChangeViewWidthConstraint(LoanTagLabel, ViewConstant.INFO_LOAN_TAG_LABEL_WIDTH);
                ChangeViewWidthConstraint(TagSpaceLabel, 10);
            }
            else
            {
                ChangeViewWidthConstraint(LoanTagLabel, 0);
                ChangeViewWidthConstraint(TagSpaceLabel, 0);
            }

            if (curPublication.IsFTC)
            {
                PlusCaseTagLabel.Layer.CornerRadius  = 8;
                PlusCaseTagLabel.Layer.MasksToBounds = true;
                PlusCaseTagLabel.Hidden = false;
            }
            else
            {
                PlusCaseTagLabel.Hidden = true;
            }

            nfloat expectedTitleAuthorScrollViewContentHeight = expectedAuthorLabelHeight + expectedNameLabelHeight + 34;

            if (expectedTitleAuthorScrollViewContentHeight > ViewConstant.INFO_NAME_AUTHOR_SCROLL_VIEW_MAX_HEIGHT)
            {
                ChangeViewHeightConstraint(TitleAuthorScrollView, ViewConstant.INFO_NAME_AUTHOR_SCROLL_VIEW_MAX_HEIGHT);
                TitleAuthorScrollView.ScrollEnabled = true;
            }
            else
            {
                ChangeViewHeightConstraint(TitleAuthorScrollView, expectedTitleAuthorScrollViewContentHeight);
                TitleAuthorScrollView.ScrollEnabled = false;
            }
            TitleAuthorScrollView.ContentSize = new CGSize(ViewConstant.INFO_AUTHOR_LABEL_WIDTH, expectedTitleAuthorScrollViewContentHeight);
            TitleAuthorScrollView.SetContentOffset(new CGPoint(0, 0), false);
        }