Mercurial > public > simoleon
view Simoleon/SettingsView.swift @ 156:84137052813d
Refactor code
author | Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com> |
---|---|
date | Sat, 28 Aug 2021 11:15:25 +0100 |
parents | |
children |
line wrap: on
line source
//// //// SettingsView.swift //// Simoleon //// //// Created by Dennis Concepción Martín on 19/07/2021. //// // //import SwiftUI //import Purchases // //struct SettingsView: View { // @Environment(\.managedObjectContext) private var viewContext // @FetchRequest(sortDescriptors: []) private var defaultCurrency: FetchedResults<DefaultCurrency> // @State private var selectedDefaultCurrency = "" // @State private var showingSubscriptionPaywall = false // @State private var entitlementIsActive = false // @State private var alertTitle = "" // @State private var alertMessage = "" // @State private var showingAlert = false // @State private var searchCurrency = "" // let file = File() // // /* // If searched currency string is empty: // * Show all currencies // else: // * Show filtered list of currencies containing searched currency string // */ // var searchResults: [String] { // let currencyPairsSupported: [String] = try! file.read(json: "CurrencyPairsSupported.json") // if searchCurrency.isEmpty { // return currencyPairsSupported.sorted() // } else { // return currencyPairsSupported.filter { $0.contains(searchCurrency.uppercased()) } // } // } // // var body: some View { // List { // Section(header: Text("Preferences")) { // if entitlementIsActive { // Picker("Default currency", selection: $selectedDefaultCurrency) { // SearchBar(placeholder: "Search...", text: $searchCurrency) // .padding(5) // // ForEach(searchResults, id: \.self) { currencyPairsSupported in // Text(currencyPairsSupported) // .tag(currencyPairsSupported) // } // } // } else { // LockedCurrencyPicker() // .contentShape(Rectangle()) // .onTapGesture { showingSubscriptionPaywall = true } // } // } // // Section(header: Text("Stay in touch")) { // Link(destination: URL(string: "https://itunes.apple.com/app/id1576390953?action=write-review")!) { // HStack { // Image(systemName: "heart.fill") // .foregroundColor(Color(.systemRed)) // .imageScale(.large) // // Text("Rate Simoleon") // } // } // // Link(destination: URL(string: "https://twitter.com/dennisconcep")!) { // HStack { // Image("TwitterLogo") // .resizable() // .frame(width: 30, height: 30) // // Text("Developer's Twitter") // } // } // // Link(destination: URL(string: "https://dennistech.io/contact")!) { // HStack { // Image(systemName: "envelope.fill") // .foregroundColor(Color(.systemIndigo)) // .imageScale(.large) // // Text("Contact") // } // } // } // // Section(header: Text("About")) { // Link(destination: URL(string: "https://dennistech.io")!) { // Text("Website") // } // // Link(destination: URL(string: "https://dennistech.io/simoleon-privacy-policy")!) { // Text("Privacy Policy") // } // // Link(destination: URL(string: "https://dennistech.io/simoleon-terms-of-use")!) { // Text("Terms of Use") // } // } // } // .alert(isPresented: $showingAlert) { // Alert(title: Text(alertTitle), message: Text(alertMessage), dismissButton: .default(Text("Ok"))) // } // .onAppear { // checkEntitlement() // /* // if selectedDefaultCurrency is empty: // * View is appearing for the first time // * Set initial default curency for picker // else: // * View is appearing after user selected another default currency // * Save it to core data // */ //// if selectedDefaultCurrency == "" { //// selectedDefaultCurrency = defaultCurrency.first?.pair ?? "USD/GBP" //// } else { //// setCoreData() //// } // } // .listStyle(InsetGroupedListStyle()) // .navigationTitle("Settings") // .sheet(isPresented: $showingSubscriptionPaywall, onDismiss: checkEntitlement) { // SubscriptionPaywall(showingSubscriptionPaywall: $showingSubscriptionPaywall) // } // .if(UIDevice.current.userInterfaceIdiom == .phone) { content in // NavigationView { content } // } // } // // // Save default currency to core data //// private func setCoreData() { //// if defaultCurrency.isEmpty { // If it's empty -> add record //// let defaultCurrency = DefaultCurrency(context: viewContext) //// defaultCurrency.pair = selectedDefaultCurrency //// //// do { //// try viewContext.save() //// } catch { //// print(error.localizedDescription) //// } //// } else { // If not, update record //// defaultCurrency.first?.pair = selectedDefaultCurrency //// try? viewContext.save() //// } //// } // // // Check if user subscription is active // private func checkEntitlement() { // #if SCREENSHOTS // entitlementIsActive = true // #else // Purchases.shared.purchaserInfo { (purchaserInfo, error) in // if purchaserInfo?.entitlements["all"]?.isActive == true { // entitlementIsActive = true // } // // if let error = error as NSError? { // alertTitle = error.localizedDescription // alertMessage = error.localizedFailureReason ?? "" // showingAlert = true // } // } // #endif // } //} // //struct SettingsView_Previews: PreviewProvider { // static var previews: some View { // SettingsView() // } //}