annotate LazyBear/ContentView.swift @ 287:22eba376075e

Add custom haptics
author Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
date Sat, 20 Mar 2021 15:01:05 +0100
parents 9e23e9b0ab36
children b481783c32c0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 //
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
5 // Created by Dennis Concepción Martín on 17/2/21.
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 {
248
1c4da42d6b88 Change vars to EnvironmentObject
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 246
diff changeset
11 @EnvironmentObject var hudManager: HudManager
272
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
12 @EnvironmentObject var deviceSize: DeviceSize
287
22eba376075e Add custom haptics
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 272
diff changeset
13 @EnvironmentObject var hapticsManager: HapticsManager
178
c1aa75608c27 Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 165
diff changeset
14
244
724916624385 Implement Insider View
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 193
diff changeset
15 // Fetch user appearence settings
181
9533f6a60531 User can change theme color
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 178
diff changeset
16 @FetchRequest(entity: UserSettings.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \UserSettings.changedAt, ascending: false)])
9533f6a60531 User can change theme color
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 178
diff changeset
17 var userSettings: FetchedResults<UserSettings>
9533f6a60531 User can change theme color
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 178
diff changeset
18
163
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
19 var body: some View {
272
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
20 GeometryReader { geo in
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
21 ZStack(alignment: .top) {
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
22 TabView {
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
23 // First view
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
24 Watchlist()
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
25 .tabItem {
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
26 Label("Watchlist", systemImage: "list.dash")
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
27 }
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
28
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
29 // First view
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
30 Search()
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
31 .tabItem {
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
32 Label("Search", systemImage: "magnifyingglass")
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
33 }
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
34
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
35 // First view
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
36 Settings()
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
37 .tabItem {
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
38 Label("Settings", systemImage: "gear")
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
39 }
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
40 }
178
c1aa75608c27 Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 165
diff changeset
41
272
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
42 // Show HUDs
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
43 // Notification
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
44 Notification(text: "Company saved", image: "checkmark.circle")
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
45 .offset(y: hudManager.showNotification ? 0 : -100)
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
46 .animation(.easeInOut)
178
c1aa75608c27 Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 165
diff changeset
47
272
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
48 // Action sheet
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
49 ZStack(alignment: .bottom) {
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
50 Color(.black)
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
51 .edgesIgnoringSafeArea(.all)
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
52 .opacity(hudManager.showAction ? 0.2: 0)
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
53 .animation(.easeInOut)
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
54 .onTapGesture { hudManager.showAction = false }
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
55
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
56 ActionView()
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
57 .offset(y: hudManager.showAction ? 0 : 250)
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
58 .animation(.easeInOut)
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
59 .padding()
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
60 }
178
c1aa75608c27 Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 165
diff changeset
61 }
272
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
62 .accentColor(Color("\(userSettings.first?.theme?.lowercased() ?? "default")Accent"))
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
63 // If this value is not optional it will cause a crash
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
64 .onAppear {
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
65 // Assign device screen size to the class
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
66 self.deviceSize.width = geo.size.width
9e23e9b0ab36 Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 258
diff changeset
67 self.deviceSize.height = geo.size.height
287
22eba376075e Add custom haptics
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 272
diff changeset
68 hapticsManager.prepareHaptics()
246
35be981ccb31 Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 244
diff changeset
69 }
163
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
70 }
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
71 }
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
72 }
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
73
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
74
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
75 struct ContentView_Previews: PreviewProvider {
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
76 static var previews: some View {
165
125d268db489 Update UI
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 164
diff changeset
77 ContentView()
258
471906e56feb Changing NewsView on iPad
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 250
diff changeset
78 .environmentObject(HudManager())
163
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
79 }
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
80 }