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 */; };
|
1466AB282817F7E7003B3D9F /* PluralAware.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = 1466AB262817F7E7003B3D9F /* PluralAware.stringsdict */; };
|
||||||
1477630B275E20D700D1067E /* ThreadSwipeHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1477630A275E20D700D1067E /* ThreadSwipeHandler.swift */; };
|
1477630B275E20D700D1067E /* ThreadSwipeHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1477630A275E20D700D1067E /* ThreadSwipeHandler.swift */; };
|
||||||
1489ED0227A3D70200C7043A /* ArchivedConversationsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1489ED0127A3D70200C7043A /* ArchivedConversationsCell.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 */; };
|
14E4A340278EE999008408FD /* BlurredToolbarContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14E4A33F278EE999008408FD /* BlurredToolbarContainer.swift */; };
|
||||||
1704690A25D4C326000793D8 /* SignalAttachmentTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1704690925D4C2E6000793D8 /* SignalAttachmentTest.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 */; };
|
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; };
|
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>"; };
|
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>"; };
|
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>"; };
|
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>"; };
|
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>"; };
|
1704690925D4C2E6000793D8 /* SignalAttachmentTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignalAttachmentTest.swift; sourceTree = "<group>"; };
|
||||||
@ -4344,6 +4346,7 @@
|
|||||||
88A505FE23DBAE640005C012 /* Upgrade Views */ = {
|
88A505FE23DBAE640005C012 /* Upgrade Views */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
14DB56A52829310B00E01AC9 /* DonationMegaphone.swift */,
|
||||||
8806EF1A248DBFC100E764C7 /* ContactPermissionReminderMegaphone.swift */,
|
8806EF1A248DBFC100E764C7 /* ContactPermissionReminderMegaphone.swift */,
|
||||||
88FBE953264B6848005F6C80 /* SubscriptionMegaphone.swift */,
|
88FBE953264B6848005F6C80 /* SubscriptionMegaphone.swift */,
|
||||||
88A505F923DBA1360005C012 /* IntroducingPINs.swift */,
|
88A505F923DBA1360005C012 /* IntroducingPINs.swift */,
|
||||||
@ -6207,6 +6210,7 @@
|
|||||||
3405C06E25435048008B24EF /* ConversationViewController+Banners.swift in Sources */,
|
3405C06E25435048008B24EF /* ConversationViewController+Banners.swift in Sources */,
|
||||||
881D85B822D92C2B00E118DF /* OWSPinSetupViewController.swift in Sources */,
|
881D85B822D92C2B00E118DF /* OWSPinSetupViewController.swift in Sources */,
|
||||||
340FC8BA204DAC8D007AEB0F /* FingerprintViewScanController.m in Sources */,
|
340FC8BA204DAC8D007AEB0F /* FingerprintViewScanController.m in Sources */,
|
||||||
|
14DB56A62829310B00E01AC9 /* DonationMegaphone.swift in Sources */,
|
||||||
17ACF11E267D71E0009BE867 /* OWSAudioSession+WebRTC.swift in Sources */,
|
17ACF11E267D71E0009BE867 /* OWSAudioSession+WebRTC.swift in Sources */,
|
||||||
34ACA7E92733159600E47AD4 /* ChangePhoneNumberSplashViewController.swift in Sources */,
|
34ACA7E92733159600E47AD4 /* ChangePhoneNumberSplashViewController.swift in Sources */,
|
||||||
34ACA7E22733159600E47AD4 /* OnboardingPhoneNumberViewController.swift in Sources */,
|
34ACA7E22733159600E47AD4 /* OnboardingPhoneNumberViewController.swift in Sources */,
|
||||||
|
|||||||
@ -188,7 +188,7 @@ class ExperienceUpgradeManager: NSObject {
|
|||||||
case .contactPermissionReminder:
|
case .contactPermissionReminder:
|
||||||
return ContactPermissionReminderMegaphone(experienceUpgrade: experienceUpgrade, fromViewController: fromViewController)
|
return ContactPermissionReminderMegaphone(experienceUpgrade: experienceUpgrade, fromViewController: fromViewController)
|
||||||
case .subscriptionMegaphone:
|
case .subscriptionMegaphone:
|
||||||
return SubscriptionMegaphone(experienceUpgrade: experienceUpgrade, fromViewController: fromViewController)
|
return DonationMegaphone(experienceUpgrade: experienceUpgrade, fromViewController: fromViewController)
|
||||||
default:
|
default:
|
||||||
return nil
|
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.state = .donatedSuccessfully
|
||||||
|
|
||||||
|
self.databaseStorage.write { transaction in
|
||||||
|
ExperienceUpgradeManager.snoozeExperienceUpgrade(
|
||||||
|
ExperienceUpgradeId.subscriptionMegaphone,
|
||||||
|
transaction: transaction.unwrapGrdbWrite
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
guard let boostBadge = self.boostBadge else {
|
guard let boostBadge = self.boostBadge else {
|
||||||
return owsFailDebug("Missing boost badge!")
|
return owsFailDebug("Missing boost badge!")
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,7 +20,7 @@ public class RemoteConfig: BaseFlags {
|
|||||||
valueFlags: [String: AnyObject]) {
|
valueFlags: [String: AnyObject]) {
|
||||||
self.isEnabledFlags = isEnabledFlags
|
self.isEnabledFlags = isEnabledFlags
|
||||||
self.valueFlags = valueFlags
|
self.valueFlags = valueFlags
|
||||||
self.subscriptionMegaphone = Self.isCountryCodeBucketEnabled(.subscriptionMegaphone2, valueFlags: valueFlags)
|
self.subscriptionMegaphone = Self.isCountryCodeBucketEnabled(.donationMegaphone, valueFlags: valueFlags)
|
||||||
self.standardMediaQualityLevel = Self.determineStandardMediaQualityLevel(valueFlags: valueFlags)
|
self.standardMediaQualityLevel = Self.determineStandardMediaQualityLevel(valueFlags: valueFlags)
|
||||||
self.paymentsDisabledRegions = Self.parsePaymentsDisabledRegions(valueFlags: valueFlags)
|
self.paymentsDisabledRegions = Self.parsePaymentsDisabledRegions(valueFlags: valueFlags)
|
||||||
}
|
}
|
||||||
@ -121,7 +121,7 @@ public class RemoteConfig: BaseFlags {
|
|||||||
|
|
||||||
@objc
|
@objc
|
||||||
public static var subscriptionMegaphoneSnoozeInterval: TimeInterval {
|
public static var subscriptionMegaphoneSnoozeInterval: TimeInterval {
|
||||||
interval(.subscriptionMegaphoneSnoozeInterval, defaultInterval: kMonthInterval * 6)
|
interval(.donationMegaphoneSnoozeInterval, defaultInterval: kMonthInterval * 6)
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc
|
@objc
|
||||||
@ -415,8 +415,8 @@ private struct Flags {
|
|||||||
case automaticSessionResetAttemptInterval
|
case automaticSessionResetAttemptInterval
|
||||||
case reactiveProfileKeyAttemptInterval
|
case reactiveProfileKeyAttemptInterval
|
||||||
case paymentsDisabledRegions
|
case paymentsDisabledRegions
|
||||||
case subscriptionMegaphone2
|
case donationMegaphone
|
||||||
case subscriptionMegaphoneSnoozeInterval
|
case donationMegaphoneSnoozeInterval
|
||||||
}
|
}
|
||||||
|
|
||||||
// We filter the received config down to just the supported values.
|
// We filter the received config down to just the supported values.
|
||||||
@ -434,8 +434,8 @@ private struct Flags {
|
|||||||
case replaceableInteractionExpiration
|
case replaceableInteractionExpiration
|
||||||
case messageSendLogEntryLifetime
|
case messageSendLogEntryLifetime
|
||||||
case paymentsDisabledRegions
|
case paymentsDisabledRegions
|
||||||
case subscriptionMegaphone2
|
case donationMegaphone
|
||||||
case subscriptionMegaphoneSnoozeInterval
|
case donationMegaphoneSnoozeInterval
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user