diff Simoleon/Conversion.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 41a905e591e4
children 2eb05f396fcd
line wrap: on
line diff
--- a/Simoleon/Conversion.swift	Sun Jul 25 10:59:51 2021 +0100
+++ b/Simoleon/Conversion.swift	Mon Jul 26 15:35:06 2021 +0100
@@ -6,20 +6,15 @@
 //
 
 import SwiftUI
+import Purchases
 
 struct Conversion: View {
-    var fetchUserSettings: Bool
     @State var currencyPair: String
-    @EnvironmentObject var subscriptionController: SubscriptionController
-    
     @State private var amountToConvert = "1000"
     @State private var price: Double = 1.00
     @State private var showingConversion = false
     @State private var showingCurrencySelector = false
-    @State private var isEditing = false
-    
-    @Environment(\.managedObjectContext) private var viewContext
-    @FetchRequest(sortDescriptors: []) private var defaultCurrency: FetchedResults<DefaultCurrency>
+    @State private var amountIsEditing = false
     
     let currencyMetadata: [String: CurrencyMetadataModel] = parseJson("CurrencyMetadata.json")
     
@@ -31,7 +26,10 @@
                         RoundedRectangle(cornerRadius: 15)
                             .foregroundColor(Color(.secondarySystemBackground))
                             .frame(height: 60)
-                            .overlay(CurrencyRow(currencyPair: currencyPair).padding(.horizontal))
+                            .overlay(
+                                CurrencyRow(currencyPair: currencyPair)
+                                    .padding(.horizontal)
+                            )
                     }
                     
                     FavouriteButton(currencyPair: currencyPair)
@@ -42,47 +40,34 @@
                     amountToConvert: $amountToConvert,
                     price: $price,
                     showingConversion: $showingConversion,
-                    showingCurrencySelector: $showingCurrencySelector,
-                    isEditing: $isEditing
+                    amountIsEditing: $amountIsEditing
                 )
             }
             .padding()
-            .onAppear {
-                if fetchUserSettings {
-                    fetchingUserSettings()
-                }
-                
-                request(currencyPair)
-            }
-            .onChange(of: showingCurrencySelector, perform: { showingCurrencySelector in
-                if !showingCurrencySelector {
-                    request(currencyPair)
-                }
-            })
             .sheet(isPresented: $showingCurrencySelector) {
                 CurrencySelector(currencyPair: $currencyPair, showingCurrencySelector: $showingCurrencySelector)
-                    .environmentObject(subscriptionController)
             }
         }
+        .onAppear(perform: request)
         .navigationTitle(Text("Convert", comment: "Navigation title"))
         .toolbar {
             ToolbarItem(placement: .cancellationAction) {
-                if isEditing {
+                if amountIsEditing {
                     Button(action: {
                         UIApplication.shared.dismissKeyboard()
-                        isEditing = false
+                        amountIsEditing = false
                     }) {
                         Text("Cancel", comment: "Button to stop editing textfield")
                     }
                 }
             }
         }
-        .if(UIDevice.current.userInterfaceIdiom == .phone && fetchUserSettings) { content in
+        .if(UIDevice.current.userInterfaceIdiom == .phone) { content in
             NavigationView { content }
         }
     }
     
-    private func request(_ currencyPair: String) {
+    private func request() {
         let url = "\(readConfig("API_URL")!)quotes?pairs=\(currencyPair)&api_key=\(readConfig("API_KEY")!)"
         
         Simoleon.request(url: url, model: [CurrencyQuoteModel].self) { response in
@@ -95,21 +80,11 @@
             }
         }
     }
-    
-    /*
-     1) Fetch default currency from User Settings
-     2) Change State var currencyPair
-     */
-    private func fetchingUserSettings() {
-        if let defaultCurrency = defaultCurrency.first {
-            self.currencyPair = defaultCurrency.pair ?? "USD/GBP"
-        }
-    }
 }
 
 
 struct Conversion_Previews: PreviewProvider {
     static var previews: some View {
-        Conversion(fetchUserSettings: true, currencyPair: "USD/GBP")
+        Conversion(currencyPair: "USD/GBP")
     }
 }