From 46d7258dbb9c852f0b76b10a73f345d7424c5b83 Mon Sep 17 00:00:00 2001 From: Eugene Bistolas Date: Wed, 17 Nov 2021 17:12:17 -1000 Subject: [PATCH] [Badging] Read More sheet --- .../sustainer-heart.imageset/Contents.json | 12 ++ .../sustainer-heart.pdf | Bin 0 -> 32435 bytes .../SubscriptionViewController.swift | 127 ++++++++++++++++++ .../translations/en.lproj/Localizable.strings | 12 ++ 4 files changed, 151 insertions(+) create mode 100644 Signal/Images.xcassets/sustainer-heart.imageset/Contents.json create mode 100644 Signal/Images.xcassets/sustainer-heart.imageset/sustainer-heart.pdf diff --git a/Signal/Images.xcassets/sustainer-heart.imageset/Contents.json b/Signal/Images.xcassets/sustainer-heart.imageset/Contents.json new file mode 100644 index 0000000000..e58d51163c --- /dev/null +++ b/Signal/Images.xcassets/sustainer-heart.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "sustainer-heart.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Signal/Images.xcassets/sustainer-heart.imageset/sustainer-heart.pdf b/Signal/Images.xcassets/sustainer-heart.imageset/sustainer-heart.pdf new file mode 100644 index 0000000000000000000000000000000000000000..183aeba9e1fca740cad44d51eae1a0739234ed86 GIT binary patch literal 32435 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 iNHz6#4N~rWmm-})cmJkb= Bool { if textView == statusLabel { presentBadgeCantBeAddedSheet() + } else if textView == descriptionTextView { + presentReadMoreSheet() } return false } @@ -1207,3 +1222,115 @@ extension SubscriptionViewController: UITextViewDelegate { private class SubscriptionLevelCell: UITableViewCell { public var subscriptionID: UInt = 0 } + +private class SubscriptionReadMoreSheet: InteractiveSheetViewController { + let contentScrollView = UIScrollView() + let stackView = UIStackView() + let handleContainer = UIView() + override var interactiveScrollViews: [UIScrollView] { [contentScrollView] } + override var minHeight: CGFloat { min(740, CurrentAppContext().frame.height - (view.safeAreaInsets.top + 32)) } + override var maximizedHeight: CGFloat { minHeight } + override var renderExternalHandle: Bool { false } + + // MARK: - + + override public func viewDidLoad() { + super.viewDidLoad() + contentView.backgroundColor = Theme.tableView2PresentedBackgroundColor + + // We add the handle directly to the content view, + // so that it doesn't scroll with the table. + handleContainer.backgroundColor = Theme.tableView2PresentedBackgroundColor + contentView.addSubview(handleContainer) + handleContainer.autoPinWidthToSuperview() + handleContainer.autoPinEdge(toSuperviewEdge: .top) + + let handle = UIView() + handle.backgroundColor = Theme.tableView2PresentedSeparatorColor + handle.autoSetDimensions(to: CGSize(width: 36, height: 5)) + handle.layer.cornerRadius = 5 / 2 + handleContainer.addSubview(handle) + handle.autoPinHeightToSuperview(withMargin: 12) + handle.autoHCenterInSuperview() + + contentView.addSubview(contentScrollView) + + stackView.axis = .vertical + stackView.layoutMargins = UIEdgeInsets(hMargin: 24, vMargin: 24) + stackView.isLayoutMarginsRelativeArrangement = true + contentScrollView.addSubview(stackView) + stackView.autoPinHeightToSuperview() + stackView.autoPinWidth(toWidthOf: view) + + contentScrollView.autoPinWidthToSuperview() + contentScrollView.autoPinEdge(toSuperviewEdge: .bottom) + contentScrollView.autoPinEdge(.top, to: .bottom, of: handleContainer) + + buildContents() + } + + override func themeDidChange() { + super.themeDidChange() + handleContainer.backgroundColor = Theme.tableView2PresentedBackgroundColor + contentView.backgroundColor = Theme.tableView2PresentedBackgroundColor + + } + + private func buildContents() { + + // Header image + let image = UIImage(named: "sustainer-heart") + let imageView = UIImageView(image: image) + imageView.contentMode = .scaleAspectFit + stackView.addArrangedSubview(imageView) + stackView.setCustomSpacing(12, after: imageView) + + // Header label + let titleLabel = UILabel() + titleLabel.textAlignment = .natural + titleLabel.font = UIFont.ows_dynamicTypeTitle2.ows_semibold + titleLabel.text = NSLocalizedString( + "SUSTAINER_READ_MORE_TITLE", + comment: "Title for the signal sustainer read more view" + ) + titleLabel.numberOfLines = 0 + titleLabel.lineBreakMode = .byWordWrapping + stackView.addArrangedSubview(titleLabel) + stackView.setCustomSpacing(12, after: titleLabel) + + let firstDescriptionBlock = UILabel() + firstDescriptionBlock.textAlignment = .natural + firstDescriptionBlock.font = .ows_dynamicTypeBody + firstDescriptionBlock.text = NSLocalizedString( + "SUSTAINER_READ_MORE_DESCRIPTION_BLOCK_ONE", + comment: "First block of description text in read more sheet" + ) + firstDescriptionBlock.numberOfLines = 0 + firstDescriptionBlock.lineBreakMode = .byWordWrapping + stackView.addArrangedSubview(firstDescriptionBlock) + stackView.setCustomSpacing(32, after: firstDescriptionBlock) + + let titleLabel2 = UILabel() + titleLabel2.textAlignment = .natural + titleLabel2.font = UIFont.ows_dynamicTypeTitle2.ows_semibold + titleLabel2.text = NSLocalizedString( + "SUSTAINER_READ_MORE_WHY_CONTRIBUTE", + comment: "Why Contribute title for the signal sustainer read more view" + ) + titleLabel2.numberOfLines = 0 + titleLabel2.lineBreakMode = .byWordWrapping + stackView.addArrangedSubview(titleLabel2) + stackView.setCustomSpacing(12, after: titleLabel2) + + let secondDescriptionBlock = UILabel() + secondDescriptionBlock.textAlignment = .natural + secondDescriptionBlock.font = .ows_dynamicTypeBody + secondDescriptionBlock.text = NSLocalizedString( + "SUSTAINER_READ_MORE_DESCRIPTION_BLOCK_TWO", + comment: "Second block of description text in read more sheet" + ) + secondDescriptionBlock.numberOfLines = 0 + secondDescriptionBlock.lineBreakMode = .byWordWrapping + stackView.addArrangedSubview(secondDescriptionBlock) + } +} diff --git a/Signal/translations/en.lproj/Localizable.strings b/Signal/translations/en.lproj/Localizable.strings index 94d9d42cd8..bd1565f5cd 100644 --- a/Signal/translations/en.lproj/Localizable.strings +++ b/Signal/translations/en.lproj/Localizable.strings @@ -6094,6 +6094,18 @@ /* A string in the navigation bar indicating that the support request is uploading logs */ "SUPPORT_LOG_UPLOAD_IN_PROGRESS" = "Loading"; +/* First block of description text in read more sheet */ +"SUSTAINER_READ_MORE_DESCRIPTION_BLOCK_ONE" = "Signal is a nonprofit with no advertisers or investors, sustained only by the people who use and value it. Make a recurring monthly contribution and receive a profile badge to share your support."; + +/* Second block of description text in read more sheet */ +"SUSTAINER_READ_MORE_DESCRIPTION_BLOCK_TWO" = "Signal is committed to developing open source privacy technology that protects free expression and enables secure global communication.\n\nYour contribution fuels this cause and pays for the development and operations of an app used by millions for private communication. No ads. No trackers. No kidding."; + +/* Title for the signal sustainer read more view */ +"SUSTAINER_READ_MORE_TITLE" = "Support technology that is built for you - not for your data - by joining the community that sustains it."; + +/* Why Contribute title for the signal sustainer read more view */ +"SUSTAINER_READ_MORE_WHY_CONTRIBUTE" = "Why Contribute?"; + /* Action sheet title for Still Processing Badge sheet */ "SUSTAINER_STILL_PROCESSING_BADGE_TITLE" = "Still Processing";