From 96250e01c31addb9103c92cb107d7822418428b0 Mon Sep 17 00:00:00 2001 From: neon443 <69979447+neon443@users.noreply.github.com> Date: Fri, 3 Jan 2025 21:12:44 +0000 Subject: [PATCH] forgot to commit 2.0, but just finished 3.0 3.0: home screen widgets small,med,large they auto refresh! major bug fixes inclluding past date handling past dates are now allowed 2.0: icloud sync ios required is 15, down from 18! auto icloud sync added icloud settings to manually push,pull or sync --- NearFuture.xcodeproj/project.pbxproj | 345 +++++++------- NearFuture/AddEventView.swift | 131 +++--- .../AccentColor.colorset/Contents.json | 9 + .../AppIcon.appiconset/Contents.json | 1 + ...e-image-93204189-1533148569-2899733190.jpg | Bin 0 -> 222852 bytes NearFuture/ContentView.swift | 90 ++-- NearFuture/EditEventView.swift | 89 ++++ NearFuture/Item.swift | 425 +++++++++++------- NearFuture/NearFuture.entitlements | 8 +- NearFuture/NearFutureApp.swift | 26 +- .../NearFutureWidgets/AppIntent.swift | 18 + .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 13 + .../Assets.xcassets/Contents.json | 6 + .../WidgetBackground.colorset/Contents.json | 11 + .../NearFutureWidgets/Info.plist | 11 + .../NearFutureWidgets/NearFutureWidgets.swift | 84 ++++ .../NearFutureWidgetsBundle.swift | 17 + .../NearFutureWidgetsLiveActivity.swift | 80 ++++ NearFuture/SettingsView.swift | 225 +++++++++- NearFutureTests/NearFutureTests.swift | 35 -- NearFutureUITests/NearFutureUITests.swift | 41 -- .../NearFutureUITestsLaunchTests.swift | 32 -- .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 13 + .../Assets.xcassets/Contents.json | 6 + .../WidgetBackground.colorset/Contents.json | 20 + NearFutureWidgets/Info.plist | 11 + NearFutureWidgets/NearFutureWidgets.swift | 208 +++++++++ .../NearFutureWidgetsBundle.swift | 31 ++ .../NearFutureWidgetsExtension.entitlements | 10 + .../NearFutureWidgetsLiveActivity.swift | 80 ++++ README.md | 4 +- 33 files changed, 1526 insertions(+), 576 deletions(-) create mode 100644 NearFuture/Assets.xcassets/AppIcon.appiconset/telescope-pointed-at-the-milky-way-galaxy-royalty-free-image-93204189-1533148569-2899733190.jpg create mode 100644 NearFuture/EditEventView.swift create mode 100644 NearFuture/Preview Content/NearFutureWidgets/AppIntent.swift create mode 100644 NearFuture/Preview Content/NearFutureWidgets/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 NearFuture/Preview Content/NearFutureWidgets/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 NearFuture/Preview Content/NearFutureWidgets/Assets.xcassets/Contents.json create mode 100644 NearFuture/Preview Content/NearFutureWidgets/Assets.xcassets/WidgetBackground.colorset/Contents.json create mode 100644 NearFuture/Preview Content/NearFutureWidgets/Info.plist create mode 100644 NearFuture/Preview Content/NearFutureWidgets/NearFutureWidgets.swift create mode 100644 NearFuture/Preview Content/NearFutureWidgets/NearFutureWidgetsBundle.swift create mode 100644 NearFuture/Preview Content/NearFutureWidgets/NearFutureWidgetsLiveActivity.swift delete mode 100644 NearFutureTests/NearFutureTests.swift delete mode 100644 NearFutureUITests/NearFutureUITests.swift delete mode 100644 NearFutureUITests/NearFutureUITestsLaunchTests.swift create mode 100644 NearFutureWidgets/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 NearFutureWidgets/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 NearFutureWidgets/Assets.xcassets/Contents.json create mode 100644 NearFutureWidgets/Assets.xcassets/WidgetBackground.colorset/Contents.json create mode 100644 NearFutureWidgets/Info.plist create mode 100644 NearFutureWidgets/NearFutureWidgets.swift create mode 100644 NearFutureWidgets/NearFutureWidgetsBundle.swift create mode 100644 NearFutureWidgets/NearFutureWidgetsExtension.entitlements create mode 100644 NearFutureWidgets/NearFutureWidgetsLiveActivity.swift diff --git a/NearFuture.xcodeproj/project.pbxproj b/NearFuture.xcodeproj/project.pbxproj index 36f44a1..8d55a3b 100644 --- a/NearFuture.xcodeproj/project.pbxproj +++ b/NearFuture.xcodeproj/project.pbxproj @@ -11,32 +11,45 @@ A920C28C2D24011400E4F9B1 /* Item.swift in Sources */ = {isa = PBXBuildFile; fileRef = A920C28B2D24011400E4F9B1 /* Item.swift */; }; A920C28E2D24011A00E4F9B1 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A920C28D2D24011A00E4F9B1 /* Assets.xcassets */; }; A920C2922D24011A00E4F9B1 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A920C2912D24011A00E4F9B1 /* Preview Assets.xcassets */; }; - A920C29C2D24011A00E4F9B1 /* NearFutureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A920C29B2D24011A00E4F9B1 /* NearFutureTests.swift */; }; - A920C2A62D24011B00E4F9B1 /* NearFutureUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A920C2A52D24011B00E4F9B1 /* NearFutureUITests.swift */; }; - A920C2A82D24011B00E4F9B1 /* NearFutureUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A920C2A72D24011B00E4F9B1 /* NearFutureUITestsLaunchTests.swift */; }; A920C2B82D2401A300E4F9B1 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A920C2B42D2401A100E4F9B1 /* SettingsView.swift */; }; A920C2BB2D2401A400E4F9B1 /* AddEventView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A920C2B72D2401A300E4F9B1 /* AddEventView.swift */; }; A920C2BE2D24021A00E4F9B1 /* SFSymbolsPicker in Frameworks */ = {isa = PBXBuildFile; productRef = A920C2BD2D24021A00E4F9B1 /* SFSymbolsPicker */; }; A920C2C12D2403CA00E4F9B1 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A920C2C02D2403CA00E4F9B1 /* ContentView.swift */; }; + A979F57F2D26B1300094C0B3 /* EditEventView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A979F57E2D26B1300094C0B3 /* EditEventView.swift */; }; + A979F6052D270AF00094C0B3 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A979F6042D270AF00094C0B3 /* WidgetKit.framework */; }; + A979F6072D270AF00094C0B3 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A979F6062D270AF00094C0B3 /* SwiftUI.framework */; }; + A979F60A2D270AF00094C0B3 /* NearFutureWidgetsBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = A979F6092D270AF00094C0B3 /* NearFutureWidgetsBundle.swift */; }; + A979F60C2D270AF00094C0B3 /* NearFutureWidgetsLiveActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = A979F60B2D270AF00094C0B3 /* NearFutureWidgetsLiveActivity.swift */; }; + A979F6102D270AF90094C0B3 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A979F60F2D270AF80094C0B3 /* Assets.xcassets */; }; + A979F6142D270AF90094C0B3 /* NearFutureWidgetsExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = A979F6022D270AF00094C0B3 /* NearFutureWidgetsExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + A979F6182D2714310094C0B3 /* Item.swift in Sources */ = {isa = PBXBuildFile; fileRef = A920C28B2D24011400E4F9B1 /* Item.swift */; }; + A9FC7EEA2D2823920020D75B /* NearFutureWidgets.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9FC7EE92D28238A0020D75B /* NearFutureWidgets.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - A920C2982D24011A00E4F9B1 /* PBXContainerItemProxy */ = { + A979F6122D270AF90094C0B3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = A920C27C2D24011300E4F9B1 /* Project object */; proxyType = 1; - remoteGlobalIDString = A920C2832D24011300E4F9B1; - remoteInfo = NearFuture; - }; - A920C2A22D24011B00E4F9B1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A920C27C2D24011300E4F9B1 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A920C2832D24011300E4F9B1; - remoteInfo = NearFuture; + remoteGlobalIDString = A979F6012D270AF00094C0B3; + remoteInfo = NearFutureWidgetsExtension; }; /* End PBXContainerItemProxy section */ +/* Begin PBXCopyFilesBuildPhase section */ + A979F59C2D27006D0094C0B3 /* Embed Foundation Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + A979F6142D270AF90094C0B3 /* NearFutureWidgetsExtension.appex in Embed Foundation Extensions */, + ); + name = "Embed Foundation Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ A920C2842D24011400E4F9B1 /* NearFuture.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NearFuture.app; sourceTree = BUILT_PRODUCTS_DIR; }; A920C2872D24011400E4F9B1 /* NearFutureApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NearFutureApp.swift; sourceTree = ""; }; @@ -44,14 +57,25 @@ A920C28D2D24011A00E4F9B1 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; A920C28F2D24011A00E4F9B1 /* NearFuture.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = NearFuture.entitlements; sourceTree = ""; }; A920C2912D24011A00E4F9B1 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; - A920C2972D24011A00E4F9B1 /* NearFutureTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NearFutureTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - A920C29B2D24011A00E4F9B1 /* NearFutureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NearFutureTests.swift; sourceTree = ""; }; - A920C2A12D24011B00E4F9B1 /* NearFutureUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NearFutureUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - A920C2A52D24011B00E4F9B1 /* NearFutureUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NearFutureUITests.swift; sourceTree = ""; }; - A920C2A72D24011B00E4F9B1 /* NearFutureUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NearFutureUITestsLaunchTests.swift; sourceTree = ""; }; A920C2B42D2401A100E4F9B1 /* SettingsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; A920C2B72D2401A300E4F9B1 /* AddEventView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddEventView.swift; sourceTree = ""; }; A920C2C02D2403CA00E4F9B1 /* ContentView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + A979F57E2D26B1300094C0B3 /* EditEventView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditEventView.swift; sourceTree = ""; }; + A979F58B2D2700680094C0B3 /* NearFutureWidgetsBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NearFutureWidgetsBundle.swift; sourceTree = ""; }; + A979F58D2D2700680094C0B3 /* NearFutureWidgetsLiveActivity.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NearFutureWidgetsLiveActivity.swift; sourceTree = ""; }; + A979F58F2D2700680094C0B3 /* NearFutureWidgets.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NearFutureWidgets.swift; sourceTree = ""; }; + A979F5912D2700680094C0B3 /* AppIntent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppIntent.swift; sourceTree = ""; }; + A979F5932D27006D0094C0B3 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + A979F5952D27006D0094C0B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A979F6022D270AF00094C0B3 /* NearFutureWidgetsExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = NearFutureWidgetsExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + A979F6042D270AF00094C0B3 /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; }; + A979F6062D270AF00094C0B3 /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; }; + A979F6092D270AF00094C0B3 /* NearFutureWidgetsBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NearFutureWidgetsBundle.swift; sourceTree = ""; }; + A979F60B2D270AF00094C0B3 /* NearFutureWidgetsLiveActivity.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NearFutureWidgetsLiveActivity.swift; sourceTree = ""; }; + A979F60F2D270AF80094C0B3 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + A979F6112D270AF90094C0B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A9C05E412D2805D7007DC497 /* NearFutureWidgetsExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = NearFutureWidgetsExtension.entitlements; sourceTree = ""; }; + A9FC7EE92D28238A0020D75B /* NearFutureWidgets.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NearFutureWidgets.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -63,17 +87,12 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - A920C2942D24011A00E4F9B1 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A920C29E2D24011B00E4F9B1 /* Frameworks */ = { + A979F5FF2D270AF00094C0B3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + A979F6072D270AF00094C0B3 /* SwiftUI.framework in Frameworks */, + A979F6052D270AF00094C0B3 /* WidgetKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -84,8 +103,8 @@ isa = PBXGroup; children = ( A920C2862D24011400E4F9B1 /* NearFuture */, - A920C29A2D24011A00E4F9B1 /* NearFutureTests */, - A920C2A42D24011B00E4F9B1 /* NearFutureUITests */, + A979F6082D270AF00094C0B3 /* NearFutureWidgets */, + A979F6032D270AF00094C0B3 /* Frameworks */, A920C2852D24011400E4F9B1 /* Products */, ); sourceTree = ""; @@ -94,8 +113,7 @@ isa = PBXGroup; children = ( A920C2842D24011400E4F9B1 /* NearFuture.app */, - A920C2972D24011A00E4F9B1 /* NearFutureTests.xctest */, - A920C2A12D24011B00E4F9B1 /* NearFutureUITests.xctest */, + A979F6022D270AF00094C0B3 /* NearFutureWidgetsExtension.appex */, ); name = Products; sourceTree = ""; @@ -103,6 +121,7 @@ A920C2862D24011400E4F9B1 /* NearFuture */ = { isa = PBXGroup; children = ( + A979F57E2D26B1300094C0B3 /* EditEventView.swift */, A920C2B72D2401A300E4F9B1 /* AddEventView.swift */, A920C2C02D2403CA00E4F9B1 /* ContentView.swift */, A920C2B42D2401A100E4F9B1 /* SettingsView.swift */, @@ -118,26 +137,45 @@ A920C2902D24011A00E4F9B1 /* Preview Content */ = { isa = PBXGroup; children = ( + A979F58A2D2700680094C0B3 /* NearFutureWidgets */, A920C2912D24011A00E4F9B1 /* Preview Assets.xcassets */, ); path = "Preview Content"; sourceTree = ""; }; - A920C29A2D24011A00E4F9B1 /* NearFutureTests */ = { + A979F58A2D2700680094C0B3 /* NearFutureWidgets */ = { isa = PBXGroup; children = ( - A920C29B2D24011A00E4F9B1 /* NearFutureTests.swift */, + A979F58B2D2700680094C0B3 /* NearFutureWidgetsBundle.swift */, + A979F58D2D2700680094C0B3 /* NearFutureWidgetsLiveActivity.swift */, + A979F58F2D2700680094C0B3 /* NearFutureWidgets.swift */, + A979F5912D2700680094C0B3 /* AppIntent.swift */, + A979F5932D27006D0094C0B3 /* Assets.xcassets */, + A979F5952D27006D0094C0B3 /* Info.plist */, ); - path = NearFutureTests; + path = NearFutureWidgets; sourceTree = ""; }; - A920C2A42D24011B00E4F9B1 /* NearFutureUITests */ = { + A979F6032D270AF00094C0B3 /* Frameworks */ = { isa = PBXGroup; children = ( - A920C2A52D24011B00E4F9B1 /* NearFutureUITests.swift */, - A920C2A72D24011B00E4F9B1 /* NearFutureUITestsLaunchTests.swift */, + A979F6042D270AF00094C0B3 /* WidgetKit.framework */, + A979F6062D270AF00094C0B3 /* SwiftUI.framework */, ); - path = NearFutureUITests; + name = Frameworks; + sourceTree = ""; + }; + A979F6082D270AF00094C0B3 /* NearFutureWidgets */ = { + isa = PBXGroup; + children = ( + A9FC7EE92D28238A0020D75B /* NearFutureWidgets.swift */, + A979F6092D270AF00094C0B3 /* NearFutureWidgetsBundle.swift */, + A979F60B2D270AF00094C0B3 /* NearFutureWidgetsLiveActivity.swift */, + A979F60F2D270AF80094C0B3 /* Assets.xcassets */, + A979F6112D270AF90094C0B3 /* Info.plist */, + A9C05E412D2805D7007DC497 /* NearFutureWidgetsExtension.entitlements */, + ); + path = NearFutureWidgets; sourceTree = ""; }; /* End PBXGroup section */ @@ -150,10 +188,12 @@ A920C2802D24011300E4F9B1 /* Sources */, A920C2812D24011300E4F9B1 /* Frameworks */, A920C2822D24011300E4F9B1 /* Resources */, + A979F59C2D27006D0094C0B3 /* Embed Foundation Extensions */, ); buildRules = ( ); dependencies = ( + A979F6132D270AF90094C0B3 /* PBXTargetDependency */, ); name = NearFuture; packageProductDependencies = ( @@ -163,41 +203,22 @@ productReference = A920C2842D24011400E4F9B1 /* NearFuture.app */; productType = "com.apple.product-type.application"; }; - A920C2962D24011A00E4F9B1 /* NearFutureTests */ = { + A979F6012D270AF00094C0B3 /* NearFutureWidgetsExtension */ = { isa = PBXNativeTarget; - buildConfigurationList = A920C2AE2D24011B00E4F9B1 /* Build configuration list for PBXNativeTarget "NearFutureTests" */; + buildConfigurationList = A979F6152D270AF90094C0B3 /* Build configuration list for PBXNativeTarget "NearFutureWidgetsExtension" */; buildPhases = ( - A920C2932D24011A00E4F9B1 /* Sources */, - A920C2942D24011A00E4F9B1 /* Frameworks */, - A920C2952D24011A00E4F9B1 /* Resources */, + A979F5FE2D270AF00094C0B3 /* Sources */, + A979F5FF2D270AF00094C0B3 /* Frameworks */, + A979F6002D270AF00094C0B3 /* Resources */, ); buildRules = ( ); dependencies = ( - A920C2992D24011A00E4F9B1 /* PBXTargetDependency */, ); - name = NearFutureTests; - productName = NearFutureTests; - productReference = A920C2972D24011A00E4F9B1 /* NearFutureTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - A920C2A02D24011B00E4F9B1 /* NearFutureUITests */ = { - isa = PBXNativeTarget; - buildConfigurationList = A920C2B12D24011B00E4F9B1 /* Build configuration list for PBXNativeTarget "NearFutureUITests" */; - buildPhases = ( - A920C29D2D24011B00E4F9B1 /* Sources */, - A920C29E2D24011B00E4F9B1 /* Frameworks */, - A920C29F2D24011B00E4F9B1 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - A920C2A32D24011B00E4F9B1 /* PBXTargetDependency */, - ); - name = NearFutureUITests; - productName = NearFutureUITests; - productReference = A920C2A12D24011B00E4F9B1 /* NearFutureUITests.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; + name = NearFutureWidgetsExtension; + productName = NearFutureWidgetsExtension; + productReference = A979F6022D270AF00094C0B3 /* NearFutureWidgetsExtension.appex */; + productType = "com.apple.product-type.app-extension"; }; /* End PBXNativeTarget section */ @@ -212,13 +233,8 @@ A920C2832D24011300E4F9B1 = { CreatedOnToolsVersion = 15.4; }; - A920C2962D24011A00E4F9B1 = { + A979F6012D270AF00094C0B3 = { CreatedOnToolsVersion = 15.4; - TestTargetID = A920C2832D24011300E4F9B1; - }; - A920C2A02D24011B00E4F9B1 = { - CreatedOnToolsVersion = 15.4; - TestTargetID = A920C2832D24011300E4F9B1; }; }; }; @@ -239,8 +255,7 @@ projectRoot = ""; targets = ( A920C2832D24011300E4F9B1 /* NearFuture */, - A920C2962D24011A00E4F9B1 /* NearFutureTests */, - A920C2A02D24011B00E4F9B1 /* NearFutureUITests */, + A979F6012D270AF00094C0B3 /* NearFutureWidgetsExtension */, ); }; /* End PBXProject section */ @@ -255,17 +270,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - A920C2952D24011A00E4F9B1 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A920C29F2D24011B00E4F9B1 /* Resources */ = { + A979F6002D270AF00094C0B3 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + A979F6102D270AF90094C0B3 /* Assets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -281,38 +290,28 @@ A920C2B82D2401A300E4F9B1 /* SettingsView.swift in Sources */, A920C28C2D24011400E4F9B1 /* Item.swift in Sources */, A920C2882D24011400E4F9B1 /* NearFutureApp.swift in Sources */, + A979F57F2D26B1300094C0B3 /* EditEventView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - A920C2932D24011A00E4F9B1 /* Sources */ = { + A979F5FE2D270AF00094C0B3 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A920C29C2D24011A00E4F9B1 /* NearFutureTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A920C29D2D24011B00E4F9B1 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A920C2A62D24011B00E4F9B1 /* NearFutureUITests.swift in Sources */, - A920C2A82D24011B00E4F9B1 /* NearFutureUITestsLaunchTests.swift in Sources */, + A979F6182D2714310094C0B3 /* Item.swift in Sources */, + A979F60A2D270AF00094C0B3 /* NearFutureWidgetsBundle.swift in Sources */, + A9FC7EEA2D2823920020D75B /* NearFutureWidgets.swift in Sources */, + A979F60C2D270AF00094C0B3 /* NearFutureWidgetsLiveActivity.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - A920C2992D24011A00E4F9B1 /* PBXTargetDependency */ = { + A979F6132D270AF90094C0B3 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = A920C2832D24011300E4F9B1 /* NearFuture */; - targetProxy = A920C2982D24011A00E4F9B1 /* PBXContainerItemProxy */; - }; - A920C2A32D24011B00E4F9B1 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A920C2832D24011300E4F9B1 /* NearFuture */; - targetProxy = A920C2A22D24011B00E4F9B1 /* PBXContainerItemProxy */; + target = A979F6012D270AF00094C0B3 /* NearFutureWidgetsExtension */; + targetProxy = A979F6122D270AF90094C0B3 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -434,16 +433,18 @@ A920C2AC2D24011B00E4F9B1 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = NearFuture/NearFuture.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 11; DEVELOPMENT_ASSET_PATHS = "\"NearFuture/Preview Content\""; DEVELOPMENT_TEAM = P6PV2R9443; - ENABLE_HARDENED_RUNTIME = YES; + ENABLE_HARDENED_RUNTIME = NO; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_CFBundleDisplayName = "Near Future"; "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; @@ -454,11 +455,11 @@ "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - IPHONEOS_DEPLOYMENT_TARGET = 17.5; + IPHONEOS_DEPLOYMENT_TARGET = 15; LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 14.0; - MARKETING_VERSION = 1.0; + MACOSX_DEPLOYMENT_TARGET = 13; + MARKETING_VERSION = 2.0; PRODUCT_BUNDLE_IDENTIFIER = dev.neon443.NearFuture; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = auto; @@ -472,16 +473,18 @@ A920C2AD2D24011B00E4F9B1 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = NearFuture/NearFuture.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 11; DEVELOPMENT_ASSET_PATHS = "\"NearFuture/Preview Content\""; DEVELOPMENT_TEAM = P6PV2R9443; - ENABLE_HARDENED_RUNTIME = YES; + ENABLE_HARDENED_RUNTIME = NO; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_CFBundleDisplayName = "Near Future"; "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; @@ -492,11 +495,11 @@ "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - IPHONEOS_DEPLOYMENT_TARGET = 17.5; + IPHONEOS_DEPLOYMENT_TARGET = 15; LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 14.0; - MARKETING_VERSION = 1.0; + MACOSX_DEPLOYMENT_TARGET = 13; + MARKETING_VERSION = 2.0; PRODUCT_BUNDLE_IDENTIFIER = dev.neon443.NearFuture; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = auto; @@ -507,93 +510,64 @@ }; name = Release; }; - A920C2AF2D24011B00E4F9B1 /* Debug */ = { + A979F6162D270AF90094C0B3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - BUNDLE_LOADER = "$(TEST_HOST)"; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CODE_SIGN_ENTITLEMENTS = NearFutureWidgets/NearFutureWidgetsExtension.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 11; DEVELOPMENT_TEAM = P6PV2R9443; GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.5; - MACOSX_DEPLOYMENT_TARGET = 14.5; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = dev.neon443.NearFutureTests; + INFOPLIST_FILE = NearFutureWidgets/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = NearFutureWidgets; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + IPHONEOS_DEPLOYMENT_TARGET = 17; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + MARKETING_VERSION = 2.0; + PRODUCT_BUNDLE_IDENTIFIER = dev.neon443.NearFuture.NearFutureWidgets; PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; - SWIFT_EMIT_LOC_STRINGS = NO; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/NearFuture.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/NearFuture"; }; name = Debug; }; - A920C2B02D24011B00E4F9B1 /* Release */ = { + A979F6172D270AF90094C0B3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - BUNDLE_LOADER = "$(TEST_HOST)"; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CODE_SIGN_ENTITLEMENTS = NearFutureWidgets/NearFutureWidgetsExtension.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 11; DEVELOPMENT_TEAM = P6PV2R9443; GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.5; - MACOSX_DEPLOYMENT_TARGET = 14.5; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = dev.neon443.NearFutureTests; + INFOPLIST_FILE = NearFutureWidgets/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = NearFutureWidgets; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + IPHONEOS_DEPLOYMENT_TARGET = 17; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + MARKETING_VERSION = 2.0; + PRODUCT_BUNDLE_IDENTIFIER = dev.neon443.NearFuture.NearFutureWidgets; PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; - SWIFT_EMIT_LOC_STRINGS = NO; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/NearFuture.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/NearFuture"; - }; - name = Release; - }; - A920C2B22D24011B00E4F9B1 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = P6PV2R9443; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.5; - MACOSX_DEPLOYMENT_TARGET = 14.5; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = dev.neon443.NearFutureUITests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = NearFuture; - }; - name = Debug; - }; - A920C2B32D24011B00E4F9B1 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = P6PV2R9443; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.5; - MACOSX_DEPLOYMENT_TARGET = 14.5; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = dev.neon443.NearFutureUITests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = NearFuture; + VALIDATE_PRODUCT = YES; }; name = Release; }; @@ -618,20 +592,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - A920C2AE2D24011B00E4F9B1 /* Build configuration list for PBXNativeTarget "NearFutureTests" */ = { + A979F6152D270AF90094C0B3 /* Build configuration list for PBXNativeTarget "NearFutureWidgetsExtension" */ = { isa = XCConfigurationList; buildConfigurations = ( - A920C2AF2D24011B00E4F9B1 /* Debug */, - A920C2B02D24011B00E4F9B1 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A920C2B12D24011B00E4F9B1 /* Build configuration list for PBXNativeTarget "NearFutureUITests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A920C2B22D24011B00E4F9B1 /* Debug */, - A920C2B32D24011B00E4F9B1 /* Release */, + A979F6162D270AF90094C0B3 /* Debug */, + A979F6172D270AF90094C0B3 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/NearFuture/AddEventView.swift b/NearFuture/AddEventView.swift index ac9c0f1..f095596 100644 --- a/NearFuture/AddEventView.swift +++ b/NearFuture/AddEventView.swift @@ -10,19 +10,33 @@ import SFSymbolsPicker struct AddEventView: View { @ObservedObject var viewModel: EventViewModel + @Binding var eventName: String @Binding var eventSymbol: String @Binding var eventColor: Color @Binding var eventDescription: String @Binding var eventDate: Date @Binding var eventRecurrence: Event.RecurrenceType - @Binding var isPresented: Bool + + @State var adding : Bool @State var isSymbolPickerPresented = false + @FocusState private var focusedField: Field? + private enum Field { + case Name, Description + } + + @Environment(\.dismiss) var dismiss + var body: some View { - NavigationStack { + NavigationView { Form { - Section(header: Text("Event Details").font(.headline).foregroundColor(.blue)) { + Section( + header: + Text("Event Details") + .font(.headline) + .foregroundColor(.accentColor) + ) { // name & symbol HStack(spacing: 5) { Button() { @@ -32,6 +46,7 @@ struct AddEventView: View { .resizable() .scaledToFit() .frame(width: 25, height: 25) + .foregroundStyle(eventColor) } // .frame(width: 30) .buttonStyle(.bordered) @@ -50,6 +65,10 @@ struct AddEventView: View { .textFieldStyle(RoundedBorderTextFieldStyle()) .padding(.trailing, eventName.isEmpty ? 0 : 30) .animation(.spring, value: eventName) + .focused($focusedField, equals: Field.Name) + .onSubmit { + focusedField = .Description + } MagicClearButton(text: $eventName) } } @@ -60,12 +79,16 @@ struct AddEventView: View { .textFieldStyle(RoundedBorderTextFieldStyle()) .padding(.trailing, eventDescription.isEmpty ? 0 : 30) .animation(.spring, value: eventDescription) + .focused($focusedField, equals: Field.Description) + .onSubmit { + focusedField = nil + } MagicClearButton(text: $eventDescription) } // date picker - DatePicker("Event Date", selection: $eventDate, in: Date()..., displayedComponents: .date) + DatePicker("Event Date", selection: $eventDate, displayedComponents: .date) .datePickerStyle(WheelDatePickerStyle()) // re-ocurrence Picker @@ -83,64 +106,67 @@ struct AddEventView: View { ) } - // save button - Button { - viewModel.addEvent( - name: eventName, - symbol: eventSymbol, - color: ColorCodable(eventColor), - description: eventDescription, - date: eventDate, - recurrence: eventRecurrence - ) - //reset addeventView - eventName = "" - eventSymbol = "star" - eventColor = [ - Color.red, - Color.orange, - Color.yellow, - Color.green, - Color.blue, - Color.indigo, - Color.purple - ].randomElement() ?? Color.red - eventDescription = "" - eventDate = Date() - eventRecurrence = .none - isPresented = false - } label: { - Text("Save Event") - .font(.headline) - .cornerRadius(10) - .shadow(radius: 10) - .buttonStyle(BorderedProminentButtonStyle()) - } - .disabled(eventName.isEmpty || eventDescription.isEmpty) - if eventName.isEmpty && eventDescription.isEmpty { - Text("Give your event a name and description.") - } else if eventName.isEmpty { - Text("Give your event a name.") - } else if eventDescription.isEmpty { - Text("Give your event a description.") + // save button only show iff adding new event + if adding { + Button { + viewModel.addEvent( + name: eventName, + symbol: eventSymbol, + color: ColorCodable(eventColor), + description: eventDescription, + date: eventDate, + recurrence: eventRecurrence + ) + resetAddEventView() + } label: { + Text("Save Event") + .font(.headline) + .cornerRadius(10) + .shadow(radius: 10) + .buttonStyle(BorderedProminentButtonStyle()) + } + .disabled(eventName.isEmpty) + if eventName.isEmpty { + Text("Give your event a name.") + + } } } - .navigationTitle("Add Event") + .navigationTitle("\(adding ? "Add Event" : "")") .navigationBarTitleDisplayMode(.inline) .toolbar { ToolbarItem(placement: .topBarTrailing) { - Button() { - isPresented.toggle() - } label: { - Image(systemName: "xmark.circle.fill") - .symbolRenderingMode(.hierarchical) + if adding { + Button() { + dismiss() + } label: { + Image(systemName: "xmark.circle.fill") + .symbolRenderingMode(.hierarchical) + } } } } } } + func resetAddEventView() { + //reset addeventView + eventName = "" + eventSymbol = "star" + eventColor = [ + Color.red, + Color.orange, + Color.yellow, + Color.green, + Color.blue, + Color.indigo, + Color.purple + ].randomElement() ?? Color.red + eventDescription = "" + eventDate = Date() + eventRecurrence = .none + dismiss() + } } - struct MagicClearButton: View { @Binding var text: String var body: some View { @@ -176,7 +202,8 @@ struct AddEvent_Preview: PreviewProvider { eventDescription: .constant("A very special day"), eventDate: $date, eventRecurrence: .constant(.monthly), - isPresented: .constant(true) + adding: true ) } } + diff --git a/NearFuture/Assets.xcassets/AccentColor.colorset/Contents.json b/NearFuture/Assets.xcassets/AccentColor.colorset/Contents.json index eb87897..762fbd2 100644 --- a/NearFuture/Assets.xcassets/AccentColor.colorset/Contents.json +++ b/NearFuture/Assets.xcassets/AccentColor.colorset/Contents.json @@ -1,6 +1,15 @@ { "colors" : [ { + "color" : { + "color-space" : "extended-srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.375", + "red" : "1.000" + } + }, "idiom" : "universal" } ], diff --git a/NearFuture/Assets.xcassets/AppIcon.appiconset/Contents.json b/NearFuture/Assets.xcassets/AppIcon.appiconset/Contents.json index 532cd72..ec5da97 100644 --- a/NearFuture/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/NearFuture/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,6 +1,7 @@ { "images" : [ { + "filename" : "telescope-pointed-at-the-milky-way-galaxy-royalty-free-image-93204189-1533148569-2899733190.jpg", "idiom" : "universal", "platform" : "ios", "size" : "1024x1024" diff --git a/NearFuture/Assets.xcassets/AppIcon.appiconset/telescope-pointed-at-the-milky-way-galaxy-royalty-free-image-93204189-1533148569-2899733190.jpg b/NearFuture/Assets.xcassets/AppIcon.appiconset/telescope-pointed-at-the-milky-way-galaxy-royalty-free-image-93204189-1533148569-2899733190.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e1797166d5092720f0aa56a844ee704f0b061090 GIT binary patch literal 222852 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℘RUpDd+aa^gZ3@cP+6RhJQ?h5>LezQf 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 z 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 NSmMOvT&TF8|JfZQbdmr7 literal 0 HcmV?d00001 diff --git a/NearFuture/ContentView.swift b/NearFuture/ContentView.swift index ef32081..684df33 100644 --- a/NearFuture/ContentView.swift +++ b/NearFuture/ContentView.swift @@ -94,6 +94,7 @@ struct ContentView: View { } } } + @Environment(\.colorScheme) var appearance private var backgroundGradient: LinearGradient { switch appearance { @@ -119,6 +120,10 @@ struct ContentView: View { } @State var showSettings: Bool = false + @FocusState private var focusedField: Field? + private enum Field { + case Search + } var body: some View { NavigationView { ZStack { @@ -133,24 +138,39 @@ struct ContentView: View { .padding(.trailing, searchInput.isEmpty ? 0 : 30) .animation(.spring, value: searchInput) .textFieldStyle(RoundedBorderTextFieldStyle()) + .focused($focusedField, equals: Field.Search) + .onSubmit { + focusedField = nil + } MagicClearButton(text: $searchInput) } .padding(.horizontal) List { ForEach(filteredEvents) { event in - var eventBackgroundGradient: LinearGradient { - return LinearGradient( - colors: [ - event.color.color, - Color.black - ], - startPoint: .leading, - endPoint: .trailing - ) - } - EventListView(event: event) + EventListView(viewModel: viewModel, event: event) } .onDelete(perform: viewModel.removeEvent) + if !searchInput.isEmpty { + HStack { + Image(systemName: "questionmark.square.dashed") + .resizable() + .scaledToFit() + .frame(width: 30, height: 30) + .padding(.trailing) + Text("Can't find what you're looking for?") + } + Text("Tip: The Search bar searches event names and descriptions") + Button() { + searchInput = "" + focusedField = nil + } label: { + HStack { + Image(systemName: "xmark") + Text("Clear Filters") + } + .foregroundStyle(Color.accentColor) + } + } } } .navigationTitle("Near Future") @@ -164,14 +184,13 @@ struct ContentView: View { eventDescription: $eventDescription, eventDate: $eventDate, eventRecurrence: $eventRecurrence, - isPresented: $showingAddEventView + adding: true //adding event ) } .sheet( isPresented: $showSettings) { SettingsView( - viewModel: viewModel, - showSettings: $showSettings + viewModel: viewModel ) } .toolbar { @@ -193,52 +212,61 @@ struct ContentView: View { } } } - } } } struct EventListView: View { + @StateObject var viewModel: EventViewModel @State var event: Event var body: some View { -// var testColor = Color.red -// var codableColor = ColorCodable(testColor) -// Text("\(codableColor.red), \(codableColor.green), \(codableColor.blue), \(codableColor.alpha)") - ZStack { + NavigationLink() { + EditEventView( + viewModel: viewModel, + event: $event + ) + } label: { HStack { RoundedRectangle(cornerRadius: 5) .frame(width: 5) .foregroundStyle(event.color.color) - .padding(.leading, -5) + .padding(.leading, -10) + .padding(.vertical, 5) VStack(alignment: .leading) { HStack { - Text("\(Image(systemName: event.symbol)) \(event.name)") + Image(systemName: event.symbol) + .resizable() + .scaledToFit() + .frame(width: 20, height: 20) + .foregroundStyle(event.color.color) + Text("\(event.name)") .font(.headline) } - Text(event.description) - .font(.subheadline) - .foregroundColor(.gray) - if event.recurrence != .none { - Text("Recurring: \(event.recurrence.rawValue.capitalized)") + if !event.description.isEmpty { + Text(event.description) .font(.subheadline) - .foregroundColor(.blue) + .foregroundColor(.gray) } Text(event.date.formatted(date: .long, time: .omitted)) .font(.subheadline) - .foregroundColor(.blue) + .foregroundColor(event.color.color) + if event.recurrence != .none { + Text("Recurring: \(event.recurrence.rawValue.capitalized)") + .font(.subheadline) + } } Spacer() - Text("\(daysUntilEvent(event.date))") + Text("\(daysUntilEvent(event.date, short: false))") .font(.subheadline) - .foregroundColor(.gray) + .foregroundColor(event.color.color) } - .padding(.vertical, 8) } } } + #Preview { ContentView() } diff --git a/NearFuture/EditEventView.swift b/NearFuture/EditEventView.swift new file mode 100644 index 0000000..b89db96 --- /dev/null +++ b/NearFuture/EditEventView.swift @@ -0,0 +1,89 @@ +// +// EditEventView.swift +// NearFuture +// +// Created by Nihaal Sharma on 02/01/2025. +// + +import SwiftUI + +struct EditEventView: View { + @Environment(\.dismiss) var dismiss + @ObservedObject var viewModel: EventViewModel + @Binding var event: Event + + @State private var eventName: String + @State private var eventSymbol: String + @State private var eventColor: Color + @State private var eventDescription: String + @State private var eventDate: Date + @State private var eventRecurrence: Event.RecurrenceType + + init(viewModel: EventViewModel, event: Binding) { + self.viewModel = viewModel + _event = event + _eventName = State(initialValue: event.wrappedValue.name) + _eventSymbol = State(initialValue: event.wrappedValue.symbol) + _eventColor = State(initialValue: event.wrappedValue.color.color) + _eventDescription = State(initialValue: event.wrappedValue.description) + _eventDate = State(initialValue: event.wrappedValue.date) + _eventRecurrence = State(initialValue: event.wrappedValue.recurrence) + } + + var body: some View { +// NavigationView { + AddEventView( + viewModel: viewModel, + eventName: $eventName, + eventSymbol: $eventSymbol, + eventColor: $eventColor, + eventDescription: $eventDescription, + eventDate: $eventDate, + eventRecurrence: $eventRecurrence, + adding: false //bc we editing existing event + ) + .navigationTitle("Edit Event") + .toolbar { + ToolbarItem(placement: .topBarTrailing) { + Button() { + event.name = eventName + event.symbol = eventSymbol + event.color = ColorCodable(eventColor) + event.description = eventDescription + event.date = eventDate + event.recurrence = eventRecurrence + + //if there is an event in vM.events with the id of the event we r editing, + //firstindex - loops through the arr and finds first element where that events id matches editing event's id + if let index = viewModel.events.firstIndex(where: { xEvent in + xEvent.id == event.id + }) { + viewModel.events[index] = event + } + viewModel.saveEvents() + + dismiss() + } label: { + Text("Done") + } + } + } +// } + } +} + +#Preview { + EditEventView( + viewModel: EventViewModel(), + event: .constant( + Event( + name: "Birthday", + symbol: "gear", + color: ColorCodable(.red), + description: "an event", + date: Date(), + recurrence: .yearly + ) + ) + ) +} diff --git a/NearFuture/Item.swift b/NearFuture/Item.swift index 2fc9a0a..95fe0fd 100644 --- a/NearFuture/Item.swift +++ b/NearFuture/Item.swift @@ -8,189 +8,272 @@ import Foundation import SwiftData import SwiftUI +import WidgetKit -@Model -final class Item { - var timestamp: Date - - init(timestamp: Date) { - self.timestamp = timestamp - } -} +//@Model +//final class Item { +// var timestamp: Date +// +// init(timestamp: Date) { +// self.timestamp = timestamp +// } +//} struct Event: Identifiable, Codable { - var id = UUID() - var name: String - var symbol: String - var color: ColorCodable - var description: String - var date: Date - var recurrence: RecurrenceType - - enum RecurrenceType: String, Codable, CaseIterable { - case none, daily, weekly, monthly, yearly - } + var id = UUID() + var name: String + var symbol: String + var color: ColorCodable + var description: String + var date: Date + var recurrence: RecurrenceType + + enum RecurrenceType: String, Codable, CaseIterable { + case none, daily, weekly, monthly, yearly + } } struct ColorCodable: Codable { - var red: Double - var green: Double - var blue: Double - var alpha: Double - //for the brainrotted: alpha is the opacity/transparency of the color, - //alpha == 0 completely transparent - //alpha == 1 completely opaque - - var color: Color { - Color(red: red, green: green, blue: blue, opacity: alpha) - } - - init(_ color: Color) { - let uiColor = UIColor(color) - var r: CGFloat = 0, g: CGFloat = 0, b: CGFloat = 0, a: CGFloat = 0 - uiColor.getRed(&r, green: &g, blue: &b, alpha: &a) - - self.red = Double(r) - self.green = Double(g) - self.blue = Double(b) - self.alpha = Double(a) - - } - init(red: Double, green: Double, blue: Double, alpha: Double = 1.0) { - self.red = red - self.green = green - self.blue = blue - self.alpha = alpha - } + var red: Double + var green: Double + var blue: Double + var alpha: Double + //for the brainrotted: alpha is the opacity/transparency of the color, + //alpha == 0 completely transparent + //alpha == 1 completely opaque + + var color: Color { + Color(red: red, green: green, blue: blue, opacity: alpha) + } + + init(_ color: Color) { + let uiColor = UIColor(color) + var r: CGFloat = 0, g: CGFloat = 0, b: CGFloat = 0, a: CGFloat = 0 + uiColor.getRed(&r, green: &g, blue: &b, alpha: &a) + + self.red = Double(r) + self.green = Double(g) + self.blue = Double(b) + self.alpha = Double(a) + } + init(red: Double, green: Double, blue: Double, alpha: Double = 1.0) { + self.red = red + self.green = green + self.blue = blue + self.alpha = alpha + } } -func daysUntilEvent(_ eventDate: Date) -> String { - let calendar = Calendar.current - let currentDate = Date() - let components = calendar.dateComponents([.day], from: currentDate, to: eventDate) - guard let days = components.day else { return "N/A" } - guard days >= 0 else { - return "\(days) days ago" - } - guard days != 0 else { - return "Today" - } - return "\(days) days" +func daysUntilEvent(_ eventDate: Date, short: Bool) -> String { + let calendar = Calendar.current + let currentDate = Date() + let components = calendar.dateComponents([.day], from: currentDate, to: eventDate) + guard let days = components.day else { return "N/A" } + guard days >= 0 else { + if short { + return "\(days)d" + } else { + return "\(-days) day\(-days == 1 ? "" : "s") ago" + } + } + guard days != 0 else { + return "Today" + } + if short { + return "\(days)d" + } else { + return "\(days) day\(days == 1 ? "" : "s")" + } } class EventViewModel: ObservableObject { - @Published var events: [Event] = [] - @Published var icloudData: [Event] = [] - - init() { - loadEvents() - } - - //icloud - let icloudStore = NSUbiquitousKeyValueStore.default - - func loadEvents() { - //load icloud 1st - if let icData = icloudStore.data(forKey: "events") { - let decoder = JSONDecoder() - if let decodedIcEvents = try? decoder.decode([Event].self, from: icData) { - self.icloudData = decodedIcEvents - self.events = decodedIcEvents - } - } - - if events.isEmpty, let savedData = UserDefaults.standard.data(forKey: "events") { - let decoder = JSONDecoder() - if let decodedEvents = try? decoder.decode([Event].self, from: savedData) { - self.events = decodedEvents - } - } - } - - func saveEvents() { - let encoder = JSONEncoder() - if let encoded = try? encoder.encode(events) { - UserDefaults.standard.set(encoded, forKey: "events") - -// do { - icloudStore.set(encoded, forKey: "events") - icloudStore.synchronize() -// } catch { -// print("Error saving to iCloud: \(error)") -// } - - if icloudStore.data(forKey: "events") != nil { - print(icloudStore.dictionaryRepresentation) - } - } - } - - func addEvent( - name: String, - symbol: String, - color: ColorCodable, - description: String, - date: Date, - recurrence: Event.RecurrenceType - ) { - let newEvent = Event( - name: name, - symbol: symbol, - color: color, - description: description, - date: date, - recurrence: recurrence - ) - events.append(newEvent) - saveEvents() //sync with icloud - } - - func removeEvent(at index: IndexSet) { - events.remove(atOffsets: index) - saveEvents() //sync local and icl - } - - //MARK: Danger Zone - func dangerClearLocalData() { - UserDefaults.standard.removeObject(forKey: "events") - } - func dangerCleariCloudData() { - let icloud = NSUbiquitousKeyValueStore() - icloud.removeObject(forKey: "events") - icloud.synchronize() - } - func dangerResetLocalData() { - let userDFDict = UserDefaults.standard.dictionaryRepresentation() - for key in userDFDict.keys { - UserDefaults.standard.removeObject(forKey: key) - } - } - func dangerResetiCloud() { - let icloud = NSUbiquitousKeyValueStore() - let icloudDict = NSUbiquitousKeyValueStore().dictionaryRepresentation - for key in icloudDict.keys { - icloud.removeObject(forKey: key) - } - icloud.synchronize() - } + @Published var events: [Event] = [] + @Published var icloudData: [Event] = [] + + @Published var lastSync: Date? = nil + @Published var icloudEventCount: Int = 0 + @Published var localEventCount: Int = 0 + @Published var syncStatus: String = "Not Synced" + + init() { + loadEvents() + } + + //appgroup or regular userdefaults + let appGroupUserDefaults = UserDefaults(suiteName: "group.com.neon443.NearFuture") ?? UserDefaults.standard + + //icloud store + let icloudStore = NSUbiquitousKeyValueStore.default + + // load from icloud or local + func loadEvents() { + //load icloud 1st + if let icData = icloudStore.data(forKey: "events") { + let decoder = JSONDecoder() + if let decodedIcEvents = try? decoder.decode([Event].self, from: icData) { + self.icloudData = decodedIcEvents + self.events = decodedIcEvents + } + } + + if events.isEmpty, let savedData = appGroupUserDefaults.data(forKey: "events") { + let decoder = JSONDecoder() + if let decodedEvents = try? decoder.decode([Event].self, from: savedData) { + self.events = decodedEvents + } + } + updateSyncStatus() + } + + // save to local and icloud + func saveEvents() { + let encoder = JSONEncoder() + if let encoded = try? encoder.encode(events) { + appGroupUserDefaults.set(encoded, forKey: "events") + + //sync + icloudStore.set(encoded, forKey: "events") + icloudStore.synchronize() + + updateSyncStatus() + loadEvents() + WidgetCenter.shared.reloadAllTimelines()//reload all widgets when saving events + } + } + + private func updateSyncStatus() { + lastSync = Date() + icloudEventCount = icloudData.count + localEventCount = events.count + + if icloudEventCount == localEventCount { + syncStatus = "Successful" + } else { + syncStatus = "Pending" + } + } + + func addEvent( + name: String, + symbol: String, + color: ColorCodable, + description: String, + date: Date, + recurrence: Event.RecurrenceType + ) { + let newEvent = Event( + name: name, + symbol: symbol, + color: color, + description: description, + date: date, + recurrence: recurrence + ) + events.append(newEvent) + saveEvents() //sync with icloud + } + + func removeEvent(at index: IndexSet) { + events.remove(atOffsets: index) + saveEvents() //sync local and icl + } + + func hasUbiquitousKeyValueStore() -> Bool { + let icloud = NSUbiquitousKeyValueStore.default + + let key = "com.neon443.NearFuture.testkey" + let value = "testValue" + + icloud.set(value, forKey: key) + icloud.synchronize() + + if let retrievedVal = icloud.string(forKey: key) { + print("has UbiquitousKeyValueStore: retrieved \(retrievedVal)") + icloud.removeObject(forKey: key) + icloud.synchronize() + return true + } else { + print("!has UbiquitousKeyValueStore") + icloud.removeObject(forKey: key) + icloud.synchronize() + return false + } + } + + func sync() { + NSUbiquitousKeyValueStore.default.synchronize() + loadEvents() + } + + func replaceLocalWithiCloudData() { + icloudStore.synchronize() + self.events = self.icloudData + saveEvents() + } + + func replaceiCloudWithLocalData() { + icloudStore.synchronize() + self.icloudData = self.events + saveEvents() + } + + //MARK: Danger Zone + func dangerClearLocalData() { + UserDefaults.standard.removeObject(forKey: "events") + appGroupUserDefaults.removeObject(forKey: "events") + events.removeAll() + updateSyncStatus() + } + + func dangerCleariCloudData() { + icloudStore.removeObject(forKey: "events") + icloudStore.synchronize() + icloudData.removeAll() + updateSyncStatus() + } + + func dangerResetLocalData() { + let userDFDict = UserDefaults.standard.dictionaryRepresentation() + for key in userDFDict.keys { + UserDefaults.standard.removeObject(forKey: key) + } + + let appGUSDDict = appGroupUserDefaults.dictionaryRepresentation() + for key in appGUSDDict.keys { + appGroupUserDefaults.removeObject(forKey: key) + } + + events.removeAll() + updateSyncStatus() + } + + func dangerResetiCloud() { + let icloudDict = icloudStore.dictionaryRepresentation + for key in icloudDict.keys { + icloudStore.removeObject(forKey: key) + } + icloudStore.synchronize() + icloudData.removeAll() + updateSyncStatus() + } } func describeOccurrence(date: Date, recurrence: Event.RecurrenceType) -> String { - let dateString = date.formatted(date: .long, time: .omitted) - let recurrenceDescription: String - - switch recurrence { - case .none: - recurrenceDescription = "Occurs once on" - case .daily: - recurrenceDescription = "Repeats every day from" - case .weekly: - recurrenceDescription = "Repeats every week from" - case .monthly: - recurrenceDescription = "Repeats every month from" - case .yearly: - recurrenceDescription = "Repeats every year from" - } - - return "\(recurrenceDescription) \(dateString)" + let dateString = date.formatted(date: .long, time: .omitted) + let recurrenceDescription: String + + switch recurrence { + case .none: + recurrenceDescription = "Occurs once on" + case .daily: + recurrenceDescription = "Repeats every day from" + case .weekly: + recurrenceDescription = "Repeats every week from" + case .monthly: + recurrenceDescription = "Repeats every month from" + case .yearly: + recurrenceDescription = "Repeats every year from" + } + + return "\(recurrenceDescription) \(dateString)" } diff --git a/NearFuture/NearFuture.entitlements b/NearFuture/NearFuture.entitlements index ad259ee..df5ecbf 100644 --- a/NearFuture/NearFuture.entitlements +++ b/NearFuture/NearFuture.entitlements @@ -6,9 +6,9 @@ com.apple.developer.ubiquity-kvstore-identifier $(TeamIdentifierPrefix)$(CFBundleIdentifier) - com.apple.security.app-sandbox - - com.apple.security.files.user-selected.read-only - + com.apple.security.application-groups + + group.com.neon443.NearFuture + diff --git a/NearFuture/NearFutureApp.swift b/NearFuture/NearFutureApp.swift index 2542a42..a346f8d 100644 --- a/NearFuture/NearFutureApp.swift +++ b/NearFuture/NearFutureApp.swift @@ -10,23 +10,23 @@ import SwiftData @main struct NearFutureApp: App { - var sharedModelContainer: ModelContainer = { - let schema = Schema([ - Item.self, - ]) - let modelConfiguration = ModelConfiguration(schema: schema, isStoredInMemoryOnly: false) - - do { - return try ModelContainer(for: schema, configurations: [modelConfiguration]) - } catch { - fatalError("Could not create ModelContainer: \(error)") - } - }() +// var sharedModelContainer: ModelContainer = { +// let schema = Schema([ +// Item.self, +// ]) +// let modelConfiguration = ModelConfiguration(schema: schema, isStoredInMemoryOnly: false) +// +// do { +// return try ModelContainer(for: schema, configurations: [modelConfiguration]) +// } catch { +// fatalError("Could not create ModelContainer: \(error)") +// } +// }() var body: some Scene { WindowGroup { ContentView() } - .modelContainer(sharedModelContainer) +// .modelContainer(sharedModelContainer) } } diff --git a/NearFuture/Preview Content/NearFutureWidgets/AppIntent.swift b/NearFuture/Preview Content/NearFutureWidgets/AppIntent.swift new file mode 100644 index 0000000..c48db3f --- /dev/null +++ b/NearFuture/Preview Content/NearFutureWidgets/AppIntent.swift @@ -0,0 +1,18 @@ +// +// AppIntent.swift +// NearFutureWidgets +// +// Created by Nihaal Sharma on 02/01/2025. +// + +import WidgetKit +import AppIntents + +struct ConfigurationAppIntent: WidgetConfigurationIntent { + static var title: LocalizedStringResource = "Configuration" + static var description = IntentDescription("This is an example widget.") + + // An example configurable parameter. + @Parameter(title: "Favorite Emoji", default: "πŸ˜ƒ") + var favoriteEmoji: String +} diff --git a/NearFuture/Preview Content/NearFutureWidgets/Assets.xcassets/AccentColor.colorset/Contents.json b/NearFuture/Preview Content/NearFutureWidgets/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/NearFuture/Preview Content/NearFutureWidgets/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/NearFuture/Preview Content/NearFutureWidgets/Assets.xcassets/AppIcon.appiconset/Contents.json b/NearFuture/Preview Content/NearFutureWidgets/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..13613e3 --- /dev/null +++ b/NearFuture/Preview Content/NearFutureWidgets/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,13 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/NearFuture/Preview Content/NearFutureWidgets/Assets.xcassets/Contents.json b/NearFuture/Preview Content/NearFutureWidgets/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/NearFuture/Preview Content/NearFutureWidgets/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/NearFuture/Preview Content/NearFutureWidgets/Assets.xcassets/WidgetBackground.colorset/Contents.json b/NearFuture/Preview Content/NearFutureWidgets/Assets.xcassets/WidgetBackground.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/NearFuture/Preview Content/NearFutureWidgets/Assets.xcassets/WidgetBackground.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/NearFuture/Preview Content/NearFutureWidgets/Info.plist b/NearFuture/Preview Content/NearFutureWidgets/Info.plist new file mode 100644 index 0000000..0f118fb --- /dev/null +++ b/NearFuture/Preview Content/NearFutureWidgets/Info.plist @@ -0,0 +1,11 @@ + + + + + NSExtension + + NSExtensionPointIdentifier + com.apple.widgetkit-extension + + + diff --git a/NearFuture/Preview Content/NearFutureWidgets/NearFutureWidgets.swift b/NearFuture/Preview Content/NearFutureWidgets/NearFutureWidgets.swift new file mode 100644 index 0000000..1bc2e8c --- /dev/null +++ b/NearFuture/Preview Content/NearFutureWidgets/NearFutureWidgets.swift @@ -0,0 +1,84 @@ +// +// NearFutureWidgets.swift +// NearFutureWidgets +// +// Created by Nihaal Sharma on 02/01/2025. +// + +import WidgetKit +import SwiftUI + +struct Provider: AppIntentTimelineProvider { + func placeholder(in context: Context) -> SimpleEntry { + SimpleEntry(date: Date(), configuration: ConfigurationAppIntent()) + } + + func snapshot(for configuration: ConfigurationAppIntent, in context: Context) async -> SimpleEntry { + SimpleEntry(date: Date(), configuration: configuration) + } + + func timeline(for configuration: ConfigurationAppIntent, in context: Context) async -> Timeline { + var entries: [SimpleEntry] = [] + + // Generate a timeline consisting of five entries an hour apart, starting from the current date. + let currentDate = Date() + for hourOffset in 0 ..< 5 { + let entryDate = Calendar.current.date(byAdding: .hour, value: hourOffset, to: currentDate)! + let entry = SimpleEntry(date: entryDate, configuration: configuration) + entries.append(entry) + } + + return Timeline(entries: entries, policy: .atEnd) + } +} + +struct SimpleEntry: TimelineEntry { + let date: Date + let configuration: ConfigurationAppIntent +} + +struct NearFutureWidgetsEntryView : View { + var entry: Provider.Entry + + var body: some View { + VStack { + Text("Time:") + Text(entry.date, style: .time) + + Text("Favorite Emoji:") + Text(entry.configuration.favoriteEmoji) + } + } +} + +struct NearFutureWidgets: Widget { + let kind: String = "NearFutureWidgets" + + var body: some WidgetConfiguration { + AppIntentConfiguration(kind: kind, intent: ConfigurationAppIntent.self, provider: Provider()) { entry in + NearFutureWidgetsEntryView(entry: entry) + .containerBackground(.fill.tertiary, for: .widget) + } + } +} + +extension ConfigurationAppIntent { + fileprivate static var smiley: ConfigurationAppIntent { + let intent = ConfigurationAppIntent() + intent.favoriteEmoji = "πŸ˜€" + return intent + } + + fileprivate static var starEyes: ConfigurationAppIntent { + let intent = ConfigurationAppIntent() + intent.favoriteEmoji = "🀩" + return intent + } +} + +#Preview(as: .systemSmall) { + NearFutureWidgets() +} timeline: { + SimpleEntry(date: .now, configuration: .smiley) + SimpleEntry(date: .now, configuration: .starEyes) +} diff --git a/NearFuture/Preview Content/NearFutureWidgets/NearFutureWidgetsBundle.swift b/NearFuture/Preview Content/NearFutureWidgets/NearFutureWidgetsBundle.swift new file mode 100644 index 0000000..53d8f79 --- /dev/null +++ b/NearFuture/Preview Content/NearFutureWidgets/NearFutureWidgetsBundle.swift @@ -0,0 +1,17 @@ +// +// NearFutureWidgetsBundle.swift +// NearFutureWidgets +// +// Created by Nihaal Sharma on 02/01/2025. +// + +import WidgetKit +import SwiftUI + +@main +struct NearFutureWidgetsBundle: WidgetBundle { + var body: some Widget { + NearFutureWidgets() + NearFutureWidgetsLiveActivity() + } +} diff --git a/NearFuture/Preview Content/NearFutureWidgets/NearFutureWidgetsLiveActivity.swift b/NearFuture/Preview Content/NearFutureWidgets/NearFutureWidgetsLiveActivity.swift new file mode 100644 index 0000000..21c5d09 --- /dev/null +++ b/NearFuture/Preview Content/NearFutureWidgets/NearFutureWidgetsLiveActivity.swift @@ -0,0 +1,80 @@ +// +// NearFutureWidgetsLiveActivity.swift +// NearFutureWidgets +// +// Created by Nihaal Sharma on 02/01/2025. +// + +import ActivityKit +import WidgetKit +import SwiftUI + +struct NearFutureWidgetsAttributes: ActivityAttributes { + public struct ContentState: Codable, Hashable { + // Dynamic stateful properties about your activity go here! + var emoji: String + } + + // Fixed non-changing properties about your activity go here! + var name: String +} + +struct NearFutureWidgetsLiveActivity: Widget { + var body: some WidgetConfiguration { + ActivityConfiguration(for: NearFutureWidgetsAttributes.self) { context in + // Lock screen/banner UI goes here + VStack { + Text("Hello \(context.state.emoji)") + } + .activityBackgroundTint(Color.cyan) + .activitySystemActionForegroundColor(Color.black) + + } dynamicIsland: { context in + DynamicIsland { + // Expanded UI goes here. Compose the expanded UI through + // various regions, like leading/trailing/center/bottom + DynamicIslandExpandedRegion(.leading) { + Text("Leading") + } + DynamicIslandExpandedRegion(.trailing) { + Text("Trailing") + } + DynamicIslandExpandedRegion(.bottom) { + Text("Bottom \(context.state.emoji)") + // more content + } + } compactLeading: { + Text("L") + } compactTrailing: { + Text("T \(context.state.emoji)") + } minimal: { + Text(context.state.emoji) + } + .widgetURL(URL(string: "http://www.apple.com")) + .keylineTint(Color.red) + } + } +} + +extension NearFutureWidgetsAttributes { + fileprivate static var preview: NearFutureWidgetsAttributes { + NearFutureWidgetsAttributes(name: "World") + } +} + +extension NearFutureWidgetsAttributes.ContentState { + fileprivate static var smiley: NearFutureWidgetsAttributes.ContentState { + NearFutureWidgetsAttributes.ContentState(emoji: "πŸ˜€") + } + + fileprivate static var starEyes: NearFutureWidgetsAttributes.ContentState { + NearFutureWidgetsAttributes.ContentState(emoji: "🀩") + } +} + +#Preview("Notification", as: .content, using: NearFutureWidgetsAttributes.preview) { + NearFutureWidgetsLiveActivity() +} contentStates: { + NearFutureWidgetsAttributes.ContentState.smiley + NearFutureWidgetsAttributes.ContentState.starEyes +} diff --git a/NearFuture/SettingsView.swift b/NearFuture/SettingsView.swift index 001d763..7e0b3ed 100644 --- a/NearFuture/SettingsView.swift +++ b/NearFuture/SettingsView.swift @@ -9,11 +9,64 @@ import SwiftUI struct SettingsView: View { @State var viewModel: EventViewModel - @Binding var showSettings: Bool + @Environment(\.dismiss) var dismiss + + @State private var hasUbiquitous: Bool = false + @State private var lastSyncWasSuccessful: Bool = false + @State private var lastSyncWasNormalAgo: Bool = false + @State private var localCountEqualToiCloud: Bool = false + @State private var icloudCountEqualToLocal: Bool = false + + func updateStatus() { + let vm = viewModel + hasUbiquitous = vm.hasUbiquitousKeyValueStore() + lastSyncWasSuccessful = vm.syncStatus.contains("Success") + lastSyncWasNormalAgo = vm.lastSync?.timeIntervalSinceNow.isNormal ?? false + localCountEqualToiCloud = vm.localEventCount == vm.icloudEventCount + icloudCountEqualToLocal = vm.icloudEventCount == vm.localEventCount + } + + var iCloudStatusColor: Color { + let allTrue = hasUbiquitous && lastSyncWasSuccessful && lastSyncWasNormalAgo && localCountEqualToiCloud && icloudCountEqualToLocal + let someTrue = hasUbiquitous || lastSyncWasSuccessful || lastSyncWasNormalAgo || localCountEqualToiCloud || icloudCountEqualToLocal + + if allTrue { + return .green + } else if someTrue { + return .orange + } else { + return .red + } + } var body: some View { - NavigationStack { + NavigationView { List { + NavigationLink() { + iCloudSettingsView( + viewModel: viewModel, + hasUbiquitous: $hasUbiquitous, + lastSyncWasSuccessful: $lastSyncWasSuccessful, + lastSyncWasNormalAgo: $lastSyncWasNormalAgo, + localCountEqualToiCloud: $localCountEqualToiCloud, + icloudCountEqualToLocal: $icloudCountEqualToLocal, + updateStatus: updateStatus + ) + } label: { + HStack { + Image(systemName: "icloud.fill") + Text("iCloud") + Spacer() + Circle() + .frame(width: 20, height: 20) + .foregroundStyle(iCloudStatusColor) + } + } + .onAppear { + viewModel.sync() + updateStatus() + } + Section("Danger Zone") { Button("Delete local data", role: .destructive) { viewModel.dangerClearLocalData() @@ -40,7 +93,7 @@ struct SettingsView: View { .toolbar { ToolbarItem(placement: .topBarTrailing) { Button() { - showSettings.toggle() + dismiss() } label: { Image(systemName: "xmark.circle.fill") .symbolRenderingMode(.hierarchical) @@ -51,9 +104,171 @@ struct SettingsView: View { } } +struct iCloudSettingsView: View { + @State var viewModel: EventViewModel + @State var showPushAlert: Bool = false + @State var showPullAlert: Bool = false + + @Binding var hasUbiquitous: Bool + @Binding var lastSyncWasSuccessful: Bool + @Binding var lastSyncWasNormalAgo: Bool + @Binding var localCountEqualToiCloud: Bool + @Binding var icloudCountEqualToLocal: Bool + + var updateStatus: () -> Void + + var body: some View { + List { + HStack { + Spacer() + VStack { + ZStack { + Image(systemName: "icloud") + .resizable() + .scaledToFit() + .frame(width: 75, height: 75) + .symbolRenderingMode(.multicolor) + Text("\(viewModel.icloudEventCount)") + .font(.title2) + } + HStack { + Button(role: .destructive) { + showPushAlert.toggle() + } label: { + Image(systemName: "arrow.up") + .resizable() + .scaledToFit() + .frame(width: 30, height: 40) + } + .buttonStyle(BorderedButtonStyle()) + .alert("Warning", isPresented: $showPushAlert) { + Button("OK", role: .destructive) { + viewModel.replaceiCloudWithLocalData() + viewModel.sync() + updateStatus() + } + Button("Cancel", role: .cancel) {} + } message: { + Text("This will replace Events stored in iCloud with Events stored locally.") + } + + Button() { + viewModel.sync() + updateStatus() + } label: { + Image(systemName: "arrow.triangle.2.circlepath") + .resizable() + .scaledToFit() + .frame(width: 30, height: 40) + .foregroundStyle(Color.accentColor) + } + .buttonStyle(BorderedButtonStyle()) + + Button(role: .destructive) { + showPullAlert.toggle() + } label: { + Image(systemName: "arrow.down") + .resizable() + .scaledToFit() + .frame(width: 30, height: 40) + } + .buttonStyle(BorderedButtonStyle()) + .alert("Warning", isPresented: $showPullAlert) { + Button("OK", role: .destructive) { + viewModel.replaceLocalWithiCloudData() + viewModel.sync() + updateStatus() + } + Button("Cancel", role: .cancel) {} + } message: { + Text("This will replace Events stored locally with Events stored in iCloud.") + } + } + ZStack { + Image(systemName: "iphone.gen3") + .resizable() + .scaledToFit() + .frame(width: 75, height: 75) + .symbolRenderingMode(.monochrome) + Text("\(viewModel.localEventCount)") + .font(.headline) + } + } + Spacer() + } + .onAppear { + viewModel.sync() + updateStatus() + } + + HStack { + Circle() + .frame(width: 20, height: 20) + .foregroundStyle(hasUbiquitous ? .green : .red) + Text("iCloud Key Value Store:") + Text("\(hasUbiquitous ? "" : "Not ")Working") + .bold() + } + + HStack { + Circle() + .frame(width: 20, height: 20) + .foregroundStyle(lastSyncWasSuccessful ? .green : .red) + Text("Sync Status:") + Text("\(viewModel.syncStatus)") + .bold() + } + + HStack { + Circle() + .frame(width: 20, height: 20) + .foregroundStyle(lastSyncWasNormalAgo ? .green : .red) + Text("Last Sync:") + Text("\(viewModel.lastSync?.formatted() ?? "Never")") + .bold() + } + + HStack { + Circle() + .frame(width: 20, height: 20) + .foregroundStyle(localCountEqualToiCloud ? .green : .red) + Text("\(viewModel.localEventCount)") + .bold() + Text("Local Events") + } + + HStack { + Circle() + .frame(width: 20, height: 20) + .foregroundStyle(icloudCountEqualToLocal ? .green : .red) + Text("\(viewModel.icloudEventCount)") + .bold() + Text("Events in iCloud") + } + } + .navigationTitle("iCloud") + .navigationBarTitleDisplayMode(.inline) + } +} + #Preview { SettingsView( - viewModel: EventViewModel(), - showSettings: .constant(true) + viewModel: EventViewModel() ) } + +#Preview("iCloudSettingsView") { + iCloudSettingsView( + viewModel: EventViewModel(), + hasUbiquitous: .constant(true), + lastSyncWasSuccessful: .constant(true), + lastSyncWasNormalAgo: .constant(true), + localCountEqualToiCloud: .constant(true), + icloudCountEqualToLocal: .constant(true), + updateStatus: test + ) +} + +func test() -> Void { + +} diff --git a/NearFutureTests/NearFutureTests.swift b/NearFutureTests/NearFutureTests.swift deleted file mode 100644 index d210086..0000000 --- a/NearFutureTests/NearFutureTests.swift +++ /dev/null @@ -1,35 +0,0 @@ -// -// NearFutureTests.swift -// NearFutureTests -// -// Created by Nihaal Sharma on 31/12/2024. -// - -import XCTest - -final class NearFutureTests: XCTestCase { - - override func setUpWithError() throws { - // Put setup code here. This method is called before the invocation of each test method in the class. - } - - override func tearDownWithError() throws { - // Put teardown code here. This method is called after the invocation of each test method in the class. - } - - func testExample() throws { - // This is an example of a functional test case. - // Use XCTAssert and related functions to verify your tests produce the correct results. - // Any test you write for XCTest can be annotated as throws and async. - // Mark your test throws to produce an unexpected failure when your test encounters an uncaught error. - // Mark your test async to allow awaiting for asynchronous code to complete. Check the results with assertions afterwards. - } - - func testPerformanceExample() throws { - // This is an example of a performance test case. - measure { - // Put the code you want to measure the time of here. - } - } - -} diff --git a/NearFutureUITests/NearFutureUITests.swift b/NearFutureUITests/NearFutureUITests.swift deleted file mode 100644 index 2c2e0b0..0000000 --- a/NearFutureUITests/NearFutureUITests.swift +++ /dev/null @@ -1,41 +0,0 @@ -// -// NearFutureUITests.swift -// NearFutureUITests -// -// Created by Nihaal Sharma on 31/12/2024. -// - -import XCTest - -final class NearFutureUITests: XCTestCase { - - override func setUpWithError() throws { - // Put setup code here. This method is called before the invocation of each test method in the class. - - // In UI tests it is usually best to stop immediately when a failure occurs. - continueAfterFailure = false - - // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. - } - - override func tearDownWithError() throws { - // Put teardown code here. This method is called after the invocation of each test method in the class. - } - - func testExample() throws { - // UI tests must launch the application that they test. - let app = XCUIApplication() - app.launch() - - // Use XCTAssert and related functions to verify your tests produce the correct results. - } - - func testLaunchPerformance() throws { - if #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 7.0, *) { - // This measures how long it takes to launch your application. - measure(metrics: [XCTApplicationLaunchMetric()]) { - XCUIApplication().launch() - } - } - } -} diff --git a/NearFutureUITests/NearFutureUITestsLaunchTests.swift b/NearFutureUITests/NearFutureUITestsLaunchTests.swift deleted file mode 100644 index 717973f..0000000 --- a/NearFutureUITests/NearFutureUITestsLaunchTests.swift +++ /dev/null @@ -1,32 +0,0 @@ -// -// NearFutureUITestsLaunchTests.swift -// NearFutureUITests -// -// Created by Nihaal Sharma on 31/12/2024. -// - -import XCTest - -final class NearFutureUITestsLaunchTests: XCTestCase { - - override class var runsForEachTargetApplicationUIConfiguration: Bool { - true - } - - override func setUpWithError() throws { - continueAfterFailure = false - } - - func testLaunch() throws { - let app = XCUIApplication() - app.launch() - - // Insert steps here to perform after app launch but before taking a screenshot, - // such as logging into a test account or navigating somewhere in the app - - let attachment = XCTAttachment(screenshot: app.screenshot()) - attachment.name = "Launch Screen" - attachment.lifetime = .keepAlways - add(attachment) - } -} diff --git a/NearFutureWidgets/Assets.xcassets/AccentColor.colorset/Contents.json b/NearFutureWidgets/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/NearFutureWidgets/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/NearFutureWidgets/Assets.xcassets/AppIcon.appiconset/Contents.json b/NearFutureWidgets/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..13613e3 --- /dev/null +++ b/NearFutureWidgets/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,13 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/NearFutureWidgets/Assets.xcassets/Contents.json b/NearFutureWidgets/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/NearFutureWidgets/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/NearFutureWidgets/Assets.xcassets/WidgetBackground.colorset/Contents.json b/NearFutureWidgets/Assets.xcassets/WidgetBackground.colorset/Contents.json new file mode 100644 index 0000000..78d3a40 --- /dev/null +++ b/NearFutureWidgets/Assets.xcassets/WidgetBackground.colorset/Contents.json @@ -0,0 +1,20 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "extended-srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.135", + "green" : "0.135", + "red" : "0.135" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/NearFutureWidgets/Info.plist b/NearFutureWidgets/Info.plist new file mode 100644 index 0000000..0f118fb --- /dev/null +++ b/NearFutureWidgets/Info.plist @@ -0,0 +1,11 @@ + + + + + NSExtension + + NSExtensionPointIdentifier + com.apple.widgetkit-extension + + + diff --git a/NearFutureWidgets/NearFutureWidgets.swift b/NearFutureWidgets/NearFutureWidgets.swift new file mode 100644 index 0000000..cefacc8 --- /dev/null +++ b/NearFutureWidgets/NearFutureWidgets.swift @@ -0,0 +1,208 @@ +// +// NearFutureWidgets.swift +// NearFutureWidgets +// +// Created by Nihaal Sharma on 02/01/2025. +// + +import WidgetKit +import SwiftUI + +// Timeline Entry for Widget +struct EventWidgetEntry: TimelineEntry { + let date: Date + let events: [Event] +} + +// Timeline Provider to handle widget data +struct EventWidgetProvider: TimelineProvider { + func placeholder(in context: Context) -> EventWidgetEntry { + EventWidgetEntry(date: Date(), events: []) + } + + func getSnapshot(in context: Context, completion: @escaping (EventWidgetEntry) -> ()) { + let entry = EventWidgetEntry(date: Date(), events: getEvents()) + completion(entry) + } + + func getTimeline(in context: Context, completion: @escaping (Timeline) -> ()) { + let events = getEvents() + let currentDate = Date() + + // Timeline entry for the current date + let entry = EventWidgetEntry(date: currentDate, events: events) + + // Set timeline to refresh every 15 minutes + let nextUpdateDate = Calendar.current.date(byAdding: .minute, value: 15, to: currentDate)! + let timeline = Timeline(entries: [entry], policy: .after(nextUpdateDate)) + + completion(timeline) + } + + private func getEvents() -> [Event] { + let viewModel = EventViewModel() + viewModel.loadEvents() + return viewModel.events + } +} + +// Event Widget View +struct EventWidgetView: View { + var entry: EventWidgetEntry + @Environment(\.widgetFamily) var widgetFamily + var showedEvents: Int { + switch widgetFamily { + case .systemSmall: + return 3 + case .systemMedium: + return 3 + case .systemLarge: + return 6 + default: + return 3 + } + } + + var body: some View { + let isLarge = widgetFamily == .systemLarge + let events = entry.events + VStack { + Text("Upcoming Events") + .font(.subheadline) + .padding(.top, -12) +// .padding(.bottom, -5) + + ForEach(events.prefix(showedEvents), id: \.id) { event in + HStack { + RoundedRectangle(cornerRadius: 5) + .frame(width: 5) + .frame(maxHeight: isLarge ? 50 : 30) + .foregroundStyle(event.color.color) + .padding(.leading, -18) + .padding(.vertical, 2) + VStack(alignment: .leading) { + HStack { + Image(systemName: event.symbol) + .resizable() + .scaledToFit() + .frame(width: 15, height: 15) + .foregroundStyle(event.color.color) + Text("\(event.name)") + .font(.footnote) + .padding(.leading, -5) + } + + if isLarge { + if !event.description.isEmpty { + Text(event.description) + .font(.caption2) + .foregroundColor(.gray) + .padding(.top, -5) + } + Text(event.date.formatted(date: .long, time: .omitted)) + .font(.caption2) + .foregroundColor(event.color.color) + .padding(.top, -5) + } + if event.recurrence != .none { + Text("\(event.recurrence.rawValue.capitalized)") + .font(.caption2) + .padding(.top, -5) + } + } + .padding(.leading, -15) + + Spacer() + + Text(daysUntilEvent(event.date, short: !isLarge)) + .font(.caption) + .foregroundColor(event.color.color) + .padding(.trailing, -12) + } + } + Spacer() + if showedEvents < events.count { + let xMoreEvents = events.count - showedEvents + Text("+\(xMoreEvents) more event\(xMoreEvents == 1 ? "" : "s")") + .font(.caption2) + .foregroundStyle(.gray) + .padding(.top, -5) + .padding(.bottom, -15) + } + } + .containerBackground(Color.widgetBackground, for: .widget) + } +} + +struct Widget_Previews: PreviewProvider { + static var events = [ + Event( + name: "Event Name", + symbol: "gear", + color: ColorCodable(.blue), + description: "Event description", + date: Date.distantFuture, + recurrence: .yearly + ), + Event( + name: "A Day", + symbol: "star", + color: ColorCodable(.orange), + description: "description", + date: Date(), + recurrence: .daily + ), + Event( + name: "A Day", + symbol: "star", + color: ColorCodable(.orange), + description: "description", + date: Date(), + recurrence: .daily + ), + Event( + name: "A Day", + symbol: "star", + color: ColorCodable(.orange), + description: "description", + date: Date(), + recurrence: .daily + ), + Event( + name: "A Day", + symbol: "star", + color: ColorCodable(.orange), + description: "description", + date: Date(), + recurrence: .daily + ) + ] + static var previews: some View { + Group { + EventWidgetView( + entry: EventWidgetEntry( + date: Date(), + events: events + ) + ) + .previewContext(WidgetPreviewContext(family: .systemLarge)) + .previewDisplayName("Large") + EventWidgetView( + entry: EventWidgetEntry( + date: Date(), + events: events + ) + ) + .previewContext(WidgetPreviewContext(family: .systemMedium)) + .previewDisplayName("Medium") + EventWidgetView( + entry: EventWidgetEntry( + date: Date(), + events: events + ) + ) + .previewContext(WidgetPreviewContext(family: .systemSmall)) + .previewDisplayName("Small") + } + } +} diff --git a/NearFutureWidgets/NearFutureWidgetsBundle.swift b/NearFutureWidgets/NearFutureWidgetsBundle.swift new file mode 100644 index 0000000..654f90b --- /dev/null +++ b/NearFutureWidgets/NearFutureWidgetsBundle.swift @@ -0,0 +1,31 @@ +// +// NearFutureWidgetsBundle.swift +// NearFutureWidgets +// +// Created by Nihaal Sharma on 02/01/2025. +// + +import WidgetKit +import SwiftUI + +//@main +//struct NearFutureWidgetsBundle: WidgetBundle { +// var body: some Widget { +// NearFutureWidgets() +// NearFutureWidgetsLiveActivity() +// } +//} + +@main +struct NearFutureWidget: Widget { + let kind: String = "NearFutureWidget" + + var body: some WidgetConfiguration { + StaticConfiguration(kind: kind, provider: EventWidgetProvider()) { entry in + EventWidgetView(entry: entry) + } + .configurationDisplayName("Upcoming Events Widget") + .description("Displays your upcoming events.") + .supportedFamilies([.systemSmall, .systemMedium, .systemLarge]) + } +} diff --git a/NearFutureWidgets/NearFutureWidgetsExtension.entitlements b/NearFutureWidgets/NearFutureWidgetsExtension.entitlements new file mode 100644 index 0000000..9fcd64e --- /dev/null +++ b/NearFutureWidgets/NearFutureWidgetsExtension.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.application-groups + + group.com.neon443.NearFuture + + + diff --git a/NearFutureWidgets/NearFutureWidgetsLiveActivity.swift b/NearFutureWidgets/NearFutureWidgetsLiveActivity.swift new file mode 100644 index 0000000..21c5d09 --- /dev/null +++ b/NearFutureWidgets/NearFutureWidgetsLiveActivity.swift @@ -0,0 +1,80 @@ +// +// NearFutureWidgetsLiveActivity.swift +// NearFutureWidgets +// +// Created by Nihaal Sharma on 02/01/2025. +// + +import ActivityKit +import WidgetKit +import SwiftUI + +struct NearFutureWidgetsAttributes: ActivityAttributes { + public struct ContentState: Codable, Hashable { + // Dynamic stateful properties about your activity go here! + var emoji: String + } + + // Fixed non-changing properties about your activity go here! + var name: String +} + +struct NearFutureWidgetsLiveActivity: Widget { + var body: some WidgetConfiguration { + ActivityConfiguration(for: NearFutureWidgetsAttributes.self) { context in + // Lock screen/banner UI goes here + VStack { + Text("Hello \(context.state.emoji)") + } + .activityBackgroundTint(Color.cyan) + .activitySystemActionForegroundColor(Color.black) + + } dynamicIsland: { context in + DynamicIsland { + // Expanded UI goes here. Compose the expanded UI through + // various regions, like leading/trailing/center/bottom + DynamicIslandExpandedRegion(.leading) { + Text("Leading") + } + DynamicIslandExpandedRegion(.trailing) { + Text("Trailing") + } + DynamicIslandExpandedRegion(.bottom) { + Text("Bottom \(context.state.emoji)") + // more content + } + } compactLeading: { + Text("L") + } compactTrailing: { + Text("T \(context.state.emoji)") + } minimal: { + Text(context.state.emoji) + } + .widgetURL(URL(string: "http://www.apple.com")) + .keylineTint(Color.red) + } + } +} + +extension NearFutureWidgetsAttributes { + fileprivate static var preview: NearFutureWidgetsAttributes { + NearFutureWidgetsAttributes(name: "World") + } +} + +extension NearFutureWidgetsAttributes.ContentState { + fileprivate static var smiley: NearFutureWidgetsAttributes.ContentState { + NearFutureWidgetsAttributes.ContentState(emoji: "πŸ˜€") + } + + fileprivate static var starEyes: NearFutureWidgetsAttributes.ContentState { + NearFutureWidgetsAttributes.ContentState(emoji: "🀩") + } +} + +#Preview("Notification", as: .content, using: NearFutureWidgetsAttributes.preview) { + NearFutureWidgetsLiveActivity() +} contentStates: { + NearFutureWidgetsAttributes.ContentState.smiley + NearFutureWidgetsAttributes.ContentState.starEyes +} diff --git a/README.md b/README.md index 729cbb6..8133a37 100644 --- a/README.md +++ b/README.md @@ -7,11 +7,11 @@ Near Future is a SwiftUI App to help people to track upcoming events - Holidays, - [x] Descriptions - [x] Icons - [x] Event colors -- [ ] Recurrence +- [x] Recurrence - [x] Search - [ ] Notifications - [ ] Apple Watch App -- [ ] Home Screen Widgets +- [x] Home Screen Widgets - [ ] Lock Screen Widgets ## Features