# HG changeset patch # User Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com> # Date 1614710764 0 # Node ID 108fe992c703c3614ac9e24b1b138e0831716300 # Parent 439e94a2200d39d32e9dbb8bb304055592833a9f Fix bugs diff -r 439e94a2200d -r 108fe992c703 LazyBear.xcodeproj/project.pbxproj --- a/LazyBear.xcodeproj/project.pbxproj Tue Mar 02 18:45:55 2021 +0000 +++ b/LazyBear.xcodeproj/project.pbxproj Tue Mar 02 18:46:04 2021 +0000 @@ -14,10 +14,11 @@ 9505764325ED670B00D548E4 /* blue.png in Resources */ = {isa = PBXBuildFile; fileRef = 9505763D25ED670B00D548E4 /* blue.png */; }; 9505764425ED670B00D548E4 /* pink.png in Resources */ = {isa = PBXBuildFile; fileRef = 9505763E25ED670B00D548E4 /* pink.png */; }; 9505764525ED670B00D548E4 /* red.png in Resources */ = {isa = PBXBuildFile; fileRef = 9505763F25ED670B00D548E4 /* red.png */; }; - 9508479A25EBD340000106A9 /* TestPullScroll.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9508479925EBD340000106A9 /* TestPullScroll.swift */; }; 950B674925E99FA900BF8593 /* IconPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 950B674825E99FA900BF8593 /* IconPicker.swift */; }; 950B674C25E9A03E00BF8593 /* alternativeIcons.json in Resources */ = {isa = PBXBuildFile; fileRef = 950B674B25E9A03E00BF8593 /* alternativeIcons.json */; }; 950B674F25E9A0AE00BF8593 /* IconModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 950B674E25E9A0AE00BF8593 /* IconModel.swift */; }; + 9517626025EEB37E00733235 /* PriceModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9517625F25EEB37E00733235 /* PriceModel.swift */; }; + 9517626325EEBD3800733235 /* IexAttribution.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9517626225EEBD3800733235 /* IexAttribution.swift */; }; 9549D63325E1903F0085C3CD /* Charts in Frameworks */ = {isa = PBXBuildFile; productRef = 9549D63225E1903F0085C3CD /* Charts */; }; 9549D63625E191520085C3CD /* Normalize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9549D63525E191520085C3CD /* Normalize.swift */; }; 95672B8F25DDA54700DCBE4A /* LazyBearApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95672B8E25DDA54700DCBE4A /* LazyBearApp.swift */; }; @@ -67,12 +68,13 @@ 9505763D25ED670B00D548E4 /* blue.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = blue.png; sourceTree = ""; }; 9505763E25ED670B00D548E4 /* pink.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = pink.png; sourceTree = ""; }; 9505763F25ED670B00D548E4 /* red.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = red.png; sourceTree = ""; }; - 9508479925EBD340000106A9 /* TestPullScroll.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestPullScroll.swift; sourceTree = ""; }; 950B674825E99FA900BF8593 /* IconPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconPicker.swift; sourceTree = ""; }; 950B674B25E9A03E00BF8593 /* alternativeIcons.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = alternativeIcons.json; sourceTree = ""; }; 950B674E25E9A0AE00BF8593 /* IconModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconModel.swift; sourceTree = ""; }; 950BA46B25E944F500D065EF /* Production.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Production.xcconfig; sourceTree = ""; }; 950BA46C25E944FC00D065EF /* Sandbox.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Sandbox.xcconfig; sourceTree = ""; }; + 9517625F25EEB37E00733235 /* PriceModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PriceModel.swift; sourceTree = ""; }; + 9517626225EEBD3800733235 /* IexAttribution.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IexAttribution.swift; sourceTree = ""; }; 9549D63525E191520085C3CD /* Normalize.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Normalize.swift; sourceTree = ""; }; 95672B8B25DDA54700DCBE4A /* LazyBear.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LazyBear.app; sourceTree = BUILT_PRODUCTS_DIR; }; 95672B8E25DDA54700DCBE4A /* LazyBearApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LazyBearApp.swift; sourceTree = ""; }; @@ -132,7 +134,6 @@ 950BA46D25E9450B00D065EF /* Tests */ = { isa = PBXGroup; children = ( - 9508479925EBD340000106A9 /* TestPullScroll.swift */, ); path = Tests; sourceTree = ""; @@ -216,6 +217,7 @@ 95BFAE5325E2C52300A70EC3 /* HistoricalPriceModel.swift */, 95F045FD25E96AA1006A5A17 /* NewsLanguageModel.swift */, 950B674E25E9A0AE00BF8593 /* IconModel.swift */, + 9517625F25EEB37E00733235 /* PriceModel.swift */, ); path = Models; sourceTree = ""; @@ -238,6 +240,7 @@ 95BFAE4A25E2AEA000A70EC3 /* HUD.swift */, 95BFAE5725E2C5A700A70EC3 /* HistoricalPriceView.swift */, 95BB43BF25EA667700B6C965 /* DateSelection.swift */, + 9517626225EEBD3800733235 /* IexAttribution.swift */, ); path = UI; sourceTree = ""; @@ -361,15 +364,16 @@ 95B3E09F25E127D7007EFDE3 /* Request.swift in Sources */, 95F045FE25E96AA1006A5A17 /* NewsLanguageModel.swift in Sources */, 95BFAE5425E2C52300A70EC3 /* HistoricalPriceModel.swift in Sources */, - 9508479A25EBD340000106A9 /* TestPullScroll.swift in Sources */, 95BFAE5825E2C5A700A70EC3 /* HistoricalPriceView.swift in Sources */, 9549D63625E191520085C3CD /* Normalize.swift in Sources */, 95672B9125DDA54700DCBE4A /* ContentView.swift in Sources */, 95F0460425E96DBB006A5A17 /* UserSettings+CoreDataClass.swift in Sources */, 950B674F25E9A0AE00BF8593 /* IconModel.swift in Sources */, 958A733B25E00C3100FD7ECA /* Company+CoreDataProperties.swift in Sources */, + 9517626325EEBD3800733235 /* IexAttribution.swift in Sources */, 95ACB5AF25E03AA100A3CCC8 /* ThemeModel.swift in Sources */, 95672B8F25DDA54700DCBE4A /* LazyBearApp.swift in Sources */, + 9517626025EEB37E00733235 /* PriceModel.swift in Sources */, 958A734525E00D3D00FD7ECA /* CompanyRow.swift in Sources */, 95ABDD3525E166BA00310776 /* NewsView.swift in Sources */, 95672B9B25DDA54800DCBE4A /* LazyBear.xcdatamodeld in Sources */, @@ -513,7 +517,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = LazyBear/LazyBear.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 12; + CURRENT_PROJECT_VERSION = 13; DEVELOPMENT_ASSET_PATHS = "\"LazyBear/Preview Content\""; DEVELOPMENT_TEAM = MTX83R5H8X; ENABLE_PREVIEWS = YES; @@ -538,7 +542,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = LazyBear/LazyBear.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 12; + CURRENT_PROJECT_VERSION = 13; DEVELOPMENT_ASSET_PATHS = "\"LazyBear/Preview Content\""; DEVELOPMENT_TEAM = MTX83R5H8X; ENABLE_PREVIEWS = YES; diff -r 439e94a2200d -r 108fe992c703 LazyBear.xcodeproj/project.xcworkspace/xcuserdata/dennis.xcuserdatad/UserInterfaceState.xcuserstate Binary file LazyBear.xcodeproj/project.xcworkspace/xcuserdata/dennis.xcuserdatad/UserInterfaceState.xcuserstate has changed diff -r 439e94a2200d -r 108fe992c703 LazyBear/Functions/Request.swift --- a/LazyBear/Functions/Request.swift Tue Mar 02 18:45:55 2021 +0000 +++ b/LazyBear/Functions/Request.swift Tue Mar 02 18:46:04 2021 +0000 @@ -7,33 +7,30 @@ import Foundation -class Network: ObservableObject { - @Published var showingProgress = false - - // Network request - func request(url: String, model: T.Type, completion: @escaping (_ result: T) -> Void) { - // We take some model data T.Type - guard let url = URL(string: url) else { - print("Invalid URL") - return +// Network request +func request(url: String, model: T.Type, completion: @escaping (_ result: T) -> Void) { + // We take some model data T.Type + guard let url = URL(string: url) else { + print("Invalid URL") + return + } + let request = URLRequest(url: url) + URLSession.shared.dataTask(with: request) { data, response, error in + if let data = data { + do { + // Decode response with the model passed + let decodedResponse = try JSONDecoder().decode(model, from: data) + DispatchQueue.main.async { + completion(decodedResponse) + } + return + } catch { + // Return error regarding the escaping code + print(error) + } } - let request = URLRequest(url: url) - URLSession.shared.dataTask(with: request) { data, response, error in - if let data = data { - do { - // Decode response with the model passed - let decodedResponse = try JSONDecoder().decode(model, from: data) - DispatchQueue.main.async { - //print(decodedResponse) - completion(decodedResponse) - } - return - } catch { - print(error) - } - } - print("Fetch failed: \(error?.localizedDescription ?? "Unknown error")") - } - .resume() + // Error with the request + print("Fetch failed: \(error?.localizedDescription ?? "Unknown error")") } + .resume() } diff -r 439e94a2200d -r 108fe992c703 LazyBear/Info.plist --- a/LazyBear/Info.plist Tue Mar 02 18:45:55 2021 +0000 +++ b/LazyBear/Info.plist Tue Mar 02 18:46:04 2021 +0000 @@ -21,60 +21,60 @@ UIPrerenderedIcon - greenIcon - - CFBundleIconFiles - - green.png - - UIPrerenderedIcon - - - pinkIcon - - CFBundleIconFiles - - pink.png - - UIPrerenderedIcon - - - redIcon - - CFBundleIconFiles - - red.png - - UIPrerenderedIcon - - - matteBlackIcon - - CFBundleIconFiles - - matteBlack.png - - UIPrerenderedIcon - - - matteWhiteIcon - - CFBundleIconFiles - - matteWhite.png - - UIPrerenderedIcon - - - graffitiIcon - - CFBundleIconFiles - - graffiti.png - - UIPrerenderedIcon - - + graffitiIcon + + CFBundleIconFiles + + graffiti.png + + UIPrerenderedIcon + + + greenIcon + + CFBundleIconFiles + + green.png + + UIPrerenderedIcon + + + matteBlackIcon + + CFBundleIconFiles + + matteBlack.png + + UIPrerenderedIcon + + + matteWhiteIcon + + CFBundleIconFiles + + matteWhite.png + + UIPrerenderedIcon + + + pinkIcon + + CFBundleIconFiles + + pink.png + + UIPrerenderedIcon + + + redIcon + + CFBundleIconFiles + + red.png + + UIPrerenderedIcon + + CFBundlePrimaryIcon diff -r 439e94a2200d -r 108fe992c703 LazyBear/UI/NewsLanguagePicker.swift --- a/LazyBear/UI/NewsLanguagePicker.swift Tue Mar 02 18:45:55 2021 +0000 +++ b/LazyBear/UI/NewsLanguagePicker.swift Tue Mar 02 18:46:04 2021 +0000 @@ -13,9 +13,9 @@ var body: some View { Picker("News language", selection: $language) { - ForEach(newsLanguages, id: \.name) { language in + ForEach(newsLanguages, id: \.code) { language in Text("\(language.flag) \(language.name)") - .tag(language.name) + .tag(language.code) } } .onChange(of: language, perform: { language in diff -r 439e94a2200d -r 108fe992c703 LazyBear/UI/NewsView.swift --- a/LazyBear/UI/NewsView.swift Tue Mar 02 18:45:55 2021 +0000 +++ b/LazyBear/UI/NewsView.swift Tue Mar 02 18:46:04 2021 +0000 @@ -9,10 +9,8 @@ struct NewsView: View { var symbol: String - @State var news = [NewsModel]() - - @FetchRequest(entity: UserSettings.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \UserSettings.changedAt, ascending: false)]) - var userSettings: FetchedResults + @FetchRequest(entity: UserSettings.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \UserSettings.changedAt, ascending: false)]) var userSettings: FetchedResults + @State private var news = [NewsModel]() var body: some View { VStack(alignment: .leading) { diff -r 439e94a2200d -r 108fe992c703 LazyBear/UI/Search.swift --- a/LazyBear/UI/Search.swift Tue Mar 02 18:45:55 2021 +0000 +++ b/LazyBear/UI/Search.swift Tue Mar 02 18:46:04 2021 +0000 @@ -15,10 +15,6 @@ var body: some View { NavigationView { - let colorNumber = ["1", "2", "3", "4", "5"] - // Iterate over and over through this list to print the color for every row - // Color names are from 1 to 5 - let list = filterList() List(list.indices, id: \.self) { i in let name = list[i].securityName ?? "-" @@ -26,8 +22,7 @@ NavigationLink(destination: CompanyView(hudManager: hudManager, name: name, symbol: symbol) .navigationTitle(symbol) ) { - // Pass color number to the row - CompanyRow(symbol: symbol, name: name, rowNumber: i % colorNumber.count) + CompanyRow(symbol: symbol, name: name, rowNumber: i % 5) } } .navigationBarSearch(self.$company) diff -r 439e94a2200d -r 108fe992c703 LazyBear/UI/Watchlist.swift --- a/LazyBear/UI/Watchlist.swift Tue Mar 02 18:45:55 2021 +0000 +++ b/LazyBear/UI/Watchlist.swift Tue Mar 02 18:46:04 2021 +0000 @@ -12,22 +12,17 @@ @ObservedObject var hudManager: HUDManager @Environment(\.managedObjectContext) private var moc @FetchRequest(entity: Company.entity(), sortDescriptors: []) var companies: FetchedResults - @Environment(\.editMode) var mode var body: some View { NavigationView { - // Iterate over and over through this list to print the color for every row - // Color names are from 1 to 5 - let colorNumber = ["1", "2", "3", "4", "5"] List { - ForEach(companies.indices) { i in + ForEach(companies.indices, id: \.self) { i in let name = companies[i].name let symbol = companies[i].symbol NavigationLink(destination: CompanyView(hudManager: hudManager, name: name, symbol: symbol) .navigationTitle(symbol) ) { - // Pass color number to the row - CompanyRow(symbol: symbol, name: name, rowNumber: i % colorNumber.count) + CompanyRow(symbol: symbol, name: name, rowNumber: i % 5) } } .onDelete(perform: removeCompany)