From 2688081f55cd95d600a449f4326ca703af8ae189 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Tue, 29 Oct 2024 10:29:29 +0100 Subject: [PATCH] fixes --- HabitRPG/UI/General/FaintViewController.swift | 2 +- .../GiftSubscriptionViewController.swift | 2 +- HabitRPG/UI/Purchases/SubscriptionPage.swift | 28 +++++++++++++------ HabitRPG/Utilities/PurchaseHandler.swift | 4 +++ 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/HabitRPG/UI/General/FaintViewController.swift b/HabitRPG/UI/General/FaintViewController.swift index 2dac2f839..0e09e788c 100644 --- a/HabitRPG/UI/General/FaintViewController.swift +++ b/HabitRPG/UI/General/FaintViewController.swift @@ -101,7 +101,7 @@ private class ViewModel: ObservableObject { let defaults = UserDefaults.standard defaults.set(Date(), forKey: "lastFaintSubBenefit") DispatchQueue.main.asyncAfter(deadline: .now() + 2) { - ToastManager.show(text: L10n.Faint.perkSuccess, color: .subscriberPerk) + ToastManager.show(text: L10n.Faint.perkSuccess, color: .subscriberPerk, duration: 4.0) } onCompleted() } diff --git a/HabitRPG/UI/Purchases/GiftSubscriptionViewController.swift b/HabitRPG/UI/Purchases/GiftSubscriptionViewController.swift index 3b75c5d86..84e6d321d 100644 --- a/HabitRPG/UI/Purchases/GiftSubscriptionViewController.swift +++ b/HabitRPG/UI/Purchases/GiftSubscriptionViewController.swift @@ -254,7 +254,7 @@ class GiftSubscriptionViewController: UIHostingController func displayConfirmationDialog() { var body = L10n.giftConfirmationBody(viewModel.giftedUser?.profile?.name ?? "", selectedDurationString()) - if activePromo?.identifier == "g1g1" { + if activePromo?.identifier == "g1g1" && viewModel.giftedUser?.id != userRepository.currentUserId { body = L10n.giftConfirmationBodyG1g1(viewModel.giftedUser?.profile?.name ?? "", selectedDurationString()) } let alertController = HabiticaAlertController(title: L10n.giftConfirmationTitle, message: body) diff --git a/HabitRPG/UI/Purchases/SubscriptionPage.swift b/HabitRPG/UI/Purchases/SubscriptionPage.swift index 38fb02eb6..3f9ee122d 100644 --- a/HabitRPG/UI/Purchases/SubscriptionPage.swift +++ b/HabitRPG/UI/Purchases/SubscriptionPage.swift @@ -82,7 +82,7 @@ class SubscriptionViewModel: BaseSubscriptionViewModel { let inventoryRepository = InventoryRepository() let configRepository = ConfigRepository.shared - var onSubscriptionSuccessful: (() -> Void)? + var dimissVC: (() -> Void)? var onGiftButtonTapped: (() -> Void)? @Published var presentationPoint: PresentationPoint? @@ -155,6 +155,7 @@ class SubscriptionViewModel: BaseSubscriptionViewModel { func subscribeTapped() { if !PurchaseHandler.shared.isAllowedToMakePurchases() { + dismiss() return } withAnimation { @@ -200,7 +201,7 @@ class SubscriptionViewModel: BaseSubscriptionViewModel { } private func dismiss() { - if let action = self.onSubscriptionSuccessful { + if let action = self.dimissVC { action() } } @@ -418,7 +419,7 @@ struct SubscriptionPage: View { .padding(.top, 8) .padding(.horizontal, 41) } - }.padding(.bottom, 24) + }.padding(.bottom, 12) } SubscriptionBenefitListView(presentationPoint: viewModel.presentationPoint, mysteryGear: viewModel.mysteryGear, mysteryGearSet: viewModel.mysteryGearSet) .padding(.horizontal, 24) @@ -471,6 +472,9 @@ struct SubscriptionPage: View { .padding(.vertical, 30) } Image(Asset.subscriptionBackground.name) + .resizable() + .aspectRatio(contentMode: .fit) + .frame(maxWidth: .infinity) SubscriptionDisclaimer() } else { Image(uiImage: HabiticaIcons.imageOfHeartLarge) @@ -503,6 +507,9 @@ struct SubscriptionPage: View { .padding(.horizontal, 32) Image(Asset.subscriptionBackground.name) + .resizable() + .aspectRatio(contentMode: .fit) + .frame(maxWidth: .infinity) } Group { if viewModel.presentationPoint == nil { @@ -540,6 +547,7 @@ struct SubscriptionPage: View { .foregroundColor(textColor) .padding(.top, 16) .background(backgroundColor.ignoresSafeArea(.all, edges: .top).padding(.bottom, 4)) + .ignoresSafeArea() .cornerRadius([.topLeading, .topTrailing], 12) } } @@ -584,8 +592,10 @@ class SubscriptionModalViewController: HostingPanModal { init(presentationPoint: PresentationPoint?) { viewModel = SubscriptionViewModel(presentationPoint: presentationPoint) super.init(nibName: nil, bundle: nil) - viewModel.onSubscriptionSuccessful = { - self.dismiss() + viewModel.dimissVC = { + DispatchQueue.main.asyncAfter(deadline: .now() + 0.5, execute: { + self.dismiss() + }) } switch presentationPoint { @@ -605,6 +615,11 @@ class SubscriptionModalViewController: HostingPanModal { required init?(coder aDecoder: NSCoder) { viewModel = SubscriptionViewModel(presentationPoint: nil) super.init(coder: aDecoder) + viewModel.dimissVC = { + DispatchQueue.main.asyncAfter(deadline: .now() + 0.5, execute: { + self.dismiss() + }) + } } override func viewDidLoad() { @@ -646,9 +661,6 @@ class SubscriptionPageController: UIHostingController Bool { + #if DEBUG || targetEnvironment(simulator) + return false + #else let testinglevel = ConfigRepository.shared.testingLevel if HabiticaAppDelegate.isRunningLive() || testinglevel.isTrustworthy { return true } return false + #endif } func isNoRenewSubscription(_ identifier: String) -> Bool {