From a17c88da9be79c3a6fbc6deea8931b9eb26e7472 Mon Sep 17 00:00:00 2001 From: Pete Walters Date: Wed, 8 Nov 2023 18:59:57 -0600 Subject: [PATCH] Update fundraising sheets with new style --- .../alert.imageset/Contents.json | 12 +++++ .../Images.xcassets/alert.imageset/alert.pdf | Bin 0 -> 2266 bytes .../Donations/BadgeIssueSheet.swift | 50 ++++++++++++++---- .../Donations/BadgeThanksSheet.swift | 41 ++++---------- .../DonateChoosePaymentMethodSheet.swift | 4 +- 5 files changed, 63 insertions(+), 44 deletions(-) create mode 100644 Signal/Images.xcassets/alert.imageset/Contents.json create mode 100644 Signal/Images.xcassets/alert.imageset/alert.pdf diff --git a/Signal/Images.xcassets/alert.imageset/Contents.json b/Signal/Images.xcassets/alert.imageset/Contents.json new file mode 100644 index 0000000000..99404db4da --- /dev/null +++ b/Signal/Images.xcassets/alert.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "alert.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Signal/Images.xcassets/alert.imageset/alert.pdf b/Signal/Images.xcassets/alert.imageset/alert.pdf new file mode 100644 index 0000000000000000000000000000000000000000..34a72dbd358b6ee080f57941cbe95cac1467f9a1 GIT binary patch literal 2266 zcma)8e{2&~95)j(_d*mLDooJlkD1kN*L(N-fMB+kk%i&9cF7=PiRbmUc4>QEubWc{ z3lec)M2Hz9WNw);(Ljg>Lox*uR0u)Mg0Lkz;{>BbM+_!YLIN|scfEVpTK@1gX}|e= z-}l$&`+e`VG8Am6MT`spf-E#&>;@37TL=AhiL8-HX;}mMgGOImH^Lk1u?jDLL!9XF zZvv}>hHgd;N7H1ay0S6I3#tP=4|y!DUk|Ko#?X?Wf28-oXPdqZEkDV4-7r?81?Xg`cMC-dy?cm4kbSl5dpFRz8Me zzMqd?IsNtdS1&VTYe$EoBexE1xdgiROf=TKzxJ;krNjG-<0p52H#;`nHhgZ?T+26F z`7% z@x)8p2bTP{{puZk$)BrB`iAB|d}{KKir2<=RWFo2;_E&Qj8xR&8B3&1mz{VK|$=T=* zfgc+OB7pqp7U%(pVeJK3SE!{D)geaAZK8sn1T3S9k|NRj4wm#48dW3BWNdl4T^~z6cVlA_*plH$_rJ1!JtJk_IE} zg5yOF@@~d74T|Wv+lnAdvgGZ;^dcU~r0b3+mJt+=N4yu0*kL6Z37S{Jo*YpUxV-eS zGf_Y)pI0Q!!XrZmF^40}43|HOqNqxO;9<0@ggurQ@zHUKrqtTWxd+B^K=QCX6>p~q z9^WFTG#ToEB6;!hFefYODNp5$3q?rP&hXvkW+InD?zJH&k6s`$h3!Wul`^vyZ0~TM zlh&8h_&o|~UG9Uk*@(uqdb1z4dqmNKIo#nKPoCs@3LBQ$o6!vml4~yP_z#$=tdYVI z$vx(RAuWS3s5nsGZAT#Q#oQE+;#482fLx=ww=!V%Vp~*{zlD)JPilcDQlLcxk|#G; zctFc)3A3xvv_E5X0v69C$Q4Vzp(KjD2r=#~Jjk{L@uiqsf{e2#%Y*Q7FM{~uUHHN* zG(-}a(*j>el5t6ekb=+Ze;}3f46_+6o-i_i^t~~NiLA2Bq~U{A@u)9Hr$20(SxBg| dTjP(!UolAC_TLLFleL*Zsv?5Q$_>p8{{peCLxcbT literal 0 HcmV?d00001 diff --git a/Signal/src/ViewControllers/Donations/BadgeIssueSheet.swift b/Signal/src/ViewControllers/Donations/BadgeIssueSheet.swift index e411b81667..91ee78b866 100644 --- a/Signal/src/ViewControllers/Donations/BadgeIssueSheet.swift +++ b/Signal/src/ViewControllers/Donations/BadgeIssueSheet.swift @@ -240,6 +240,23 @@ public class BadgeIssueSheetState { ) } }() + + var showIconAlert: Bool { + switch mode { + case + .boostExpired, + .giftBadgeExpired, + .bankPaymentFailed, + .subscriptionExpiredBecauseOfChargeFailure, + .subscriptionExpiredBecauseNotRenewed: + return true + case + .giftNotRedeemed, + .boostBankPaymentProcessing, + .subscriptionBankPaymentProcessing: + return false + } + } } class BadgeIssueSheet: OWSTableSheetViewController { @@ -283,17 +300,30 @@ class BadgeIssueSheet: OWSTableSheetViewController { let stackView = UIStackView() stackView.axis = .vertical stackView.alignment = .center - stackView.layoutMargins = UIEdgeInsets(hMargin: 24, vMargin: 0) + stackView.layoutMargins = .init(top: 24, left: 24, bottom: 0, right: 24) stackView.isLayoutMarginsRelativeArrangement = true cell.contentView.addSubview(stackView) stackView.autoPinEdgesToSuperviewEdges() + let containerView = UIView() + stackView.addArrangedSubview(containerView) + stackView.setCustomSpacing(24, after: containerView) + let badgeImageView = UIImageView() - badgeImageView.image = self.state.badge.assets?.universal112 - badgeImageView.autoSetDimensions(to: CGSize(square: 112)) - stackView.addArrangedSubview(badgeImageView) - stackView.setCustomSpacing(16, after: badgeImageView) + badgeImageView.image = self.state.badge.assets?.universal160 + badgeImageView.autoSetDimensions(to: CGSize(square: 80)) + containerView.addSubview(badgeImageView) + badgeImageView.autoPinEdgesToSuperviewEdges() + + if self.state.showIconAlert { + let alertImageView = UIImageView() + alertImageView.image = UIImage(named: "alert") + alertImageView.autoSetDimensions(to: CGSize(square: 24)) + containerView.addSubview(alertImageView) + alertImageView.autoPinEdge(.right, to: .right, of: badgeImageView) + alertImageView.autoPinEdge(.top, to: .top, of: badgeImageView) + } let titleLabel = UILabel() titleLabel.font = .dynamicTypeTitle2.semibold() @@ -311,7 +341,7 @@ class BadgeIssueSheet: OWSTableSheetViewController { comment: "Text for the 'learn more' link in a sheet explaining there's been an issue with your badge." ).styled(with: .link(learnMoreLink)) let label = LinkingTextView() - label.attributedText = .composed(of: [self.state.body.text, " ", learnMore]).styled(with: .color(Theme.primaryTextColor), .font(.dynamicTypeBody)) + label.attributedText = .composed(of: [self.state.body.text, " ", learnMore]).styled(with: .color(Theme.secondaryTextAndIconColor), .font(.dynamicTypeSubheadlineClamped)) label.textAlignment = .center label.linkTextAttributes = [ .foregroundColor: Theme.accentBlueColor, @@ -321,15 +351,15 @@ class BadgeIssueSheet: OWSTableSheetViewController { bodyLabel = label } else { let label = UILabel() - label.font = .dynamicTypeBody - label.textColor = Theme.primaryTextColor + label.font = .dynamicTypeSubheadlineClamped + label.textColor = Theme.secondaryTextAndIconColor label.numberOfLines = 0 label.text = self.state.body.text label.textAlignment = .center bodyLabel = label } stackView.addArrangedSubview(bodyLabel) - stackView.setCustomSpacing(30, after: bodyLabel) + stackView.setCustomSpacing(24, after: bodyLabel) return cell }, actionBlock: nil)) @@ -345,7 +375,7 @@ class BadgeIssueSheet: OWSTableSheetViewController { let stackView = UIStackView() stackView.axis = .vertical stackView.alignment = .center - stackView.layoutMargins = UIEdgeInsets(top: 30, left: 24, bottom: 30, right: 24) + stackView.layoutMargins = UIEdgeInsets(top: 12, left: 24, bottom: 12, right: 24) stackView.spacing = 16 stackView.isLayoutMarginsRelativeArrangement = true cell.contentView.addSubview(stackView) diff --git a/Signal/src/ViewControllers/Donations/BadgeThanksSheet.swift b/Signal/src/ViewControllers/Donations/BadgeThanksSheet.swift index 41bfa96edf..1f8422212a 100644 --- a/Signal/src/ViewControllers/Donations/BadgeThanksSheet.swift +++ b/Signal/src/ViewControllers/Donations/BadgeThanksSheet.swift @@ -316,6 +316,12 @@ class BadgeThanksSheet: OWSTableSheetViewController { cell.contentView.addSubview(stackView) stackView.autoPinEdgesToSuperviewMargins() + let badgeImageView = UIImageView() + badgeImageView.image = self.badge.assets?.universal160 + badgeImageView.autoSetDimensions(to: CGSize(square: 80)) + stackView.addArrangedSubview(badgeImageView) + stackView.setCustomSpacing(24, after: badgeImageView) + let titleLabel = UILabel() titleLabel.font = .dynamicTypeTitle2.semibold() titleLabel.textColor = Theme.primaryTextColor @@ -326,42 +332,13 @@ class BadgeThanksSheet: OWSTableSheetViewController { stackView.setCustomSpacing(12, after: titleLabel) let bodyLabel = UILabel() - bodyLabel.font = .dynamicTypeBody - bodyLabel.textColor = Theme.primaryTextColor + bodyLabel.font = .dynamicTypeSubheadlineClamped + bodyLabel.textColor = Theme.secondaryTextAndIconColor bodyLabel.textAlignment = .center bodyLabel.numberOfLines = 0 bodyLabel.text = self.bodyText stackView.addArrangedSubview(bodyLabel) - stackView.setCustomSpacing(30, after: bodyLabel) - - let badgeImageView = UIImageView() - let shouldShowBadgeLabel: Bool - switch self.thanksType { - case .badgeRedeemedViaBankPayment, .badgeRedeemedViaNonBankPayment: - badgeImageView.image = self.badge.assets?.universal160 - badgeImageView.autoSetDimensions(to: CGSize(square: 160)) - shouldShowBadgeLabel = true - case .giftReceived: - // Use a smaller image for gifts since they have an extra button. - badgeImageView.image = self.badge.assets?.universal112 - badgeImageView.autoSetDimensions(to: CGSize(square: 112)) - shouldShowBadgeLabel = false - } - stackView.addArrangedSubview(badgeImageView) - - if shouldShowBadgeLabel { - let badgeLabel = UILabel() - badgeLabel.font = .dynamicTypeTitle3.semibold() - badgeLabel.textColor = Theme.primaryTextColor - badgeLabel.textAlignment = .center - badgeLabel.numberOfLines = 0 - badgeLabel.text = self.badge.localizedName - stackView.addArrangedSubview(badgeLabel) - stackView.setCustomSpacing(14, after: badgeImageView) - stackView.setCustomSpacing(36, after: badgeLabel) - } else { - stackView.setCustomSpacing(36, after: badgeImageView) - } + stackView.setCustomSpacing(36, after: bodyLabel) return cell }, actionBlock: nil)) diff --git a/Signal/src/ViewControllers/Donations/DonateChoosePaymentMethodSheet.swift b/Signal/src/ViewControllers/Donations/DonateChoosePaymentMethodSheet.swift index 787066afb7..14cc936ed0 100644 --- a/Signal/src/ViewControllers/Donations/DonateChoosePaymentMethodSheet.swift +++ b/Signal/src/ViewControllers/Donations/DonateChoosePaymentMethodSheet.swift @@ -111,8 +111,8 @@ class DonateChoosePaymentMethodSheet: OWSTableSheetViewController { stackView.spacing = 6 if let assets = badge.assets { - let badgeImageView = UIImageView(image: assets.universal112) - badgeImageView.autoSetDimensions(to: CGSize(square: 112)) + let badgeImageView = UIImageView(image: assets.universal160) + badgeImageView.autoSetDimensions(to: CGSize(square: 80)) stackView.addArrangedSubview(badgeImageView) stackView.setCustomSpacing(12, after: badgeImageView) }