Update fundraising sheets with new style
This commit is contained in:
parent
676c186817
commit
a17c88da9b
12
Signal/Images.xcassets/alert.imageset/Contents.json
vendored
Normal file
12
Signal/Images.xcassets/alert.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "alert.pdf",
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
Signal/Images.xcassets/alert.imageset/alert.pdf
vendored
Normal file
BIN
Signal/Images.xcassets/alert.imageset/alert.pdf
vendored
Normal file
Binary file not shown.
@ -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)
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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)
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user