diff Simoleon/Helpers/CurrencySelector.swift @ 42:d25b02d439d4

Minor updates subscription and legal requirements
author Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
date Mon, 26 Jul 2021 15:35:06 +0100
parents e521236028e0
children 2eb05f396fcd
line wrap: on
line diff
--- a/Simoleon/Helpers/CurrencySelector.swift	Sun Jul 25 10:59:51 2021 +0100
+++ b/Simoleon/Helpers/CurrencySelector.swift	Mon Jul 26 15:35:06 2021 +0100
@@ -11,7 +11,6 @@
 struct CurrencySelector: View {
     @Binding var currencyPair: String
     @Binding var showingCurrencySelector: Bool
-    @EnvironmentObject var subscriptionController: SubscriptionController
     
     @State private var searchCurrency = ""
     @State private var showingSubscriptionPaywall = false
@@ -34,6 +33,9 @@
                     UIApplication.shared.dismissKeyboard()
                  })
              )
+            .sheet(isPresented: $showingSubscriptionPaywall) {
+                SubscriptionPaywall(showingSubscriptionPaywall: $showingSubscriptionPaywall)
+            }
             .navigationTitle(Text("Currencies", comment: "Navigation title"))
             .navigationBarTitleDisplayMode(.inline)
             .toolbar {
@@ -44,11 +46,12 @@
                 }
             }
         }
-        .sheet(isPresented: $showingSubscriptionPaywall) {
-            Subscription(showingSubscriptionPaywall: $showingSubscriptionPaywall)
-        }
     }
     
+    /*
+     If searched currency string is empty -> show all currencies
+     else -> show filtered list of currencies containing searched currency string
+     */
     private func currencyPairs() -> [String] {
         let currencyPairs: [String] = parseJson("CurrencyPairs.json")
         
@@ -60,12 +63,18 @@
     }
     
     
+    /*
+     If user is subscribed -> select currency and dismiss currency selector
+     else -> show subscription paywall
+     */
     private func select(_ currencyPair: String) {
-        if subscriptionController.isActive {
-            self.currencyPair = currencyPair
-            showingCurrencySelector = false
-        } else {
-            showingSubscriptionPaywall = true
+        Purchases.shared.purchaserInfo { (purchaserInfo, error) in
+            if purchaserInfo?.entitlements["all"]?.isActive == true {
+                self.currencyPair = currencyPair
+                showingCurrencySelector = false
+            } else {
+                showingSubscriptionPaywall = true
+            }
         }
     }
 }
@@ -74,6 +83,5 @@
 struct CurrencySelector_Previews: PreviewProvider {
     static var previews: some View {
         CurrencySelector(currencyPair: .constant("USD/GBP"), showingCurrencySelector: .constant(false))
-            .environmentObject(SubscriptionController())
     }
 }