replace subscription megaphone with donation megaphone

This commit is contained in:
Martin Böttcher 2022-05-11 14:18:02 +02:00 committed by Jordan Rose
parent 80d4ddfdc4
commit df41e9f412
5 changed files with 54 additions and 7 deletions

View File

@ -13,6 +13,7 @@
1466AB282817F7E7003B3D9F /* PluralAware.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = 1466AB262817F7E7003B3D9F /* PluralAware.stringsdict */; };
1477630B275E20D700D1067E /* ThreadSwipeHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1477630A275E20D700D1067E /* ThreadSwipeHandler.swift */; };
1489ED0227A3D70200C7043A /* ArchivedConversationsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1489ED0127A3D70200C7043A /* ArchivedConversationsCell.swift */; };
14DB56A62829310B00E01AC9 /* DonationMegaphone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14DB56A52829310B00E01AC9 /* DonationMegaphone.swift */; };
14E4A340278EE999008408FD /* BlurredToolbarContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14E4A33F278EE999008408FD /* BlurredToolbarContainer.swift */; };
1704690A25D4C326000793D8 /* SignalAttachmentTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1704690925D4C2E6000793D8 /* SignalAttachmentTest.swift */; };
1704690C25D4C92B000793D8 /* test-jpg-rotated.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 1704690B25D4C92B000793D8 /* test-jpg-rotated.jpg */; };
@ -1198,6 +1199,7 @@
146FFAA027A7FE87004A2A64 /* Signalyzer.instrdst */ = {isa = PBXFileReference; explicitFileType = com.apple.instruments.instrdst; includeInIndex = 0; path = Signalyzer.instrdst; sourceTree = BUILT_PRODUCTS_DIR; };
1477630A275E20D700D1067E /* ThreadSwipeHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThreadSwipeHandler.swift; sourceTree = "<group>"; };
1489ED0127A3D70200C7043A /* ArchivedConversationsCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArchivedConversationsCell.swift; sourceTree = "<group>"; };
14DB56A52829310B00E01AC9 /* DonationMegaphone.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DonationMegaphone.swift; sourceTree = "<group>"; };
14E4A33F278EE999008408FD /* BlurredToolbarContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlurredToolbarContainer.swift; sourceTree = "<group>"; };
14FD26DD3B40616C54CDBF1A /* Pods-SignalShareExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SignalShareExtension.debug.xcconfig"; path = "Pods/Target Support Files/Pods-SignalShareExtension/Pods-SignalShareExtension.debug.xcconfig"; sourceTree = "<group>"; };
1704690925D4C2E6000793D8 /* SignalAttachmentTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignalAttachmentTest.swift; sourceTree = "<group>"; };
@ -4344,6 +4346,7 @@
88A505FE23DBAE640005C012 /* Upgrade Views */ = {
isa = PBXGroup;
children = (
14DB56A52829310B00E01AC9 /* DonationMegaphone.swift */,
8806EF1A248DBFC100E764C7 /* ContactPermissionReminderMegaphone.swift */,
88FBE953264B6848005F6C80 /* SubscriptionMegaphone.swift */,
88A505F923DBA1360005C012 /* IntroducingPINs.swift */,
@ -6207,6 +6210,7 @@
3405C06E25435048008B24EF /* ConversationViewController+Banners.swift in Sources */,
881D85B822D92C2B00E118DF /* OWSPinSetupViewController.swift in Sources */,
340FC8BA204DAC8D007AEB0F /* FingerprintViewScanController.m in Sources */,
14DB56A62829310B00E01AC9 /* DonationMegaphone.swift in Sources */,
17ACF11E267D71E0009BE867 /* OWSAudioSession+WebRTC.swift in Sources */,
34ACA7E92733159600E47AD4 /* ChangePhoneNumberSplashViewController.swift in Sources */,
34ACA7E22733159600E47AD4 /* OnboardingPhoneNumberViewController.swift in Sources */,

View File

@ -188,7 +188,7 @@ class ExperienceUpgradeManager: NSObject {
case .contactPermissionReminder:
return ContactPermissionReminderMegaphone(experienceUpgrade: experienceUpgrade, fromViewController: fromViewController)
case .subscriptionMegaphone:
return SubscriptionMegaphone(experienceUpgrade: experienceUpgrade, fromViewController: fromViewController)
return DonationMegaphone(experienceUpgrade: experienceUpgrade, fromViewController: fromViewController)
default:
return nil
}

View File

@ -0,0 +1,36 @@
//
// Copyright (c) 2022 Open Whisper Systems. All rights reserved.
//
import Foundation
class DonationMegaphone: MegaphoneView {
init(experienceUpgrade: ExperienceUpgrade, fromViewController: UIViewController) {
super.init(experienceUpgrade: experienceUpgrade)
titleText = NSLocalizedString("DONATE_MEGAPHONE_TITLE", comment: "Title for donate megaphone")
bodyText = NSLocalizedString("DONATE_MEGAPHONE_BODY", comment: "Body for donate megaphone")
imageName = "donate-megaphone"
setButtons(
primary: Button(title: NSLocalizedString(
"DONATE_MEGAPHONE_ACTION",
comment: "Action text for donate megaphone"
)) {
let vc = OWSNavigationController(rootViewController: DonationViewController())
fromViewController.present(vc, animated: true)
},
secondary: Button(title: NSLocalizedString(
"DONATE_MEGAPHONE_CANCEL",
comment: "Cancel text for donate megaphone"
)) { [weak self] in
self?.markAsSnoozed()
self?.dismiss()
}
)
}
required init(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}

View File

@ -658,6 +658,13 @@ extension BoostViewController: PKPaymentAuthorizationControllerDelegate {
self.state = .donatedSuccessfully
self.databaseStorage.write { transaction in
ExperienceUpgradeManager.snoozeExperienceUpgrade(
ExperienceUpgradeId.subscriptionMegaphone,
transaction: transaction.unwrapGrdbWrite
)
}
guard let boostBadge = self.boostBadge else {
return owsFailDebug("Missing boost badge!")
}

View File

@ -20,7 +20,7 @@ public class RemoteConfig: BaseFlags {
valueFlags: [String: AnyObject]) {
self.isEnabledFlags = isEnabledFlags
self.valueFlags = valueFlags
self.subscriptionMegaphone = Self.isCountryCodeBucketEnabled(.subscriptionMegaphone2, valueFlags: valueFlags)
self.subscriptionMegaphone = Self.isCountryCodeBucketEnabled(.donationMegaphone, valueFlags: valueFlags)
self.standardMediaQualityLevel = Self.determineStandardMediaQualityLevel(valueFlags: valueFlags)
self.paymentsDisabledRegions = Self.parsePaymentsDisabledRegions(valueFlags: valueFlags)
}
@ -121,7 +121,7 @@ public class RemoteConfig: BaseFlags {
@objc
public static var subscriptionMegaphoneSnoozeInterval: TimeInterval {
interval(.subscriptionMegaphoneSnoozeInterval, defaultInterval: kMonthInterval * 6)
interval(.donationMegaphoneSnoozeInterval, defaultInterval: kMonthInterval * 6)
}
@objc
@ -415,8 +415,8 @@ private struct Flags {
case automaticSessionResetAttemptInterval
case reactiveProfileKeyAttemptInterval
case paymentsDisabledRegions
case subscriptionMegaphone2
case subscriptionMegaphoneSnoozeInterval
case donationMegaphone
case donationMegaphoneSnoozeInterval
}
// We filter the received config down to just the supported values.
@ -434,8 +434,8 @@ private struct Flags {
case replaceableInteractionExpiration
case messageSendLogEntryLifetime
case paymentsDisabledRegions
case subscriptionMegaphone2
case subscriptionMegaphoneSnoozeInterval
case donationMegaphone
case donationMegaphoneSnoozeInterval
}
}