From 3026187949425bca257f444cefaadbf85e85f0d8 Mon Sep 17 00:00:00 2001 From: Aleksey Belouosv Date: Wed, 24 Jul 2019 17:08:42 +0300 Subject: [PATCH] [iOS] basic guides subscription flow and UI https://jira.mail.ru/browse/MAPSME-10941 https://jira.mail.ru/browse/MAPSME-10942 https://jira.mail.ru/browse/MAPSME-10943 https://jira.mail.ru/browse/MAPSME-10945 --- ...ookmarksSubscriptionCellViewController.xib | 8 +- .../BookmarksSubscriptionViewController.swift | 89 ++++++++- .../BookmarksSubscriptionViewController.xib | 12 +- .../Catalog/CatalogWebViewController.swift | 11 +- .../BookmarksLoadedViewController.swift | 0 .../BookmarksLoadedViewController.xib | 0 ...rksSubscriptionExpiredViewController.swift | 37 ++++ ...marksSubscriptionExpiredViewController.xib | 125 ++++++++++++ ...kmarksSubscriptionFailViewController.swift | 31 +++ ...ookmarksSubscriptionFailViewController.xib | 100 ++++++++++ ...rksSubscriptionSuccessViewController.swift | 31 +++ ...marksSubscriptionSuccessViewController.xib | 100 ++++++++++ .../Catalog/PaidRouteViewController.swift | 182 +++++++++++++++--- .../Catalog/PaidRouteViewController.xib | 161 ++++++++++++---- iphone/Maps/Classes/MapsAppDelegate.mm | 2 +- .../Maps/Core/Bookmarks/MWMBookmarksManager.h | 2 + .../Core/Bookmarks/MWMBookmarksManager.mm | 6 + .../InappPurchase/Impl/InAppBilling.swift | 2 + .../Impl/PendingTransactionsHandler.swift | 4 +- .../Core/InappPurchase/InAppPurchase.swift | 12 ++ .../Core/Subscriptions/MWMPurchaseManager.h | 4 + .../Core/Subscriptions/MWMPurchaseManager.mm | 25 ++- .../Core/Subscriptions/Subscription.swift | 12 +- .../Subscriptions/SubscriptionManager.swift | 38 ++-- .../Contents.json | 23 +++ .../mappyStickersV0219Copy.png | Bin 0 -> 16025 bytes .../mappyStickersV0219Copy@2x.png | Bin 0 -> 37029 bytes .../mappyStickersV0219Copy@3x.png | Bin 0 -> 60096 bytes .../Contents.json | 12 ++ .../mappyStickersV0217.pdf | Bin 0 -> 24412 bytes iphone/Maps/Maps.xcodeproj/project.pbxproj | 43 ++++- .../Maps/UI/Ads/RemoveAdsViewController.swift | 8 +- .../UI/Settings/MWMSettingsViewController.mm | 2 +- 33 files changed, 963 insertions(+), 119 deletions(-) rename iphone/Maps/Bookmarks/Catalog/{ => Dialogs}/BookmarksLoadedViewController.swift (100%) rename iphone/Maps/Bookmarks/Catalog/{ => Dialogs}/BookmarksLoadedViewController.xib (100%) create mode 100644 iphone/Maps/Bookmarks/Catalog/Dialogs/BookmarksSubscriptionExpiredViewController.swift create mode 100644 iphone/Maps/Bookmarks/Catalog/Dialogs/BookmarksSubscriptionExpiredViewController.xib create mode 100644 iphone/Maps/Bookmarks/Catalog/Dialogs/BookmarksSubscriptionFailViewController.swift create mode 100644 iphone/Maps/Bookmarks/Catalog/Dialogs/BookmarksSubscriptionFailViewController.xib create mode 100644 iphone/Maps/Bookmarks/Catalog/Dialogs/BookmarksSubscriptionSuccessViewController.swift create mode 100644 iphone/Maps/Bookmarks/Catalog/Dialogs/BookmarksSubscriptionSuccessViewController.xib create mode 100644 iphone/Maps/Images.xcassets/BookmarksSubscription/bookmarksSubscriptionFail.imageset/Contents.json create mode 100644 iphone/Maps/Images.xcassets/BookmarksSubscription/bookmarksSubscriptionFail.imageset/mappyStickersV0219Copy.png create mode 100644 iphone/Maps/Images.xcassets/BookmarksSubscription/bookmarksSubscriptionFail.imageset/mappyStickersV0219Copy@2x.png create mode 100644 iphone/Maps/Images.xcassets/BookmarksSubscription/bookmarksSubscriptionFail.imageset/mappyStickersV0219Copy@3x.png create mode 100644 iphone/Maps/Images.xcassets/BookmarksSubscription/bookmarksSubscriptionSuccess.imageset/Contents.json create mode 100644 iphone/Maps/Images.xcassets/BookmarksSubscription/bookmarksSubscriptionSuccess.imageset/mappyStickersV0217.pdf diff --git a/iphone/Maps/Bookmarks/Catalog/BookmarksSubscriptionCellViewController.xib b/iphone/Maps/Bookmarks/Catalog/BookmarksSubscriptionCellViewController.xib index 37c7629c52..f108d7c90a 100644 --- a/iphone/Maps/Bookmarks/Catalog/BookmarksSubscriptionCellViewController.xib +++ b/iphone/Maps/Bookmarks/Catalog/BookmarksSubscriptionCellViewController.xib @@ -97,8 +97,8 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iphone/Maps/Bookmarks/Catalog/Dialogs/BookmarksSubscriptionFailViewController.swift b/iphone/Maps/Bookmarks/Catalog/Dialogs/BookmarksSubscriptionFailViewController.swift new file mode 100644 index 0000000000..431665143e --- /dev/null +++ b/iphone/Maps/Bookmarks/Catalog/Dialogs/BookmarksSubscriptionFailViewController.swift @@ -0,0 +1,31 @@ +class BookmarksSubscriptionFailViewController: UIViewController { + private let transitioning = FadeTransitioning() + private let onOk: MWMVoidBlock + + init(onOk: @escaping MWMVoidBlock) { + self.onOk = onOk + super.init(nibName: nil, bundle: nil) + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func viewDidLoad() { + super.viewDidLoad() + } + + @IBAction func onOk(_ sender: UIButton) { + onOk() + } + + override var transitioningDelegate: UIViewControllerTransitioningDelegate? { + get { return transitioning } + set { } + } + + override var modalPresentationStyle: UIModalPresentationStyle { + get { return .custom } + set { } + } +} diff --git a/iphone/Maps/Bookmarks/Catalog/Dialogs/BookmarksSubscriptionFailViewController.xib b/iphone/Maps/Bookmarks/Catalog/Dialogs/BookmarksSubscriptionFailViewController.xib new file mode 100644 index 0000000000..cd08562a33 --- /dev/null +++ b/iphone/Maps/Bookmarks/Catalog/Dialogs/BookmarksSubscriptionFailViewController.xib @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iphone/Maps/Bookmarks/Catalog/Dialogs/BookmarksSubscriptionSuccessViewController.swift b/iphone/Maps/Bookmarks/Catalog/Dialogs/BookmarksSubscriptionSuccessViewController.swift new file mode 100644 index 0000000000..52411200b2 --- /dev/null +++ b/iphone/Maps/Bookmarks/Catalog/Dialogs/BookmarksSubscriptionSuccessViewController.swift @@ -0,0 +1,31 @@ +class BookmarksSubscriptionSuccessViewController: UIViewController { + private let transitioning = FadeTransitioning() + private let onOk: MWMVoidBlock + + init(onOk: @escaping MWMVoidBlock) { + self.onOk = onOk + super.init(nibName: nil, bundle: nil) + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func viewDidLoad() { + super.viewDidLoad() + } + + @IBAction func onOk(_ sender: UIButton) { + onOk() + } + + override var transitioningDelegate: UIViewControllerTransitioningDelegate? { + get { return transitioning } + set { } + } + + override var modalPresentationStyle: UIModalPresentationStyle { + get { return .custom } + set { } + } +} diff --git a/iphone/Maps/Bookmarks/Catalog/Dialogs/BookmarksSubscriptionSuccessViewController.xib b/iphone/Maps/Bookmarks/Catalog/Dialogs/BookmarksSubscriptionSuccessViewController.xib new file mode 100644 index 0000000000..7588490ba6 --- /dev/null +++ b/iphone/Maps/Bookmarks/Catalog/Dialogs/BookmarksSubscriptionSuccessViewController.xib @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iphone/Maps/Bookmarks/Catalog/PaidRouteViewController.swift b/iphone/Maps/Bookmarks/Catalog/PaidRouteViewController.swift index d55edab9e6..665d16976b 100644 --- a/iphone/Maps/Bookmarks/Catalog/PaidRouteViewController.swift +++ b/iphone/Maps/Bookmarks/Catalog/PaidRouteViewController.swift @@ -1,5 +1,8 @@ +import SafariServices + protocol PaidRouteViewControllerDelegate: AnyObject { func didCompletePurchase(_ viewController: PaidRouteViewController) + func didCompleteSubscription(_ viewController: PaidRouteViewController) func didCancelPurchase(_ viewController: PaidRouteViewController) } @@ -8,8 +11,8 @@ class PaidRouteViewController: MWMViewController { @IBOutlet weak var productNameLabel: UILabel! @IBOutlet weak var routeTitleLabel: UILabel! @IBOutlet weak var routeAuthorLabel: UILabel! + @IBOutlet weak var subscribeButton: UIButton! @IBOutlet weak var buyButton: UIButton! - @IBOutlet weak var cancelButton: UIButton! @IBOutlet weak var loadingIndicator: UIActivityIndicatorView! @IBOutlet weak var loadingView: UIView! @@ -22,7 +25,13 @@ class PaidRouteViewController: MWMViewController { private let imageUrl: URL? private var product: IStoreProduct? + private var subscription: ISubscription? + private let subscriptionManager: SubscriptionManager + override var supportedInterfaceOrientations: UIInterfaceOrientationMask { + get { return [.portrait] } + } + init(name: String, author: String?, imageUrl: URL?, @@ -33,35 +42,71 @@ class PaidRouteViewController: MWMViewController { self.imageUrl = imageUrl self.purchase = purchase self.statistics = statistics + self.subscriptionManager = InAppPurchase.bookmarksSubscriptionManager super.init(nibName: nil, bundle: nil) + self.subscriptionManager.addListener(self) } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } + deinit { + subscriptionManager.removeListener(self) + } + override func viewDidLoad() { super.viewDidLoad() + buyButton.layer.borderColor = UIColor.linkBlue()?.cgColor routeTitleLabel.text = name routeAuthorLabel.text = author if let url = imageUrl { previewImageView.wi_setImage(with: url, transitionDuration: kDefaultAnimationDuration) } - purchase.requestStoreProduct { [weak self] (product, error) in + var product: IStoreProduct? + var subscriptions: [ISubscription]? + + let dispatchGroup = DispatchGroup() + dispatchGroup.enter() + purchase.requestStoreProduct { (p, error) in + product = p + dispatchGroup.leave() + } + + dispatchGroup.enter() + subscriptionManager.getAvailableSubscriptions { (s, error) in + subscriptions = s + dispatchGroup.leave() + } + + dispatchGroup.notify(queue: .main) { [weak self] in self?.loadingIndicator.stopAnimating() - guard let product = product else { + guard let product = product, let subscriptions = subscriptions else { MWMAlertViewController.activeAlert().presentInfoAlert(L("price_error_title"), text: L("price_error_subtitle")) if let s = self { s.delegate?.didCancelPurchase(s) } return } self?.productNameLabel.text = product.localizedName - self?.buyButton.setTitle(String(coreFormat: L("buy_btn"), arguments: [product.formattedPrice]), - for: .normal) - self?.buyButton.isEnabled = true + self?.buyButton.setTitle(String(coreFormat: L("buy_btn"), arguments: [product.formattedPrice]), for: .normal) + self?.buyButton.isHidden = false + + let idx = Int(arc4random() % 2) + let s = subscriptions[idx] + + let formatter = NumberFormatter() + formatter.locale = s.priceLocale + formatter.numberStyle = .currency + + let titleFormat = L((s.period == .year) ? "buy_btn_for_subscription_ios_only_year" : "buy_btn_for_subscription_ios_only_mo") + let title = String(coreFormat: titleFormat, arguments: [formatter.string(from: s.price) ?? ""]) + self?.subscribeButton.setTitle(title, for: .normal) + self?.subscribeButton.isEnabled = true + self?.subscription = s } + statistics.logPreviewShow() } @@ -69,41 +114,118 @@ class PaidRouteViewController: MWMViewController { return .lightContent } + private func pingServer(_ completion: @escaping (_ success: Bool) -> Void) { + MWMBookmarksManager.shared().ping { (success) in + completion(success) + } + } + // MARK: - Event handlers @IBAction func onBuy(_ sender: UIButton) { statistics.logPay() loadingView.isHidden = false - purchase.makePayment({ [weak self] (code, error) in - self?.loadingView.isHidden = true - switch(code) { - case .success: - self?.statistics.logPaymentSuccess() - self?.statistics.logValidationSuccess() - if let s = self { s.delegate?.didCompletePurchase(s) } - case .userCancelled: - // do nothing - break - case .error: - if let err = error as? RoutePurchaseError { - switch err { - case .paymentError: - self?.statistics.logPaymentError("") - case .validationFailed: - fallthrough - case .validationError: - self?.statistics.logPaymentSuccess() - self?.statistics.logValidationError(err == .validationFailed ? 0 : 2) - } + pingServer { [weak self] (success) in + guard success else { + self?.loadingView.isHidden = true + let errorDialog = BookmarksSubscriptionFailViewController { [weak self] in + self?.dismiss(animated: true) } - MWMAlertViewController.activeAlert().presentInfoAlert(L("bookmarks_convert_error_title"), - text: L("purchase_error_subtitle")) + self?.present(errorDialog, animated: true) + return } - }) + + self?.purchase.makePayment({ [weak self] (code, error) in + self?.loadingView.isHidden = true + switch(code) { + case .success: + self?.statistics.logPaymentSuccess() + self?.statistics.logValidationSuccess() + if let s = self { s.delegate?.didCompletePurchase(s) } + case .userCancelled: + // do nothing + break + case .error: + if let err = error as? RoutePurchaseError { + switch err { + case .paymentError: + self?.statistics.logPaymentError("") + case .validationFailed: + fallthrough + case .validationError: + self?.statistics.logPaymentSuccess() + self?.statistics.logValidationError(err == .validationFailed ? 0 : 2) + } + } + MWMAlertViewController.activeAlert().presentInfoAlert(L("bookmarks_convert_error_title"), + text: L("purchase_error_subtitle")) + } + }) + } + } + + @IBAction func onSubscribe(_ sender: UIButton) { + guard let subscription = subscription else { + assertionFailure("Subscription can't be nil") + return + } + + loadingView.isHidden = false + pingServer { [weak self] (success) in + guard success else { + self?.loadingView.isHidden = true + let errorDialog = BookmarksSubscriptionFailViewController { [weak self] in + self?.dismiss(animated: true) + } + self?.present(errorDialog, animated: true) + return + } + + self?.subscriptionManager.subscribe(to: subscription) + } } @IBAction func onCancel(_ sender: UIButton) { statistics.logCancel() delegate?.didCancelPurchase(self) } + + @IBAction func onTerms(_ sender: UIButton) { + guard let url = URL(string: MWMAuthorizationViewModel.termsOfUseLink()) else { return } + let safari = SFSafariViewController(url: url) + self.present(safari, animated: true, completion: nil) + } + + @IBAction func onPrivacy(_ sender: UIButton) { + guard let url = URL(string: MWMAuthorizationViewModel.privacyPolicyLink()) else { return } + let safari = SFSafariViewController(url: url) + self.present(safari, animated: true, completion: nil) + } +} + +extension PaidRouteViewController : SubscriptionManagerListener { + func didFailToSubscribe(_ subscription: ISubscription, error: Error?) { + loadingView.isHidden = true + } + + func didSubsribe(_ subscription: ISubscription) { + loadingView.isHidden = true + delegate?.didCompleteSubscription(self) + let successDialog = BookmarksSubscriptionSuccessViewController { [weak self] in + self?.dismiss(animated: true) + } + present(successDialog, animated: true) + } + + func didFailToValidate(_ subscription: ISubscription, error: Error?) { + loadingView.isHidden = true + } + + func didDefer(_ subscription: ISubscription) { + loadingView.isHidden = true + } + + func validationError() { + loadingView.isHidden = true + } } diff --git a/iphone/Maps/Bookmarks/Catalog/PaidRouteViewController.xib b/iphone/Maps/Bookmarks/Catalog/PaidRouteViewController.xib index 9dd2b1a66a..ac45680745 100644 --- a/iphone/Maps/Bookmarks/Catalog/PaidRouteViewController.xib +++ b/iphone/Maps/Bookmarks/Catalog/PaidRouteViewController.xib @@ -1,48 +1,48 @@ - - + + - + - - + + - + - + - - + + - + - + @@ -62,7 +62,7 @@ - - + + + + + + @@ -144,16 +202,23 @@ + + + + + + + @@ -190,23 +255,42 @@ - - + + - - + + + + diff --git a/iphone/Maps/Classes/MapsAppDelegate.mm b/iphone/Maps/Classes/MapsAppDelegate.mm index 736b8758fe..635d22b14d 100644 --- a/iphone/Maps/Classes/MapsAppDelegate.mm +++ b/iphone/Maps/Classes/MapsAppDelegate.mm @@ -248,7 +248,7 @@ using namespace osm_auth_ios; [UNUserNotificationCenter currentNotificationCenter].delegate = self.notificationManager; if ([MWMFrameworkHelper isWiFiConnected]) { - [[SubscriptionManager shared] validate]; + [[InAppPurchase adsRemovalSubscriptionManager] validate]; self.pendingTransactionHandler = [InAppPurchase pendingTransactionsHandler]; __weak __typeof(self) ws = self; [self.pendingTransactionHandler handlePendingTransactions:^(PendingTransactionsStatus) { diff --git a/iphone/Maps/Core/Bookmarks/MWMBookmarksManager.h b/iphone/Maps/Core/Bookmarks/MWMBookmarksManager.h index d9672011da..692571d59a 100644 --- a/iphone/Maps/Core/Bookmarks/MWMBookmarksManager.h +++ b/iphone/Maps/Core/Bookmarks/MWMBookmarksManager.h @@ -11,6 +11,7 @@ NS_ASSUME_NONNULL_BEGIN typedef void (^LoadTagsCompletionBlock)(NSArray * _Nullable tags, NSInteger maxTagsNumber); +typedef void (^PingCompletionBlock)(BOOL success); @interface MWMBookmarksManager : NSObject @@ -93,6 +94,7 @@ typedef void (^LoadTagsCompletionBlock)(NSArray * _Nullable tags, - (void)uploadCategoryWithId:(MWMMarkGroupID)itemId progress:(_Nullable ProgressBlock)progress completion:(UploadCompletionBlock)completion; +- (void)ping:(PingCompletionBlock)callback; - (instancetype)init __attribute__((unavailable("call +manager instead"))); - (instancetype)copy __attribute__((unavailable("call +manager instead"))); diff --git a/iphone/Maps/Core/Bookmarks/MWMBookmarksManager.mm b/iphone/Maps/Core/Bookmarks/MWMBookmarksManager.mm index 36868dd7c1..b0a00b6561 100644 --- a/iphone/Maps/Core/Bookmarks/MWMBookmarksManager.mm +++ b/iphone/Maps/Core/Bookmarks/MWMBookmarksManager.mm @@ -725,6 +725,12 @@ NSString * const CloudErrorToString(Cloud::SynchronizationResult result) } } +- (void)ping:(PingCompletionBlock)callback { + self.bm.GetCatalog().Ping([callback] (bool success) { + callback(success); + }); +} + #pragma mark - Helpers - (void)loopObservers:(void (^)(id observer))block diff --git a/iphone/Maps/Core/InappPurchase/Impl/InAppBilling.swift b/iphone/Maps/Core/InappPurchase/Impl/InAppBilling.swift index 7521ded775..8cbbc46140 100644 --- a/iphone/Maps/Core/InappPurchase/Impl/InAppBilling.swift +++ b/iphone/Maps/Core/InappPurchase/Impl/InAppBilling.swift @@ -35,6 +35,8 @@ final class InAppBilling: NSObject, IInAppBilling { } deinit { + productRequest?.cancel() + productRequest?.delegate = nil SKPaymentQueue.default().remove(self) } diff --git a/iphone/Maps/Core/InappPurchase/Impl/PendingTransactionsHandler.swift b/iphone/Maps/Core/InappPurchase/Impl/PendingTransactionsHandler.swift index 17a5406a2b..b52713d5be 100644 --- a/iphone/Maps/Core/InappPurchase/Impl/PendingTransactionsHandler.swift +++ b/iphone/Maps/Core/InappPurchase/Impl/PendingTransactionsHandler.swift @@ -15,11 +15,9 @@ final class PendingTransactionsHandler: IPendingTransactionsHandler { case .paid: purchaseValidation.validateReceipt("") { [weak self] in switch $0 { - case .valid: + case .valid, .notValid: completion(.success) self?.pendingTransaction.finishTransaction() - case .notValid: - fallthrough case .error: completion(.error) case .authError: diff --git a/iphone/Maps/Core/InappPurchase/InAppPurchase.swift b/iphone/Maps/Core/InappPurchase/InAppPurchase.swift index fe44748d58..7618e6a3dc 100644 --- a/iphone/Maps/Core/InappPurchase/InAppPurchase.swift +++ b/iphone/Maps/Core/InappPurchase/InAppPurchase.swift @@ -25,4 +25,16 @@ final class InAppPurchase: NSObject { static func inAppBilling() -> IInAppBilling { return InAppBilling() } + + @objc static var adsRemovalSubscriptionManager: SubscriptionManager = { + return SubscriptionManager(productIds: MWMPurchaseManager.productIds(), + serverId: MWMPurchaseManager.adsRemovalServerId(), + vendorId: MWMPurchaseManager.adsRemovalVendorId()) + } () + + @objc static var bookmarksSubscriptionManager: SubscriptionManager = { + return SubscriptionManager(productIds: MWMPurchaseManager.bookmakrsProductIds(), + serverId: MWMPurchaseManager.bookmarksSubscriptionServerId(), + vendorId: MWMPurchaseManager.bookmarksSubscriptionVendorId()) + } () } diff --git a/iphone/Maps/Core/Subscriptions/MWMPurchaseManager.h b/iphone/Maps/Core/Subscriptions/MWMPurchaseManager.h index 55cdc03924..a8600eabe7 100644 --- a/iphone/Maps/Core/Subscriptions/MWMPurchaseManager.h +++ b/iphone/Maps/Core/Subscriptions/MWMPurchaseManager.h @@ -16,6 +16,9 @@ typedef void (^StartTransactionCallback)(BOOL success, NSString * serverId); @interface MWMPurchaseManager : NSObject ++ (NSString *)bookmarksSubscriptionServerId; ++ (NSString *)bookmarksSubscriptionVendorId; ++ (NSArray *)bookmakrsProductIds; + (NSString *)adsRemovalServerId; + (NSString *)adsRemovalVendorId; + (NSArray *)productIds; @@ -24,6 +27,7 @@ typedef void (^StartTransactionCallback)(BOOL success, NSString * serverId); + (MWMPurchaseManager *)sharedManager; - (void)validateReceipt:(NSString *)serverId + vendorId:(NSString *)vendorId refreshReceipt:(BOOL)refresh callback:(ValidateReceiptCallback)callback; - (void)startTransaction:(NSString *)serverId callback:(StartTransactionCallback)callback; diff --git a/iphone/Maps/Core/Subscriptions/MWMPurchaseManager.mm b/iphone/Maps/Core/Subscriptions/MWMPurchaseManager.mm index 40abd95ff0..1727cc6227 100644 --- a/iphone/Maps/Core/Subscriptions/MWMPurchaseManager.mm +++ b/iphone/Maps/Core/Subscriptions/MWMPurchaseManager.mm @@ -10,11 +10,28 @@ @property(nonatomic, copy) ValidateReceiptCallback callback; @property(nonatomic) SKReceiptRefreshRequest *receiptRequest; @property(nonatomic, copy) NSString * serverId; +@property(nonatomic, copy) NSString * vendorId; @end @implementation MWMPurchaseManager ++ (NSString *)bookmarksSubscriptionServerId +{ + return @(BOOKMARKS_SUBSCRIPTION_SERVER_ID); +} + ++ (NSString *)bookmarksSubscriptionVendorId +{ + return @(BOOKMARKS_SUBSCRIPTION_VENDOR); +} + ++ (NSArray *)bookmakrsProductIds +{ + return @[@(BOOKMARKS_SUBSCRIPTION_YEARLY_PRODUCT_ID), + @(BOOKMARKS_SUBSCRIPTION_MONTHLY_PRODUCT_ID)]; +} + + (NSString *)adsRemovalServerId { return @(ADS_REMOVAL_SERVER_ID); @@ -27,9 +44,9 @@ + (NSArray *)productIds { - return @[@(ADS_REMOVAL_WEEKLY_PRODUCT_ID), + return @[@(ADS_REMOVAL_YEARLY_PRODUCT_ID), @(ADS_REMOVAL_MONTHLY_PRODUCT_ID), - @(ADS_REMOVAL_YEARLY_PRODUCT_ID)]; + @(ADS_REMOVAL_WEEKLY_PRODUCT_ID)]; } + (NSArray *)legacyProductIds @@ -70,11 +87,13 @@ } - (void)validateReceipt:(NSString *)serverId + vendorId:(NSString *)vendorId refreshReceipt:(BOOL)refresh callback:(ValidateReceiptCallback)callback { self.callback = callback; self.serverId = serverId; + self.vendorId = vendorId; [self validateReceipt:refresh]; } @@ -112,7 +131,7 @@ Purchase::ValidationInfo vi; vi.m_receiptData = [receiptData base64EncodedStringWithOptions:0].UTF8String; vi.m_serverId = self.serverId.UTF8String; - vi.m_vendorId = ADS_REMOVAL_VENDOR; + vi.m_vendorId = self.vendorId.UTF8String; auto const accessToken = GetFramework().GetUser().GetAccessToken(); GetFramework().GetPurchase()->Validate(vi, accessToken); } diff --git a/iphone/Maps/Core/Subscriptions/Subscription.swift b/iphone/Maps/Core/Subscriptions/Subscription.swift index 4c44b3f4a6..6ee6973640 100644 --- a/iphone/Maps/Core/Subscriptions/Subscription.swift +++ b/iphone/Maps/Core/Subscriptions/Subscription.swift @@ -7,20 +7,22 @@ @objc protocol ISubscription { var productId: String { get } - var price: NSDecimalNumber? { get } + var price: NSDecimalNumber { get } var priceLocale: Locale? { get } var period: SubscriptionPeriod { get } } class Subscription: ISubscription { - public static let productIds = MWMPurchaseManager.productIds() + public static let productIds = MWMPurchaseManager.productIds() + MWMPurchaseManager.bookmakrsProductIds() public static let legacyProductIds = MWMPurchaseManager.legacyProductIds() - private static let periodMap: [String: SubscriptionPeriod] = [productIds[0]: .week, + private static let periodMap: [String: SubscriptionPeriod] = [productIds[0]: .year, productIds[1]: .month, - productIds[2]: .year] + productIds[2]: .week, + productIds[3]: .year, + productIds[4]: .month] var productId: String var period: SubscriptionPeriod - var price: NSDecimalNumber? + var price: NSDecimalNumber var priceLocale: Locale? init(_ product: SKProduct) { diff --git a/iphone/Maps/Core/Subscriptions/SubscriptionManager.swift b/iphone/Maps/Core/Subscriptions/SubscriptionManager.swift index bcd355a110..c86b06e043 100644 --- a/iphone/Maps/Core/Subscriptions/SubscriptionManager.swift +++ b/iphone/Maps/Core/Subscriptions/SubscriptionManager.swift @@ -10,7 +10,7 @@ class SubscriptionManager: NSObject { typealias SuscriptionsCompletion = ([ISubscription]?, Error?) -> Void typealias RestorationCompletion = (MWMValidationResult) -> Void - @objc static var shared: SubscriptionManager = { return SubscriptionManager() }() +// @objc static var shared: SubscriptionManager = { return SubscriptionManager() }() private let paymentQueue = SKPaymentQueue.default() @@ -21,6 +21,17 @@ class SubscriptionManager: NSObject { private var listeners = NSHashTable.weakObjects() private var restorationCallback: RestorationCompletion? + private var productIds: [String] = [] + private var serverId: String = "" + private var vendorId: String = "" + + convenience init(productIds: [String], serverId: String, vendorId: String) { + self.init() + self.productIds = productIds + self.serverId = serverId + self.vendorId = vendorId + } + override private init() { super.init() paymentQueue.add(self) @@ -36,7 +47,7 @@ class SubscriptionManager: NSObject { @objc func getAvailableSubscriptions(_ completion: @escaping SuscriptionsCompletion){ subscriptionsComplection = completion - productsRequest = SKProductsRequest(productIdentifiers: Set(Subscription.productIds)) + productsRequest = SKProductsRequest(productIdentifiers: Set(productIds)) productsRequest!.delegate = self productsRequest!.start() } @@ -66,19 +77,18 @@ class SubscriptionManager: NSObject { private func validate(_ refreshReceipt: Bool) { MWMPurchaseManager.shared() - .validateReceipt(MWMPurchaseManager.adsRemovalServerId(), - refreshReceipt: refreshReceipt) { (_, validationResult) in - self.logEvents(validationResult) + .validateReceipt(serverId, vendorId: vendorId, refreshReceipt: refreshReceipt) { [weak self] (_, validationResult) in + self?.logEvents(validationResult) if validationResult == .valid || validationResult == .notValid { MWMPurchaseManager.shared().setAdsDisabled(validationResult == .valid) - self.paymentQueue.transactions - .filter { Subscription.productIds.contains($0.payment.productIdentifier) && + self?.paymentQueue.transactions + .filter { self?.productIds.contains($0.payment.productIdentifier) ?? false && ($0.transactionState == .purchased || $0.transactionState == .restored) } - .forEach { self.paymentQueue.finishTransaction($0) } + .forEach { self?.paymentQueue.finishTransaction($0) } } - self.restorationCallback?(validationResult) - self.restorationCallback = nil + self?.restorationCallback?(validationResult) + self?.restorationCallback = nil } } @@ -87,7 +97,7 @@ class SubscriptionManager: NSObject { case .valid: Statistics.logEvent(kStatInappValidationSuccess) Statistics.logEvent(kStatInappProductDelivered, - withParameters: [kStatVendor : MWMPurchaseManager.adsRemovalVendorId()]) + withParameters: [kStatVendor : vendorId]) case .notValid: Statistics.logEvent(kStatInappValidationError, withParameters: [kStatErrorCode : 0]) case .serverError: @@ -108,14 +118,14 @@ extension SubscriptionManager: SKProductsRequestDelegate { } func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) { - guard response.products.count == 3 else { + guard response.products.count == productIds.count else { subscriptionsComplection?(nil, NSError(domain: "mapsme.subscriptions", code: -1, userInfo: nil)) subscriptionsComplection = nil productsRequest = nil return } let subscriptions = response.products.map { Subscription($0) } - .sorted { $0.period.rawValue > $1.period.rawValue } + .sorted { $0.period.rawValue < $1.period.rawValue } products = Dictionary(uniqueKeysWithValues: response.products.map { ($0.productIdentifier, $0) }) subscriptionsComplection?(subscriptions, nil) subscriptionsComplection = nil @@ -126,7 +136,7 @@ extension SubscriptionManager: SKProductsRequestDelegate { extension SubscriptionManager: SKPaymentTransactionObserver { func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) { let subscriptionTransactions = transactions.filter { - Subscription.productIds.contains($0.payment.productIdentifier) + productIds.contains($0.payment.productIdentifier) } subscriptionTransactions .filter { $0.transactionState == .failed } diff --git a/iphone/Maps/Images.xcassets/BookmarksSubscription/bookmarksSubscriptionFail.imageset/Contents.json b/iphone/Maps/Images.xcassets/BookmarksSubscription/bookmarksSubscriptionFail.imageset/Contents.json new file mode 100644 index 0000000000..493f69f33e --- /dev/null +++ b/iphone/Maps/Images.xcassets/BookmarksSubscription/bookmarksSubscriptionFail.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "mappyStickersV0219Copy.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "mappyStickersV0219Copy@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "mappyStickersV0219Copy@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/BookmarksSubscription/bookmarksSubscriptionFail.imageset/mappyStickersV0219Copy.png b/iphone/Maps/Images.xcassets/BookmarksSubscription/bookmarksSubscriptionFail.imageset/mappyStickersV0219Copy.png new file mode 100644 index 0000000000000000000000000000000000000000..4e13ee7309db54d546ab0a5551d0cfaa32675fe1 GIT binary patch literal 16025 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 TV_C?l00000NkvXXu0mjf9?Wd2 literal 0 HcmV?d00001 diff --git a/iphone/Maps/Images.xcassets/BookmarksSubscription/bookmarksSubscriptionFail.imageset/mappyStickersV0219Copy@2x.png b/iphone/Maps/Images.xcassets/BookmarksSubscription/bookmarksSubscriptionFail.imageset/mappyStickersV0219Copy@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d1205dba0dffd4aa7d69f61c7d0ced96082ac577 GIT binary patch literal 37029 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 Z{|B;8b$I9S!y6Nr-gsua_Ip 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 literal 0 HcmV?d00001 diff --git a/iphone/Maps/Maps.xcodeproj/project.pbxproj b/iphone/Maps/Maps.xcodeproj/project.pbxproj index f35824b850..1e48cb5b1b 100644 --- a/iphone/Maps/Maps.xcodeproj/project.pbxproj +++ b/iphone/Maps/Maps.xcodeproj/project.pbxproj @@ -429,6 +429,12 @@ 47C3DB582268CDDB00DF6F91 /* DeeplinkInfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47C3DB572268CDD800DF6F91 /* DeeplinkInfoViewController.swift */; }; 47C7F9732191E15A00C2760C /* InAppBilling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47C7F9722191E15A00C2760C /* InAppBilling.swift */; }; 47C7F97521930F5300C2760C /* IInAppBilling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47C7F97421930F5300C2760C /* IInAppBilling.swift */; }; + 47C8789022DF525A00A772DA /* BookmarksSubscriptionSuccessViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47C8788E22DF525A00A772DA /* BookmarksSubscriptionSuccessViewController.swift */; }; + 47C8789122DF525A00A772DA /* BookmarksSubscriptionSuccessViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 47C8788F22DF525A00A772DA /* BookmarksSubscriptionSuccessViewController.xib */; }; + 47C8789922DF622400A772DA /* BookmarksSubscriptionFailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47C8789722DF622400A772DA /* BookmarksSubscriptionFailViewController.swift */; }; + 47C8789A22DF622400A772DA /* BookmarksSubscriptionFailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 47C8789822DF622400A772DA /* BookmarksSubscriptionFailViewController.xib */; }; + 47C8789D22DF662700A772DA /* BookmarksSubscriptionExpiredViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47C8789B22DF662700A772DA /* BookmarksSubscriptionExpiredViewController.swift */; }; + 47C8789E22DF662700A772DA /* BookmarksSubscriptionExpiredViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 47C8789C22DF662700A772DA /* BookmarksSubscriptionExpiredViewController.xib */; }; 47D0026721999DA900F651A2 /* PendingTransactionsHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47D0026621999DA900F651A2 /* PendingTransactionsHandler.swift */; }; 47DF72B922520CE20004AB10 /* MWMRoutingOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 474902D9224A54EC008D71E0 /* MWMRoutingOptions.mm */; }; 47DF72BB225356BF0004AB10 /* DrivingOptions.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 47DF72BA225356BF0004AB10 /* DrivingOptions.storyboard */; }; @@ -1525,6 +1531,12 @@ 47C7F9722191E15A00C2760C /* InAppBilling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InAppBilling.swift; sourceTree = ""; }; 47C7F97421930F5300C2760C /* IInAppBilling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IInAppBilling.swift; sourceTree = ""; }; 47C7F976219310D800C2760C /* IMWMPurchaseValidation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IMWMPurchaseValidation.h; sourceTree = ""; }; + 47C8788E22DF525A00A772DA /* BookmarksSubscriptionSuccessViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BookmarksSubscriptionSuccessViewController.swift; sourceTree = ""; }; + 47C8788F22DF525A00A772DA /* BookmarksSubscriptionSuccessViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BookmarksSubscriptionSuccessViewController.xib; sourceTree = ""; }; + 47C8789722DF622400A772DA /* BookmarksSubscriptionFailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BookmarksSubscriptionFailViewController.swift; sourceTree = ""; }; + 47C8789822DF622400A772DA /* BookmarksSubscriptionFailViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BookmarksSubscriptionFailViewController.xib; sourceTree = ""; }; + 47C8789B22DF662700A772DA /* BookmarksSubscriptionExpiredViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BookmarksSubscriptionExpiredViewController.swift; sourceTree = ""; }; + 47C8789C22DF662700A772DA /* BookmarksSubscriptionExpiredViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BookmarksSubscriptionExpiredViewController.xib; sourceTree = ""; }; 47D0026621999DA900F651A2 /* PendingTransactionsHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PendingTransactionsHandler.swift; sourceTree = ""; }; 47DF72BA225356BF0004AB10 /* DrivingOptions.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = DrivingOptions.storyboard; sourceTree = ""; }; 47E3C71F21108E9F008B3B27 /* BookmarksLoadedViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BookmarksLoadedViewController.swift; sourceTree = ""; }; @@ -2209,7 +2221,7 @@ name = Products; sourceTree = ""; }; - 29B97314FDCFA39411CA2CEA = { + 29B97314FDCFA39411CA2CEA /* Maps */ = { isa = PBXGroup; children = ( 47AEF83F2231249E00D20538 /* categories_brands.txt */, @@ -3572,6 +3584,21 @@ path = WebImage; sourceTree = ""; }; + 47C8788D22DF522B00A772DA /* Dialogs */ = { + isa = PBXGroup; + children = ( + 47E3C71F21108E9F008B3B27 /* BookmarksLoadedViewController.swift */, + 47E3C72021108E9F008B3B27 /* BookmarksLoadedViewController.xib */, + 47C8788E22DF525A00A772DA /* BookmarksSubscriptionSuccessViewController.swift */, + 47C8788F22DF525A00A772DA /* BookmarksSubscriptionSuccessViewController.xib */, + 47C8789722DF622400A772DA /* BookmarksSubscriptionFailViewController.swift */, + 47C8789822DF622400A772DA /* BookmarksSubscriptionFailViewController.xib */, + 47C8789B22DF662700A772DA /* BookmarksSubscriptionExpiredViewController.swift */, + 47C8789C22DF662700A772DA /* BookmarksSubscriptionExpiredViewController.xib */, + ); + path = Dialogs; + sourceTree = ""; + }; 47E3C7232111E2F8008B3B27 /* Modal */ = { isa = PBXGroup; children = ( @@ -3625,6 +3652,7 @@ B32FE73D20D283D600EF7446 /* Catalog */ = { isa = PBXGroup; children = ( + 47C8788D22DF522B00A772DA /* Dialogs */, B32FE73E20D2844600EF7446 /* DownloadedBookmarksViewController.swift */, B32FE73F20D2844600EF7446 /* DownloadedBookmarksViewController.xib */, B32FE74220D2B09600EF7446 /* CatalogWebViewController.swift */, @@ -3633,8 +3661,6 @@ B366130320D5D9BC00E7DC3E /* MWMCategory.m */, B366130820D5E2E000E7DC3E /* CatalogCategoryCell.swift */, B366130920D5E2E000E7DC3E /* CatalogCategoryCell.xib */, - 47E3C71F21108E9F008B3B27 /* BookmarksLoadedViewController.swift */, - 47E3C72021108E9F008B3B27 /* BookmarksLoadedViewController.xib */, 470F5A592181DE7400754295 /* PaidRouteViewController.swift */, 470F5A5A2181DE7400754295 /* PaidRouteViewController.xib */, 45AC339022C4F57C004DC574 /* MWMUTM.h */, @@ -4789,7 +4815,7 @@ "en-GB", el, ); - mainGroup = 29B97314FDCFA39411CA2CEA; + mainGroup = 29B97314FDCFA39411CA2CEA /* Maps */; productRefGroup = 19C28FACFE9D520D11CA2CBB /* Products */; projectDirPath = ""; projectReferences = ( @@ -4969,6 +4995,7 @@ 34AB66711FC5AA330078E451 /* TransportTransitTrain.xib in Resources */, 33046836219C5A4E0041F3A8 /* CategorySettings.storyboard in Resources */, 34BBD6471F82649D0070CA50 /* GoogleSignIn.bundle in Resources */, + 47C8789A22DF622400A772DA /* BookmarksSubscriptionFailViewController.xib in Resources */, 47DF72BB225356BF0004AB10 /* DrivingOptions.storyboard in Resources */, F6E2FE851E097BA00083EBEC /* MWMPlacePageOpeningHoursWeekDayView.xib in Resources */, F6E2FE941E097BA00083EBEC /* PlacePageTaxiCell.xib in Resources */, @@ -5040,7 +5067,9 @@ 6741A97D1BF340DE002C974C /* synonyms.txt in Resources */, 34E50DF31F6FCC41008EED49 /* UGCYourReviewCell.xib in Resources */, CDB4D4D7222D248900104869 /* CarPlayStoryboard.storyboard in Resources */, + 47C8789122DF525A00A772DA /* BookmarksSubscriptionSuccessViewController.xib in Resources */, 3476B8E11BFDD33A00874594 /* tts-how-to-set-up-voice-img in Resources */, + 47C8789E22DF662700A772DA /* BookmarksSubscriptionExpiredViewController.xib in Resources */, 3476B8DD1BFDD30B00874594 /* tts-how-to-set-up-voice.html in Resources */, 6741A95D1BF340DE002C974C /* types.txt in Resources */, 6741A94B1BF340DE002C974C /* unicode_blocks.txt in Resources */, @@ -5183,6 +5212,7 @@ F6E2FDEC1E097BA00083EBEC /* MWMOpeningHoursAddClosedTableViewCell.mm in Sources */, 34BBD64C1F826DB10070CA50 /* AuthorizationViewController.swift in Sources */, F6E2FE101E097BA00083EBEC /* MWMOpeningHoursTableViewCell.mm in Sources */, + 47C8789D22DF662700A772DA /* BookmarksSubscriptionExpiredViewController.swift in Sources */, 6741A9B01BF340DE002C974C /* MapsAppDelegate.mm in Sources */, 4719A645219CBD65009F9AA7 /* IPendingTransactionsHandler.swift in Sources */, 34F742321E0834F400AC1FD6 /* UIViewController+Navigation.mm in Sources */, @@ -5357,6 +5387,7 @@ 3404F490202898CC0090E401 /* BMCModels.swift in Sources */, F6E2FD561E097BA00083EBEC /* MWMMapDownloaderButtonTableViewCell.mm in Sources */, CDB4D5002231412900104869 /* MapTemplateBuilder.swift in Sources */, + 47C8789022DF525A00A772DA /* BookmarksSubscriptionSuccessViewController.swift in Sources */, 3462258F1DDC5DBA001E8752 /* MWMSearchNoResultsAlert.mm in Sources */, 470F5A7D2189BB2F00754295 /* PaidRoutePurchase.swift in Sources */, 34AB66171FC5AA320078E451 /* MWMiPhoneRoutePreview.m in Sources */, @@ -5607,6 +5638,7 @@ 4710366522D3764600585272 /* BookmarksSubscriptionCellViewController.swift in Sources */, 34E776101F14B165003040B3 /* VisibleArea.swift in Sources */, 330473EA21F7440C00DC4AEA /* MWMHotelParams.mm in Sources */, + 47C8789922DF622400A772DA /* BookmarksSubscriptionFailViewController.swift in Sources */, 3454D7D71E07F045004AF2AD /* UIKitCategories.mm in Sources */, 47E6CB0B2178BA3600EA102B /* SearchBannerCell.swift in Sources */, 34AB39C21D2BD8310021857D /* MWMStopButton.mm in Sources */, @@ -5781,6 +5813,7 @@ CODE_SIGN_ENTITLEMENTS = "maps.me dbg.entitlements"; CODE_SIGN_IDENTITY = "iPhone Developer: Aleksey Belousov (927TL2MZMM)"; CODE_SIGN_STYLE = Manual; + DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = N9X2A789QT; "EXCLUDED_SOURCE_FILE_NAMES[sdk=iphonesimulator*]" = MetalContextFactory.mm; "EXCLUDED_SOURCE_FILE_NAMES[sdk=macosx*]" = MetalContextFactory.mm; @@ -5803,7 +5836,7 @@ CODE_SIGN_ENTITLEMENTS = "maps.me rel.entitlements"; CODE_SIGN_IDENTITY = "iPhone Developer: Aleksey Belousov (927TL2MZMM)"; CODE_SIGN_STYLE = Manual; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = N9X2A789QT; "EXCLUDED_SOURCE_FILE_NAMES[sdk=iphonesimulator*]" = MetalContextFactory.mm; "EXCLUDED_SOURCE_FILE_NAMES[sdk=macosx*]" = MetalContextFactory.mm; diff --git a/iphone/Maps/UI/Ads/RemoveAdsViewController.swift b/iphone/Maps/UI/Ads/RemoveAdsViewController.swift index e601b9b1fa..df0b296563 100644 --- a/iphone/Maps/UI/Ads/RemoveAdsViewController.swift +++ b/iphone/Maps/UI/Ads/RemoveAdsViewController.swift @@ -83,8 +83,8 @@ import SafariServices override func viewDidLoad() { super.viewDidLoad() - SubscriptionManager.shared.addListener(self) - SubscriptionManager.shared.getAvailableSubscriptions { (subscriptions, error) in + InAppPurchase.adsRemovalSubscriptionManager.addListener(self) + InAppPurchase.adsRemovalSubscriptionManager.getAvailableSubscriptions { (subscriptions, error) in self.subscriptions = subscriptions self.productsLoadingIndicator.stopAnimating() guard let subscriptions = subscriptions else { @@ -127,7 +127,7 @@ import SafariServices } deinit { - SubscriptionManager.shared.removeListener(self) + InAppPurchase.adsRemovalSubscriptionManager.removeListener(self) } @IBAction func onClose(_ sender: Any) { @@ -188,7 +188,7 @@ import SafariServices Statistics.logEvent(kStatInappSelect, withParameters: [kStatProduct : subscription.productId]) Statistics.logEvent(kStatInappPay) showPurchaseProgress() - SubscriptionManager.shared.subscribe(to: subscription) + InAppPurchase.adsRemovalSubscriptionManager.subscribe(to: subscription) } private func showPurchaseProgress() { diff --git a/iphone/Maps/UI/Settings/MWMSettingsViewController.mm b/iphone/Maps/UI/Settings/MWMSettingsViewController.mm index 3e9a3fe3c3..fe086a8b52 100644 --- a/iphone/Maps/UI/Settings/MWMSettingsViewController.mm +++ b/iphone/Maps/UI/Settings/MWMSettingsViewController.mm @@ -372,7 +372,7 @@ using namespace power_management; [self.restoreSubscriptionCell.progress startAnimating]; self.restoringSubscription = YES; __weak auto s = self; - [[SubscriptionManager shared] restore:^(MWMValidationResult result) { + [[InAppPurchase adsRemovalSubscriptionManager] restore:^(MWMValidationResult result) { __strong auto self = s; self.restoringSubscription = NO; [self.restoreSubscriptionCell.progress stopAnimating];