you asked for the haptics...

This commit is contained in:
neon443
2025-05-21 21:43:47 +01:00
parent bcfe23a17e
commit d1c1144ad8
6 changed files with 58 additions and 1 deletions

View File

@@ -26,6 +26,7 @@
A90D49612DDE626300781124 /* Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A90D49602DDE626300781124 /* Settings.swift */; }; A90D49612DDE626300781124 /* Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A90D49602DDE626300781124 /* Settings.swift */; };
A90D49622DDE626300781124 /* 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 */; }; 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 */; }; A914FA4B2DD26C6800856265 /* HomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A914FA4A2DD26C0F00856265 /* HomeView.swift */; };
A914FA4D2DD2768900856265 /* WhatsNewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A914FA4C2DD2768900856265 /* WhatsNewView.swift */; }; A914FA4D2DD2768900856265 /* WhatsNewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A914FA4C2DD2768900856265 /* WhatsNewView.swift */; };
A914FA4F2DD276D200856265 /* AboutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A914FA4E2DD276D200856265 /* AboutView.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 = "<group>"; }; A90D495D2DDE3C7400781124 /* NFCommands.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NFCommands.swift; sourceTree = "<group>"; };
A90D49602DDE626300781124 /* Settings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Settings.swift; sourceTree = "<group>"; }; A90D49602DDE626300781124 /* Settings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Settings.swift; sourceTree = "<group>"; };
A90D49652DDE658100781124 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; A90D49652DDE658100781124 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
A90D49662DDE6FAF00781124 /* YouAsked.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YouAsked.swift; sourceTree = "<group>"; };
A90FDE222DC0D4310012790C /* Config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = "<group>"; }; A90FDE222DC0D4310012790C /* Config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = "<group>"; };
A914FA4A2DD26C0F00856265 /* HomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeView.swift; sourceTree = "<group>"; }; A914FA4A2DD26C0F00856265 /* HomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeView.swift; sourceTree = "<group>"; };
A914FA4C2DD2768900856265 /* WhatsNewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = WhatsNewView.swift; path = NearFuture/Views/Settings/WhatsNewView.swift; sourceTree = SOURCE_ROOT; }; 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; isa = PBXGroup;
children = ( children = (
A949F83F2DCAABE00064DCA0 /* ContentView.swift */, A949F83F2DCAABE00064DCA0 /* ContentView.swift */,
A90D49662DDE6FAF00781124 /* YouAsked.swift */,
A949F8422DCAABE00064DCA0 /* Home */, A949F8422DCAABE00064DCA0 /* Home */,
A949F83E2DCAABE00064DCA0 /* Events */, A949F83E2DCAABE00064DCA0 /* Events */,
A949F83B2DCAABE00064DCA0 /* Archive */, A949F83B2DCAABE00064DCA0 /* Archive */,
@@ -512,6 +515,7 @@
A949F8512DCAABE00064DCA0 /* ExportView.swift in Sources */, A949F8512DCAABE00064DCA0 /* ExportView.swift in Sources */,
A90D49532DDE2D0000781124 /* Extensions.swift in Sources */, A90D49532DDE2D0000781124 /* Extensions.swift in Sources */,
A949F8522DCAABE00064DCA0 /* iCloudSettingsView.swift in Sources */, A949F8522DCAABE00064DCA0 /* iCloudSettingsView.swift in Sources */,
A90D49672DDE6FAF00781124 /* YouAsked.swift in Sources */,
A949F8532DCAABE00064DCA0 /* ImportView.swift in Sources */, A949F8532DCAABE00064DCA0 /* ImportView.swift in Sources */,
A949F8542DCAABE00064DCA0 /* SettingsView.swift in Sources */, A949F8542DCAABE00064DCA0 /* SettingsView.swift in Sources */,
A949F8552DCAABE00064DCA0 /* StatsView.swift in Sources */, A949F8552DCAABE00064DCA0 /* StatsView.swift in Sources */,

View File

@@ -25,6 +25,9 @@ struct ContentView: View {
@State var selection: Tab = .home @State var selection: Tab = .home
var body: some View { var body: some View {
if #available(iOS 17.5, *) {
YouAsked()
}
TabView(selection: $selection) { TabView(selection: $selection) {
HomeView(viewModel: viewModel, settingsModel: settingsModel) HomeView(viewModel: viewModel, settingsModel: settingsModel)
.tabItem { .tabItem {

View File

@@ -76,6 +76,7 @@ struct EventListView: View {
Text("\(daysUntilEvent(event.date).long)") Text("\(daysUntilEvent(event.date).long)")
.font(.subheadline) .font(.subheadline)
.foregroundStyle(event.date.timeIntervalSinceNow < 0 ? .red : .one) .foregroundStyle(event.date.timeIntervalSinceNow < 0 ? .red : .one)
.multilineTextAlignment(.trailing)
} }
Button() { Button() {
withAnimation { withAnimation {

View File

@@ -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")
}
}

View File

@@ -3,6 +3,9 @@
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>NSExtension</key> <key>NSExtension</key>
<array/> <dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.widgetkit-extension</string>
</dict>
</dict> </dict>
</plist> </plist>

View File

@@ -11,6 +11,7 @@ import SwiftUI
import WidgetKit import WidgetKit
import UserNotifications import UserNotifications
import AppIntents import AppIntents
import AudioToolbox
#if canImport(AppKit) #if canImport(AppKit)
import AppKit import AppKit
import IOKit import IOKit
@@ -168,6 +169,7 @@ class EventViewModel: ObservableObject, @unchecked Sendable {
if load { if load {
loadEvents() loadEvents()
} }
// AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)
} }
//appgroup or regular userdefaults //appgroup or regular userdefaults