diff --git a/NearFuture.xcodeproj/project.pbxproj b/NearFuture.xcodeproj/project.pbxproj index ce4a270..e5a6e4b 100644 --- a/NearFuture.xcodeproj/project.pbxproj +++ b/NearFuture.xcodeproj/project.pbxproj @@ -26,6 +26,7 @@ A90D49612DDE626300781124 /* Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A90D49602DDE626300781124 /* Settings.swift */; }; A90D49622DDE626300781124 /* Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A90D49602DDE626300781124 /* Settings.swift */; }; A90D49632DDE626300781124 /* Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A90D49602DDE626300781124 /* Settings.swift */; }; + A90D49672DDE6FAF00781124 /* YouAsked.swift in Sources */ = {isa = PBXBuildFile; fileRef = A90D49662DDE6FAF00781124 /* YouAsked.swift */; }; A914FA4B2DD26C6800856265 /* HomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A914FA4A2DD26C0F00856265 /* HomeView.swift */; }; A914FA4D2DD2768900856265 /* WhatsNewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A914FA4C2DD2768900856265 /* WhatsNewView.swift */; }; A914FA4F2DD276D200856265 /* AboutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A914FA4E2DD276D200856265 /* AboutView.swift */; }; @@ -92,6 +93,7 @@ A90D495D2DDE3C7400781124 /* NFCommands.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NFCommands.swift; sourceTree = ""; }; A90D49602DDE626300781124 /* Settings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Settings.swift; sourceTree = ""; }; A90D49652DDE658100781124 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A90D49662DDE6FAF00781124 /* YouAsked.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YouAsked.swift; sourceTree = ""; }; A90FDE222DC0D4310012790C /* Config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; A914FA4A2DD26C0F00856265 /* HomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeView.swift; sourceTree = ""; }; A914FA4C2DD2768900856265 /* WhatsNewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = WhatsNewView.swift; path = NearFuture/Views/Settings/WhatsNewView.swift; sourceTree = SOURCE_ROOT; }; @@ -304,6 +306,7 @@ isa = PBXGroup; children = ( A949F83F2DCAABE00064DCA0 /* ContentView.swift */, + A90D49662DDE6FAF00781124 /* YouAsked.swift */, A949F8422DCAABE00064DCA0 /* Home */, A949F83E2DCAABE00064DCA0 /* Events */, A949F83B2DCAABE00064DCA0 /* Archive */, @@ -512,6 +515,7 @@ A949F8512DCAABE00064DCA0 /* ExportView.swift in Sources */, A90D49532DDE2D0000781124 /* Extensions.swift in Sources */, A949F8522DCAABE00064DCA0 /* iCloudSettingsView.swift in Sources */, + A90D49672DDE6FAF00781124 /* YouAsked.swift in Sources */, A949F8532DCAABE00064DCA0 /* ImportView.swift in Sources */, A949F8542DCAABE00064DCA0 /* SettingsView.swift in Sources */, A949F8552DCAABE00064DCA0 /* StatsView.swift in Sources */, diff --git a/NearFuture/Views/ContentView.swift b/NearFuture/Views/ContentView.swift index 04adc0f..c9a0e03 100644 --- a/NearFuture/Views/ContentView.swift +++ b/NearFuture/Views/ContentView.swift @@ -25,6 +25,9 @@ struct ContentView: View { @State var selection: Tab = .home var body: some View { + if #available(iOS 17.5, *) { + YouAsked() + } TabView(selection: $selection) { HomeView(viewModel: viewModel, settingsModel: settingsModel) .tabItem { diff --git a/NearFuture/Views/Home/EventListView.swift b/NearFuture/Views/Home/EventListView.swift index 32c393c..a42f983 100644 --- a/NearFuture/Views/Home/EventListView.swift +++ b/NearFuture/Views/Home/EventListView.swift @@ -76,6 +76,7 @@ struct EventListView: View { Text("\(daysUntilEvent(event.date).long)") .font(.subheadline) .foregroundStyle(event.date.timeIntervalSinceNow < 0 ? .red : .one) + .multilineTextAlignment(.trailing) } Button() { withAnimation { diff --git a/NearFuture/Views/YouAsked.swift b/NearFuture/Views/YouAsked.swift new file mode 100644 index 0000000..1b86c12 --- /dev/null +++ b/NearFuture/Views/YouAsked.swift @@ -0,0 +1,44 @@ +// +// YouAsked.swift +// NearFuture +// +// Created by neon443 on 21/05/2025. +// + +import SwiftUI +import AudioToolbox + +@available(iOS 17.5, *) +struct YouAsked: View { + let startDate: Date = Date() + @State var timeElapsed: Int = 0 + let timer = Timer.publish(every: 0.3, on: .current, in: .common).autoconnect() + + var body: some View { + Text("\(timeElapsed)") + .onReceive(timer) { firedDate in + timeElapsed = Int(firedDate.timeIntervalSince(startDate)) + } + .sensoryFeedback(.alignment, trigger: timeElapsed) + .sensoryFeedback(.decrease, trigger: timeElapsed) + .sensoryFeedback(.error, trigger: timeElapsed) + .sensoryFeedback(.impact, trigger: timeElapsed) + .sensoryFeedback(.increase, trigger: timeElapsed) + .sensoryFeedback(.levelChange, trigger: timeElapsed) + .sensoryFeedback(.pathComplete, trigger: timeElapsed) + .sensoryFeedback(.selection, trigger: timeElapsed) + .sensoryFeedback(.start, trigger: timeElapsed) + .sensoryFeedback(.stop, trigger: timeElapsed) + .sensoryFeedback(.success, trigger: timeElapsed) + .sensoryFeedback(.warning, trigger: timeElapsed) + .sensoryFeedback(.warning, trigger: timeElapsed) + } +} + +#Preview { + if #available(iOS 17.5, *) { + YouAsked() + } else { + Text("update to ios 17 lil bro") + } +} diff --git a/NearFutureWidgets/Info.plist b/NearFutureWidgets/Info.plist index fa24d3d..0f118fb 100644 --- a/NearFutureWidgets/Info.plist +++ b/NearFutureWidgets/Info.plist @@ -3,6 +3,9 @@ NSExtension - + + NSExtensionPointIdentifier + com.apple.widgetkit-extension + diff --git a/Shared/Model/Events.swift b/Shared/Model/Events.swift index 70f1a0f..cf08f85 100644 --- a/Shared/Model/Events.swift +++ b/Shared/Model/Events.swift @@ -11,6 +11,7 @@ import SwiftUI import WidgetKit import UserNotifications import AppIntents +import AudioToolbox #if canImport(AppKit) import AppKit import IOKit @@ -168,6 +169,7 @@ class EventViewModel: ObservableObject, @unchecked Sendable { if load { loadEvents() } +// AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) } //appgroup or regular userdefaults