Mercurial > public > simoleon
diff 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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Simoleon/SettingsView.swift Sat Aug 28 11:15:25 2021 +0100 @@ -0,0 +1,174 @@ +//// +//// 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() +// } +//}