Mercurial > public > simoleon
comparison Simoleon/Settings.swift @ 75:b6f8661300f2
Added isLocked to CurrencyPairs
author | Dennis Concepción Martín <dennisconcepcionmartin@gmail.com> |
---|---|
date | Fri, 30 Jul 2021 15:52:27 +0100 |
parents | 2b85d6ed433e |
children | 822175ac4343 |
comparison
equal
deleted
inserted
replaced
74:bfb959bee6d7 | 75:b6f8661300f2 |
---|---|
18 @State private var alertTitle = "" | 18 @State private var alertTitle = "" |
19 @State private var alertMessage = "" | 19 @State private var alertMessage = "" |
20 @State private var showingAlert = false | 20 @State private var showingAlert = false |
21 @State private var searchCurrency = "" | 21 @State private var searchCurrency = "" |
22 | 22 |
23 let currencyPairs: [String] = parseJson("CurrencyPairs.json") | 23 let currencyPairs: [CurrencyPairModel] = parseJson("CurrencyPairs.json") |
24 | |
25 /* | |
26 If searched currency string is empty: | |
27 * Show all currencies | |
28 else: | |
29 * Show filtered list of currencies containing searched currency string | |
30 */ | |
31 var searchResults: [CurrencyPairModel] { | |
32 if searchCurrency.isEmpty { | |
33 return currencyPairs.sorted { $0.name < $1.name } | |
34 } else { | |
35 return currencyPairs.filter { $0.name.contains(searchCurrency.uppercased()) } | |
36 } | |
37 } | |
24 | 38 |
25 var body: some View { | 39 var body: some View { |
26 List { | 40 List { |
27 Section(header: Text("Preferences")) { | 41 Section(header: Text("Preferences")) { |
28 if entitlementIsActive { | 42 if entitlementIsActive { |
29 Picker("Default currency", selection: $selectedDefaultCurrency) { | 43 Picker("Default currency", selection: $selectedDefaultCurrency) { |
30 SearchBar(placeholder: "Search...", text: $searchCurrency) | 44 SearchBar(placeholder: "Search...", text: $searchCurrency) |
31 .padding(5) | 45 .padding(5) |
32 | 46 |
33 ForEach(searchResults, id: \.self) { currencyPair in | 47 ForEach(searchResults, id: \.self) { currencyPair in |
34 Text(currencyPair) | 48 Text(currencyPair.name) |
35 } | 49 } |
36 } | 50 } |
37 } else { | 51 } else { |
38 LockedCurrencyPicker() | 52 LockedCurrencyPicker() |
39 .contentShape(Rectangle()) | 53 .contentShape(Rectangle()) |
113 } | 127 } |
114 .if(UIDevice.current.userInterfaceIdiom == .phone) { content in | 128 .if(UIDevice.current.userInterfaceIdiom == .phone) { content in |
115 NavigationView { content } | 129 NavigationView { content } |
116 } | 130 } |
117 } | 131 } |
118 | |
119 /* | |
120 If searched currency string is empty: | |
121 * Show all currencies | |
122 else: | |
123 * Show filtered list of currencies containing searched currency string | |
124 */ | |
125 var searchResults: [String] { | |
126 if searchCurrency.isEmpty { | |
127 return currencyPairs.sorted() | |
128 } else { | |
129 return currencyPairs.filter { $0.contains(searchCurrency.uppercased()) } | |
130 } | |
131 } | |
132 | |
133 | 132 |
134 // Save default currency to core data | 133 // Save default currency to core data |
135 private func setCoreData() { | 134 private func setCoreData() { |
136 if defaultCurrency.isEmpty { // If it's empty -> add record | 135 if defaultCurrency.isEmpty { // If it's empty -> add record |
137 let defaultCurrency = DefaultCurrency(context: viewContext) | 136 let defaultCurrency = DefaultCurrency(context: viewContext) |