From 8c0e2a294ad62ff17c190680be21cf1c94e859dd Mon Sep 17 00:00:00 2001 From: Denis Aleshin Date: Mon, 13 May 2024 11:47:34 +0200 Subject: [PATCH] CU-86dt8g811 update subscription hint --- LockdowniOS/PaywallView.swift | 12 ++---------- LockdowniOS/VPNPaywallViewController.swift | 19 ++++++++++++++----- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/LockdowniOS/PaywallView.swift b/LockdowniOS/PaywallView.swift index 14d8fc6..552ef89 100644 --- a/LockdowniOS/PaywallView.swift +++ b/LockdowniOS/PaywallView.swift @@ -80,18 +80,10 @@ final class PaywallView: UIView { return button }() - var isYearlyProduct: Bool { - (VPNSubscription.selectedProductId == VPNSubscription.productIdAdvancedYearly) - || (VPNSubscription.selectedProductId == VPNSubscription.productIdAnnual) - || (VPNSubscription.selectedProductId == VPNSubscription.productIdAnnualPro) - } - - var isYearlyProductWithTrial: Bool { - isYearlyProduct && (VPNSubscription.trialDuration(productId: model.annualProductId) != nil) - } func updateCTATitle() { - let title = isYearlyProductWithTrial ? "Start for Free" : "Continue" + let hasTrial = (VPNSubscription.trialDuration(productId: model.annualProductId) != nil) || (VPNSubscription.trialDuration(productId: model.mounthProductId) != nil) + let title = hasTrial ? "Start for Free" : "Continue" actionButton.setTitle(title, for: .normal) } diff --git a/LockdowniOS/VPNPaywallViewController.swift b/LockdowniOS/VPNPaywallViewController.swift index bb5bc7c..8970dff 100644 --- a/LockdowniOS/VPNPaywallViewController.swift +++ b/LockdowniOS/VPNPaywallViewController.swift @@ -115,7 +115,7 @@ final class VPNPaywallViewController: BaseViewController, Loadable { } view.bottomProduct.setOnClickListener { [unowned self] in selectAdvancedMonthly() - selectMontlyProduct(view) + selectMontlyProduct(view, model: .advancedDetails()) } view.actionButton.setOnClickListener { [unowned self] in @@ -135,7 +135,7 @@ final class VPNPaywallViewController: BaseViewController, Loadable { } view.bottomProduct.setOnClickListener { [unowned self] in selectAnonymousMonthly() - selectMontlyProduct(view) + selectMontlyProduct(view, model: .anonymousDetails()) } view.actionButton.setOnClickListener { [unowned self] in startTrial() @@ -152,7 +152,7 @@ final class VPNPaywallViewController: BaseViewController, Loadable { } view.bottomProduct.setOnClickListener { [unowned self] in selectUniversalMonthly() - selectMontlyProduct(view) + selectMontlyProduct(view, model: .universalDetails()) } view.actionButton.setOnClickListener { [unowned self] in @@ -165,14 +165,23 @@ final class VPNPaywallViewController: BaseViewController, Loadable { private func selectYearlyProduct(_ view: PaywallView, model: PaywallViewModel) { view.topProduct.setSelected(true) view.bottomProduct.setSelected(false) + let anualPrice = VPNSubscription.getProductIdPrice(productId: model.annualProductId) + let monthlyPrice = VPNSubscription.getProductIdPriceMonthly(productId: model.annualProductId) + let trialDuation = VPNSubscription.trialDuration(productId: model.annualProductId) ?? "" + let title = trialDuation + " " + NSLocalizedString("free trial", comment: "") + "," + " then \(anualPrice) (\(monthlyPrice)/mo)" + view.trialDescriptionLabel.text = title view.trialDescriptionLabel.isHidden = VPNSubscription.trialDuration(productId: model.annualProductId) == nil view.updateCTATitle() } - private func selectMontlyProduct(_ view: PaywallView) { + private func selectMontlyProduct(_ view: PaywallView, model: PaywallViewModel) { view.bottomProduct.setSelected(true) view.topProduct.setSelected(false) - view.trialDescriptionLabel.isHidden = true + let monthlyPrice = VPNSubscription.getProductIdPrice(productId: model.mounthProductId) + let trialDuation = VPNSubscription.trialDuration(productId: model.annualProductId) ?? "" + let title = trialDuation + " " + NSLocalizedString("free trial", comment: "") + "," + " then \(monthlyPrice)/mo" + view.trialDescriptionLabel.text = title + view.trialDescriptionLabel.isHidden = VPNSubscription.trialDuration(productId: model.mounthProductId) == nil view.updateCTATitle() }