mirror of
https://github.com/neon443/NearFuture.git
synced 2026-03-11 06:49:12 +00:00
you asked for the haptics...
This commit is contained in:
@@ -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 = "<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>"; };
|
||||
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>"; };
|
||||
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; };
|
||||
@@ -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 */,
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
44
NearFuture/Views/YouAsked.swift
Normal file
44
NearFuture/Views/YouAsked.swift
Normal 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")
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,9 @@
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>NSExtension</key>
|
||||
<array/>
|
||||
<dict>
|
||||
<key>NSExtensionPointIdentifier</key>
|
||||
<string>com.apple.widgetkit-extension</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user