Compare commits

...

2 Commits

Author SHA1 Message Date
6fd11575af
Add sounds for visiting chef notifications
Oops, I missed that this had to be manually set up. Now requests the .sound permission and sets the default sound for notifications when scheduling them.
2025-12-08 14:33:38 -05:00
20f1b3df59
Quck fixes
- Maps button now works properly, I figured out the URL scheme needed to direct to a map location
- Notifications will now be automatically rescheduled when changing the notification offset
2025-12-08 12:31:29 -05:00
4 changed files with 12 additions and 4 deletions

View File

@ -265,7 +265,7 @@
CODE_SIGN_ENTITLEMENTS = "RIT Dining/RIT Dining.entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 22;
CURRENT_PROJECT_VERSION = 24;
DEVELOPMENT_TEAM = 5GF7GKNTK4;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
@ -300,7 +300,7 @@
CODE_SIGN_ENTITLEMENTS = "RIT Dining/RIT Dining.entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 22;
CURRENT_PROJECT_VERSION = 24;
DEVELOPMENT_TEAM = 5GF7GKNTK4;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;

View File

@ -23,6 +23,7 @@ func scheduleVisitingChefNotif(name: String, location: String, startTime: Date,
content.title = "\(name) Is On Campus Today"
}
content.body = "\(name) will be at \(location) from \(dateDisplay.string(from: startTime))-\(dateDisplay.string(from: endTime))"
content.sound = .default
// Get the time that we're going to schedule the notification for, which is a specified number of hours before the chef
// shows up. This is configurable from the notification settings.

View File

@ -49,7 +49,7 @@ func parseLocationInfo(location: DiningLocationParser, forDate: Date?) -> Dining
// Generate a maps URL from the mdoId key. This is required because the mapsUrl served by TigerCenter is not compatible with
// the new RIT map that was deployed in December 2025.
let mapsUrl = "https://maps.rit.edu/details/\(location.mdoId)"
let mapsUrl = "https://maps.rit.edu/?mdo_id=\(location.mdoId)"
// Early return if there are no events, good for things like the food trucks which can very easily have no openings in a week.
if location.events.isEmpty {

View File

@ -50,6 +50,13 @@ struct VisitingChefPush: View {
Text("3 Hours Before").tag(3)
}
.disabled(!pushAllowed || !pushEnabled)
.onChange(of: notificationOffset) {
Task {
// If we changed the offset, we need to reschedule everything.
await model.cancelAllPushes()
await model.scheduleAllPushes()
}
}
}
Section(footer: Text("Get notified when and where a specific visiting chef will be on campus.")) {
ForEach(visitingChefs, id: \.self) { chef in
@ -122,7 +129,7 @@ struct VisitingChefPush: View {
Task {
let center = UNUserNotificationCenter.current()
do {
try await center.requestAuthorization(options: [.alert])
try await center.requestAuthorization(options: [.alert, .sound])
} catch {
print(error)
}