Mercurial > public > lazybear
annotate LazyBear/ContentView.swift @ 395:a0cf8fe47044
Fix minor bugs
author | Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com> |
---|---|
date | Fri, 07 May 2021 11:43:47 +0200 |
parents | 3599d303d1a0 |
children | f9611c94d636 |
rev | line source |
---|---|
163
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
1 // |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
2 // ContentView.swift |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
3 // LazyBear |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
4 // |
296
b481783c32c0
Start version 4
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
287
diff
changeset
|
5 // Created by Dennis Concepción Martín on 21/3/21. |
163
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
6 // |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
7 |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
8 import SwiftUI |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
9 |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
10 struct ContentView: View { |
321
8f8d5ad3dfa0
Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
307
diff
changeset
|
11 @State private var showWelcome = false |
378
6802c2393203
Implementing ProfileView (Watchlists)
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
377
diff
changeset
|
12 @State var selectedView = 1 |
321
8f8d5ad3dfa0
Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
307
diff
changeset
|
13 |
395
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
14 @Environment(\.managedObjectContext) private var moc |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
15 @FetchRequest(entity: WatchlistCompany.entity(), sortDescriptors: []) |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
16 var watchlistCompanies: FetchedResults<WatchlistCompany> |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
17 |
163
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
18 var body: some View { |
385
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
19 TabView(selection: $selectedView) { |
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
20 HomeView() |
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
21 .tabItem { |
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
22 Image(systemName: "house") |
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
23 Text("Home") |
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
24 } |
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
25 .tag(1) // Do not remove tags. It causes an odd behaviour when showView is activated |
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
26 SearchView() |
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
27 .tabItem { |
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
28 Image(systemName: "magnifyingglass") |
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
29 Text("Search") |
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
30 } |
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
31 .tag(2) |
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
32 ProfileView() |
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
33 .tabItem { |
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
34 Image(systemName: "person") |
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
35 Text("Profile") |
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
36 } |
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
37 .tag(3) |
346
80bfa88c6b0f
Implementing Prop API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
341
diff
changeset
|
38 // Text("The Last Tab") |
80bfa88c6b0f
Implementing Prop API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
341
diff
changeset
|
39 // .tabItem { |
80bfa88c6b0f
Implementing Prop API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
341
diff
changeset
|
40 // Image(systemName: "4.square.fill") |
80bfa88c6b0f
Implementing Prop API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
341
diff
changeset
|
41 // Text("Forth") |
80bfa88c6b0f
Implementing Prop API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
341
diff
changeset
|
42 // } |
385
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
43 } |
395
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
44 .onAppear { |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
45 // isAppAlreadyLaunchedOnce() |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
46 createDefaultWatchlist() |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
47 } |
385
7aab87e16661
Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
378
diff
changeset
|
48 .sheet(isPresented: $showWelcome) { |
321
8f8d5ad3dfa0
Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
307
diff
changeset
|
49 |
8f8d5ad3dfa0
Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
307
diff
changeset
|
50 } |
163
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
51 } |
321
8f8d5ad3dfa0
Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
307
diff
changeset
|
52 |
395
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
53 /* |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
54 Check if app is already launched one -> If not show welcome |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
55 */ |
321
8f8d5ad3dfa0
Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
307
diff
changeset
|
56 // private func isAppAlreadyLaunchedOnce() { |
8f8d5ad3dfa0
Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
307
diff
changeset
|
57 // let defaults = UserDefaults.standard |
8f8d5ad3dfa0
Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
307
diff
changeset
|
58 // |
8f8d5ad3dfa0
Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
307
diff
changeset
|
59 // if let isAppAlreadyLaunchedOnce = defaults.string(forKey: "IsAppAlreadyLaunchedOnce") { |
8f8d5ad3dfa0
Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
307
diff
changeset
|
60 // print("App already launched : \(isAppAlreadyLaunchedOnce)") |
8f8d5ad3dfa0
Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
307
diff
changeset
|
61 // self.showWelcome = true |
8f8d5ad3dfa0
Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
307
diff
changeset
|
62 // } |
8f8d5ad3dfa0
Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
307
diff
changeset
|
63 // } |
395
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
64 |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
65 /* |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
66 Check if exist default watchlist (Core Data) -> if not, create it |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
67 */ |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
68 private func createDefaultWatchlist() { |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
69 let defaultCompanies = [("TSLA", "Tesla Inc"), ("AAPL", "Apple Inc"), ("MSFT", "Microsoft Corporation"), ("GS", "Goldman Sachs Group, Inc.")] |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
70 if watchlistCompanies.isEmpty { |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
71 for tupleCompany in defaultCompanies { |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
72 let watchlistCompany = WatchlistCompany(context: moc) |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
73 watchlistCompany.symbol = tupleCompany.0 |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
74 watchlistCompany.name = tupleCompany.1 |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
75 watchlistCompany.watchlist = "Default watchlist" |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
76 } |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
77 do { |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
78 try moc.save() |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
79 print("Default watchlist created") |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
80 } catch { |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
81 print(error.localizedDescription) |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
82 } |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
83 } |
a0cf8fe47044
Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
386
diff
changeset
|
84 } |
163
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
85 } |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
86 |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
87 struct ContentView_Previews: PreviewProvider { |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
88 static var previews: some View { |
165
125d268db489
Update UI
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
164
diff
changeset
|
89 ContentView() |
163
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
90 } |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
91 } |