/// <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(); }
/// <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); }
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); }