replace subscription megaphone with donation megaphone
This commit is contained in:
parent
80d4ddfdc4
commit
df41e9f412
@ -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 */,
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
@ -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")
|
||||
}
|
||||
}
|
||||
@ -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!")
|
||||
}
|
||||
|
||||
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user