changeset 457:c6913f0ce46e

Minor UI Updates
author Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
date Mon, 28 Jun 2021 14:03:50 +0200
parents d576b2b59014
children 253e1216e4d2
files LazyBear.xcodeproj/project.pbxproj LazyBear.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved LazyBear.xcodeproj/project.xcworkspace/xcuserdata/dennis.xcuserdatad/UserInterfaceState.xcuserstate LazyBear/ContentView.swift LazyBear/Global Models/InsiderRosterModel.swift LazyBear/Global Models/InsiderTransactionModel.swift LazyBear/Global Models/KeyStatsModel.swift LazyBear/Global Models/LatestNewsModel.swift LazyBear/Global functions/ConvertEpoch.swift LazyBear/Views/Company/Helpers/InsiderRosterHelper.swift LazyBear/Views/Company/Helpers/InsiderTransactionsHelper.swift LazyBear/Views/Company/Helpers/InsiderTransactionsRow.swift LazyBear/Views/Company/Helpers/NewsHelper.swift LazyBear/Views/Home/Helpers/CurrencyItem.swift LazyBear/Views/Home/Helpers/TradingDatesItem.swift LazyBear/Views/Profile/Helpers/WatchlistCreatorRow.swift LazyBear/Views/Search/Helpers/SearchedCompanyItem.swift LazyBearWatchOS Extension/ContentView.swift LazyBearWatchOS Extension/Info.plist LazyBearWatchOS Extension/LazyBearWatchOS Extension.entitlements LazyBearWatchOS Extension/Views/Helpers/WatchOSNewsDetail.swift LazyBearWatchOS Extension/Views/Helpers/WatchOSNewsList.swift LazyBearWatchOS Extension/Views/Helpers/WatchOSNewsRow.swift LazyBearWatchOS Extension/Views/WatchOSProfileView.swift
diffstat 24 files changed, 122 insertions(+), 94 deletions(-) [+]
line wrap: on
line diff
--- a/LazyBear.xcodeproj/project.pbxproj	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBear.xcodeproj/project.pbxproj	Mon Jun 28 14:03:50 2021 +0200
@@ -113,11 +113,9 @@
 		95CCFB5E266E855800C384A1 /* GetDateComponents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95CCFB5D266E855800C384A1 /* GetDateComponents.swift */; };
 		95CCFB60266E864C00C384A1 /* ConvertStringToDate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95CCFB5F266E864C00C384A1 /* ConvertStringToDate.swift */; };
 		95CF46A32688BC0B0028C5A2 /* WatchOSCompanyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95CF46A22688BC0B0028C5A2 /* WatchOSCompanyView.swift */; };
-		95CF46A82688C60D0028C5A2 /* StockCharts in Frameworks */ = {isa = PBXBuildFile; productRef = 95CF46A72688C60D0028C5A2 /* StockCharts */; };
 		95CF46A92688C74C0028C5A2 /* Company.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9502BBF8267F59A0003B0A59 /* Company.swift */; };
 		95CF46AC2688C7810028C5A2 /* QuoteModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A07F6B26305AC6009865AA /* QuoteModel.swift */; };
 		95CF46AD2688C78C0028C5A2 /* LatestNewsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95613ADE264FC6FD00D4CE8F /* LatestNewsModel.swift */; };
-		95CF46B22688C9370028C5A2 /* StockCharts in Frameworks */ = {isa = PBXBuildFile; productRef = 95CF46B12688C9370028C5A2 /* StockCharts */; };
 		95CF46B72688F89B0028C5A2 /* WatchOSChartHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95CF46B62688F89B0028C5A2 /* WatchOSChartHelper.swift */; };
 		95CF46B92688F8A60028C5A2 /* WatchOSNewsList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95CF46B82688F8A60028C5A2 /* WatchOSNewsList.swift */; };
 		95CF46C32689165F0028C5A2 /* WatchOSNewsRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95CF46C22689165F0028C5A2 /* WatchOSNewsRow.swift */; };
@@ -130,6 +128,9 @@
 		95CF46DC2689C7930028C5A2 /* InsiderRosterModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95602703265ABB990046F97E /* InsiderRosterModel.swift */; };
 		95CF46DD2689C7960028C5A2 /* InsiderTransactionModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95CCFB55266E7A0F00C384A1 /* InsiderTransactionModel.swift */; };
 		95CF46DF2689D72E0028C5A2 /* ComplicationViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95CF46DE2689D72E0028C5A2 /* ComplicationViews.swift */; };
+		95CF46E22689E1790028C5A2 /* CloudKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95CF46E12689E1790028C5A2 /* CloudKit.framework */; };
+		95CF46EC2689F1B70028C5A2 /* StockCharts in Frameworks */ = {isa = PBXBuildFile; productRef = 95CF46EB2689F1B70028C5A2 /* StockCharts */; };
+		95CF46EE2689F1C00028C5A2 /* StockCharts in Frameworks */ = {isa = PBXBuildFile; productRef = 95CF46ED2689F1C00028C5A2 /* StockCharts */; };
 		95D308F82624B3A400A39F77 /* CurrencyItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95D308F72624B3A400A39F77 /* CurrencyItem.swift */; };
 		95E2DBF82673752F007FCCB4 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 95E2DBF72673752F007FCCB4 /* LaunchScreen.storyboard */; };
 		95E4A2D7268091F900A6FEB9 /* NewsHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95E4A2D6268091F900A6FEB9 /* NewsHelper.swift */; };
@@ -325,6 +326,8 @@
 		95CF46C22689165F0028C5A2 /* WatchOSNewsRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchOSNewsRow.swift; sourceTree = "<group>"; };
 		95CF46C5268919E40028C5A2 /* WatchOSNewsDetail.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchOSNewsDetail.swift; sourceTree = "<group>"; };
 		95CF46DE2689D72E0028C5A2 /* ComplicationViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComplicationViews.swift; sourceTree = "<group>"; };
+		95CF46E02689E1540028C5A2 /* LazyBearWatchOS Extension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "LazyBearWatchOS Extension.entitlements"; sourceTree = "<group>"; };
+		95CF46E12689E1790028C5A2 /* CloudKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CloudKit.framework; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS7.4.sdk/System/Library/Frameworks/CloudKit.framework; sourceTree = DEVELOPER_DIR; };
 		95D308F72624B3A400A39F77 /* CurrencyItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CurrencyItem.swift; sourceTree = "<group>"; };
 		95E2DBF72673752F007FCCB4 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
 		95E4A2D6268091F900A6FEB9 /* NewsHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewsHelper.swift; sourceTree = "<group>"; };
@@ -354,8 +357,9 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				95CF46B22688C9370028C5A2 /* StockCharts in Frameworks */,
+				95CF46E22689E1790028C5A2 /* CloudKit.framework in Frameworks */,
 				95BEA1AC268778E500BF18AB /* Alamofire in Frameworks */,
+				95CF46EE2689F1C00028C5A2 /* StockCharts in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -380,7 +384,7 @@
 				958A735225E0170900FD7ECA /* CloudKit.framework in Frameworks */,
 				95BEA1A626876DE100BF18AB /* Alamofire in Frameworks */,
 				950B6F3F267643640029E447 /* StoreKit.framework in Frameworks */,
-				95CF46A82688C60D0028C5A2 /* StockCharts in Frameworks */,
+				95CF46EC2689F1B70028C5A2 /* StockCharts in Frameworks */,
 				95A4B933263E9F810056F036 /* Introspect in Frameworks */,
 				950B6F3D267643460029E447 /* Purchases in Frameworks */,
 				954D7EC2260BE70C00A13C50 /* SwiftlySearch in Frameworks */,
@@ -466,6 +470,7 @@
 		952457E2267E339C00D5BBCB /* LazyBearWatchOS Extension */ = {
 			isa = PBXGroup;
 			children = (
+				95CF46E02689E1540028C5A2 /* LazyBearWatchOS Extension.entitlements */,
 				952457E3267E339C00D5BBCB /* LazyBearApp.swift */,
 				952457E5267E339C00D5BBCB /* ContentView.swift */,
 				952457E7267E339C00D5BBCB /* NotificationController.swift */,
@@ -640,6 +645,7 @@
 		958A735025E0170900FD7ECA /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
+				95CF46E12689E1790028C5A2 /* CloudKit.framework */,
 				950B6F3E267643640029E447 /* StoreKit.framework */,
 				958A735125E0170900FD7ECA /* CloudKit.framework */,
 			);
@@ -845,7 +851,7 @@
 			name = "LazyBearWatchOS Extension";
 			packageProductDependencies = (
 				95BEA1AB268778E500BF18AB /* Alamofire */,
-				95CF46B12688C9370028C5A2 /* StockCharts */,
+				95CF46ED2689F1C00028C5A2 /* StockCharts */,
 			);
 			productName = "LazyBearWatchOS Extension";
 			productReference = 952457DE267E339C00D5BBCB /* LazyBearWatchOS Extension.appex */;
@@ -907,7 +913,7 @@
 				95A4B932263E9F810056F036 /* Introspect */,
 				950B6F3C267643460029E447 /* Purchases */,
 				95BEA1A526876DE100BF18AB /* Alamofire */,
-				95CF46A72688C60D0028C5A2 /* StockCharts */,
+				95CF46EB2689F1B70028C5A2 /* StockCharts */,
 			);
 			productName = LazyBear;
 			productReference = 95672B8B25DDA54700DCBE4A /* LazyBear.app */;
@@ -963,7 +969,7 @@
 				95A4B931263E9F810056F036 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */,
 				950B6F3B267643460029E447 /* XCRemoteSwiftPackageReference "purchases-ios" */,
 				95BEA1A426876DE100BF18AB /* XCRemoteSwiftPackageReference "Alamofire" */,
-				95CF46A62688C60D0028C5A2 /* XCRemoteSwiftPackageReference "StockCharts" */,
+				95CF46EA2689F1B70028C5A2 /* XCRemoteSwiftPackageReference "StockCharts" */,
 			);
 			productRefGroup = 95672B8C25DDA54700DCBE4A /* Products */;
 			projectDirPath = "";
@@ -1357,6 +1363,7 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication;
+				CODE_SIGN_ENTITLEMENTS = "LazyBearWatchOS Extension/LazyBearWatchOS Extension.entitlements";
 				CODE_SIGN_STYLE = Automatic;
 				CURRENT_PROJECT_VERSION = 7;
 				DEVELOPMENT_ASSET_PATHS = "\"LazyBearWatchOS Extension/Preview Content\"";
@@ -1383,6 +1390,7 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication;
+				CODE_SIGN_ENTITLEMENTS = "LazyBearWatchOS Extension/LazyBearWatchOS Extension.entitlements";
 				CODE_SIGN_STYLE = Automatic;
 				CURRENT_PROJECT_VERSION = 7;
 				DEVELOPMENT_ASSET_PATHS = "\"LazyBearWatchOS Extension/Preview Content\"";
@@ -1771,12 +1779,12 @@
 				minimumVersion = 5.4.3;
 			};
 		};
-		95CF46A62688C60D0028C5A2 /* XCRemoteSwiftPackageReference "StockCharts" */ = {
+		95CF46EA2689F1B70028C5A2 /* XCRemoteSwiftPackageReference "StockCharts" */ = {
 			isa = XCRemoteSwiftPackageReference;
 			repositoryURL = "https://github.com/denniscm190/StockCharts.git";
 			requirement = {
 				kind = upToNextMajorVersion;
-				minimumVersion = 1.2.6;
+				minimumVersion = 1.2.7;
 			};
 		};
 /* End XCRemoteSwiftPackageReference section */
@@ -1807,14 +1815,14 @@
 			package = 95BEA1A426876DE100BF18AB /* XCRemoteSwiftPackageReference "Alamofire" */;
 			productName = Alamofire;
 		};
-		95CF46A72688C60D0028C5A2 /* StockCharts */ = {
+		95CF46EB2689F1B70028C5A2 /* StockCharts */ = {
 			isa = XCSwiftPackageProductDependency;
-			package = 95CF46A62688C60D0028C5A2 /* XCRemoteSwiftPackageReference "StockCharts" */;
+			package = 95CF46EA2689F1B70028C5A2 /* XCRemoteSwiftPackageReference "StockCharts" */;
 			productName = StockCharts;
 		};
-		95CF46B12688C9370028C5A2 /* StockCharts */ = {
+		95CF46ED2689F1C00028C5A2 /* StockCharts */ = {
 			isa = XCSwiftPackageProductDependency;
-			package = 95CF46A62688C60D0028C5A2 /* XCRemoteSwiftPackageReference "StockCharts" */;
+			package = 95CF46EA2689F1B70028C5A2 /* XCRemoteSwiftPackageReference "StockCharts" */;
 			productName = StockCharts;
 		};
 /* End XCSwiftPackageProductDependency section */
--- a/LazyBear.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBear.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved	Mon Jun 28 14:03:50 2021 +0200
@@ -24,8 +24,8 @@
         "repositoryURL": "https://github.com/denniscm190/StockCharts.git",
         "state": {
           "branch": null,
-          "revision": "938387ae5b7675115e99e1be202e024df8253791",
-          "version": "1.2.6"
+          "revision": "12caeb879e4a02b458d63e0740b42999b5230b91",
+          "version": "1.2.7"
         }
       },
       {
Binary file LazyBear.xcodeproj/project.xcworkspace/xcuserdata/dennis.xcuserdatad/UserInterfaceState.xcuserstate has changed
--- a/LazyBear/ContentView.swift	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBear/ContentView.swift	Mon Jun 28 14:03:50 2021 +0200
@@ -48,25 +48,25 @@
      3) Prepare haptics
      */
     private func onAppear() {
-        // Create watchlist
-        if watchlistCompanies.isEmpty {
-            let defaultCompanies: [DefaultCompanyModel] = parseJSON("DefaultCompanies.json")
-            for defaultCompany in defaultCompanies {
-                let watchlistCompany = WatchlistCompany(context: moc)
-                watchlistCompany.name = defaultCompany.name
-                watchlistCompany.symbol = defaultCompany.symbol
-                watchlistCompany.watchlistName = "Default watchlist"
-            }
-            
-            do {
-                try moc.save()
-                print("Default watchlist created")
-            } catch {
-                print(error.localizedDescription)
-            }
-        }
+        // MARK: - Create Watchlist
+//        if watchlistCompanies.isEmpty {
+//            let defaultCompanies: [DefaultCompanyModel] = parseJSON("DefaultCompanies.json")
+//            for defaultCompany in defaultCompanies {
+//                let watchlistCompany = WatchlistCompany(context: moc)
+//                watchlistCompany.name = defaultCompany.name
+//                watchlistCompany.symbol = defaultCompany.symbol
+//                watchlistCompany.watchlistName = "Default watchlist"
+//            }
+//
+//            do {
+//                try moc.save()
+//                print("Default watchlist created")
+//            } catch {
+//                print(error.localizedDescription)
+//            }
+//        }
         
-        // Show WelcomeView if is the first time that the app is opened
+        // MARK: - Show WelcomeView if is the first time that the app is opened
 //        let defaults = UserDefaults.standard
 //
 //        if let isAppAlreadyLaunchedOnce = defaults.string(forKey: "IsAppAlreadyLaunchedOnce") {
@@ -74,7 +74,7 @@
 //            self.showWelcome = true
 //        }
         
-        // Prepare haptics
+        // MARK: - Prepare Haptics
 //        hapticsManager.prepareHaptics()
     }
 }
--- a/LazyBear/Global Models/InsiderRosterModel.swift	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBear/Global Models/InsiderRosterModel.swift	Mon Jun 28 14:03:50 2021 +0200
@@ -9,6 +9,6 @@
 
 struct InsiderRosterModel: Codable, Hashable {
     var entityName: String
-    var position: Int?
-    var reportDate: Int
+    var position: Float?
+    var reportDate: Int64
 }
--- a/LazyBear/Global Models/InsiderTransactionModel.swift	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBear/Global Models/InsiderTransactionModel.swift	Mon Jun 28 14:03:50 2021 +0200
@@ -14,6 +14,6 @@
     var reportedTitle: String?
     var transactionCode: String
     var transactionPrice: Float?
-    var transactionShares: Int?
+    var transactionShares: Float?
     var transactionValue: Float?
 }
--- a/LazyBear/Global Models/KeyStatsModel.swift	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBear/Global Models/KeyStatsModel.swift	Mon Jun 28 14:03:50 2021 +0200
@@ -9,39 +9,39 @@
 
 struct KeyStatsModel: Codable {
     var companyName: String?
-    var employees: Int?
-    var marketcap: Int?
-    var float: Int?
-    var sharesOutstanding: Int?
+    var employees: Float?
+    var marketcap: Float?
+    var float: Float?
+    var sharesOutstanding: Float?
     
-    var beta: Double?
-    var peRatio: Double?
-    var dividendYield: Double?
-    var ttmDividendRate: Double?
-    var ttmEPS: Double?
+    var beta: Float?
+    var peRatio: Float?
+    var dividendYield: Float?
+    var ttmDividendRate: Float?
+    var ttmEPS: Float?
     
-    var avg10Volume: Int?
-    var avg30Volume: Int?
+    var avg10Volume: Float?
+    var avg30Volume: Float?
 
-    var day50MovingAvg: Double?
-    var day200MovingAvg: Double?
+    var day50MovingAvg: Float?
+    var day200MovingAvg: Float?
     
-    var week52Change: Double?
-    var week52High: Double?
-    var week52Low: Double?
-    var week52HighSplitAdjustOnly: Double?
-    var week52LowSplitAdjustOnly: Double?
+    var week52Change: Float?
+    var week52High: Float?
+    var week52Low: Float?
+    var week52HighSplitAdjustOnly: Float?
+    var week52LowSplitAdjustOnly: Float?
     
-    var maxChangePercent: Double?
-    var ytdChangePercent: Double?
-    var day5ChangePercent: Double?
-    var day30ChangePercent: Double?
-    var month1ChangePercent: Double?
-    var month3ChangePercent: Double?
-    var month6ChangePercent: Double?
-    var year1ChangePercent: Double?
-    var year2ChangePercent: Double?
-    var year5ChangePercent: Double?
+    var maxChangePercent: Float?
+    var ytdChangePercent: Float?
+    var day5ChangePercent: Float?
+    var day30ChangePercent: Float?
+    var month1ChangePercent: Float?
+    var month3ChangePercent: Float?
+    var month6ChangePercent: Float?
+    var year1ChangePercent: Float?
+    var year2ChangePercent: Float?
+    var year5ChangePercent: Float?
     
     var exDividendDate: String?
     var nextDividendDate: String?
--- a/LazyBear/Global Models/LatestNewsModel.swift	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBear/Global Models/LatestNewsModel.swift	Mon Jun 28 14:03:50 2021 +0200
@@ -8,7 +8,7 @@
 import SwiftUI
 
 struct LatestNewsModel: Codable, Hashable {
-    var datetime: Int
+    var datetime: Int64
     var headline: String
     var image: String
     var source: String
--- a/LazyBear/Global functions/ConvertEpoch.swift	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBear/Global functions/ConvertEpoch.swift	Mon Jun 28 14:03:50 2021 +0200
@@ -10,7 +10,7 @@
 /*
  Convert Epoch time (in miliseconds) to human readable date
  */
-func convertEpoch(_ miliseconds: Int, _ interval: Bool) -> String {
+func convertEpoch(_ miliseconds: Int64, _ interval: Bool) -> String {
     let now = Date() // Current date
     
     // TimeInterval() function must be in seconds, not in miliseconds
--- a/LazyBear/Views/Company/Helpers/InsiderRosterHelper.swift	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBear/Views/Company/Helpers/InsiderRosterHelper.swift	Mon Jun 28 14:03:50 2021 +0200
@@ -22,7 +22,7 @@
                                 .navigationTitle("Top Insiders")
                 ) {
                     Text("See all")
-                        .accentColor(Color(.systemBlue))
+                        .accentColor(Color.blue)
                 }
             }
             .padding(.bottom)
--- a/LazyBear/Views/Company/Helpers/InsiderTransactionsHelper.swift	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBear/Views/Company/Helpers/InsiderTransactionsHelper.swift	Mon Jun 28 14:03:50 2021 +0200
@@ -24,7 +24,7 @@
                                 .navigationBarTitleDisplayMode(.large)
                 ) {
                     Text("See all")
-                        .accentColor(Color(.systemBlue))
+                        .accentColor(Color.blue)
                 }
             }
             .padding(.bottom)
--- a/LazyBear/Views/Company/Helpers/InsiderTransactionsRow.swift	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBear/Views/Company/Helpers/InsiderTransactionsRow.swift	Mon Jun 28 14:03:50 2021 +0200
@@ -20,7 +20,7 @@
                 Text(getDateComponents(.day, date))
                     .font(.title)
                     .fontWeight(.semibold)
-                    .foregroundColor(Color(.systemBlue))
+                    .foregroundColor(Color.blue)
                 
                 Text(getDateComponents(.year, date))
                     .font(.caption)
@@ -42,7 +42,7 @@
             if let transactionShares = insiderTransaction.transactionShares {
                 VStack(alignment: .trailing) {
                     Text("\(transactionShares)")
-                        .foregroundColor(transactionShares < 0 ? Color(.systemRed): Color(.systemGreen))
+                        .foregroundColor(transactionShares < 0 ? Color.red: Color.green)
                 }
                 .padding(.leading)
             }
--- a/LazyBear/Views/Company/Helpers/NewsHelper.swift	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBear/Views/Company/Helpers/NewsHelper.swift	Mon Jun 28 14:03:50 2021 +0200
@@ -23,7 +23,7 @@
                                 .navigationTitle("Latest news")
                 ) {
                     Text("See all")
-                        .accentColor(Color(.systemBlue))
+                        .accentColor(Color.blue)
                 }
             }
             .padding(.bottom)
--- a/LazyBear/Views/Home/Helpers/CurrencyItem.swift	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBear/Views/Home/Helpers/CurrencyItem.swift	Mon Jun 28 14:03:50 2021 +0200
@@ -20,7 +20,7 @@
             .frame(width: 330, height: 50)
             .overlay(
                 HStack {
-                    Color(.systemBlue)
+                    Color.blue
                         .frame(width: 40)
                         .overlay(
                             Text(currency.flag)
--- a/LazyBear/Views/Home/Helpers/TradingDatesItem.swift	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBear/Views/Home/Helpers/TradingDatesItem.swift	Mon Jun 28 14:03:50 2021 +0200
@@ -23,7 +23,7 @@
                     Text(getDateComponents(.day, date))
                         .font(.title)
                         .fontWeight(.semibold)
-                        .foregroundColor(Color(.systemBlue))
+                        .foregroundColor(Color(.blue))
                     
                     Text(getDateComponents(.year, date))
                         .font(.caption)
--- a/LazyBear/Views/Profile/Helpers/WatchlistCreatorRow.swift	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBear/Views/Profile/Helpers/WatchlistCreatorRow.swift	Mon Jun 28 14:03:50 2021 +0200
@@ -29,7 +29,7 @@
                 Spacer()
                 Image(systemName: "plus.circle")
                     .imageScale(.large)
-                    .foregroundColor(Color(.systemBlue))
+                    .foregroundColor(Color.blue)
             }
             .contentShape(Rectangle())
         }
--- a/LazyBear/Views/Search/Helpers/SearchedCompanyItem.swift	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBear/Views/Search/Helpers/SearchedCompanyItem.swift	Mon Jun 28 14:03:50 2021 +0200
@@ -22,11 +22,11 @@
                 let watchlistSymbols = watchlistCompanies.map { $0.symbol }
                 if watchlistSymbols.contains(company.symbol!) {
                     Image(systemName: "star.fill")
-                        .foregroundColor(.yellow)
+                        .foregroundColor(Color.yellow)
                         .imageScale(.large)
                 } else {
                     Image(systemName: "star")
-                        .foregroundColor(.yellow)
+                        .foregroundColor(Color.yellow)
                         .imageScale(.large)
                 }
             }
--- a/LazyBearWatchOS Extension/ContentView.swift	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBearWatchOS Extension/ContentView.swift	Mon Jun 28 14:03:50 2021 +0200
@@ -9,10 +9,12 @@
 
 struct ContentView: View {
     var body: some View {
-        VStack {
-            WatchOSProfileView()
+        NavigationView {
+            VStack {
+                WatchOSProfileView()
+            }
+            .navigationTitle("Lazybear")
         }
-        .navigationTitle("Lazybear")
     }
 }
 
--- a/LazyBearWatchOS Extension/Info.plist	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBearWatchOS Extension/Info.plist	Mon Jun 28 14:03:50 2021 +0200
@@ -32,5 +32,9 @@
 		<key>NSExtensionPointIdentifier</key>
 		<string>com.apple.watchkit</string>
 	</dict>
+	<key>UIBackgroundModes</key>
+	<array>
+		<string>remote-notification</string>
+	</array>
 </dict>
 </plist>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LazyBearWatchOS Extension/LazyBearWatchOS Extension.entitlements	Mon Jun 28 14:03:50 2021 +0200
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>aps-environment</key>
+	<string>development</string>
+	<key>com.apple.developer.icloud-container-identifiers</key>
+	<array>
+		<string>iCloud.app.lazybear</string>
+	</array>
+	<key>com.apple.developer.icloud-services</key>
+	<array>
+		<string>CloudKit</string>
+	</array>
+</dict>
+</plist>
--- a/LazyBearWatchOS Extension/Views/Helpers/WatchOSNewsDetail.swift	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBearWatchOS Extension/Views/Helpers/WatchOSNewsDetail.swift	Mon Jun 28 14:03:50 2021 +0200
@@ -32,7 +32,7 @@
     static var previews: some View {
         WatchOSNewsDetail(
             new: LatestNewsModel(
-                    datetime: 1621037430000,
+                    datetime: 16210374,
                     headline: "Chaos Monkeys' author calls Apple's statement on his departure defamatory",
                     image: "https://cloud.iexapis.com/v1/news/image/99abeb99-6d9e-47c8-ae7b-53404eacccec",
                     source: "Investing.com",
--- a/LazyBearWatchOS Extension/Views/Helpers/WatchOSNewsList.swift	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBearWatchOS Extension/Views/Helpers/WatchOSNewsList.swift	Mon Jun 28 14:03:50 2021 +0200
@@ -32,7 +32,7 @@
         WatchOSNewsList(
             latestNews: [
                 LatestNewsModel(
-                    datetime: 1621037430000,
+                    datetime: 1621037,
                     headline: "Chaos Monkeys' author calls Apple's statement on his departure defamatory",
                     image: "https://cloud.iexapis.com/v1/news/image/99abeb99-6d9e-47c8-ae7b-53404eacccec",
                     source: "Investing.com",
--- a/LazyBearWatchOS Extension/Views/Helpers/WatchOSNewsRow.swift	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBearWatchOS Extension/Views/Helpers/WatchOSNewsRow.swift	Mon Jun 28 14:03:50 2021 +0200
@@ -31,7 +31,7 @@
     static var previews: some View {
         WatchOSNewsRow(
             new: LatestNewsModel(
-                    datetime: 1621037430000,
+                    datetime: 1621037,
                     headline: "Chaos Monkeys' author calls Apple's statement on his departure defamatory",
                     image: "https://cloud.iexapis.com/v1/news/image/99abeb99-6d9e-47c8-ae7b-53404eacccec",
                     source: "Investing.com",
--- a/LazyBearWatchOS Extension/Views/WatchOSProfileView.swift	Mon Jun 28 12:51:06 2021 +0200
+++ b/LazyBearWatchOS Extension/Views/WatchOSProfileView.swift	Mon Jun 28 14:03:50 2021 +0200
@@ -15,17 +15,16 @@
     
     var body: some View {
         if profile.showView {
-            NavigationView {
-                ScrollView {
-                    VStack {
-                        if let companies = profile.data.quotes {
-                            ForEach(companies, id: \.self) { company in
-                                NavigationLink(destination: WatchOSCompanyView(symbol: company.symbol)
-                                                .navigationTitle(company.companyName.capitalized)
-                                ) {
-                                    WatchOSCompanyRow(company: company)
-                                }
+            ScrollView {
+                VStack {
+                    if let companies = profile.data.quotes {
+                        ForEach(companies, id: \.self) { company in
+                            NavigationLink(destination: WatchOSCompanyView(symbol: company.symbol)
+                                            .navigationTitle(company.companyName.capitalized)
+                            ) {
+                                WatchOSCompanyRow(company: company)
                             }
+                            .buttonStyle(PlainButtonStyle())
                         }
                     }
                 }
@@ -50,7 +49,6 @@
         switch requestType {
         case .initial:
             let url = "https://api.lazybear.app/profile/type=initial/symbols=\(symbolsString)"
-            print(watchlistCompanies)
             profile.request(url, .initial)
             
         default: