// // Copyright 2022 New Vector Ltd // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // import Foundation @objcMembers class ReviewSessionAlertSnoozeController: NSObject { private let userDefaults: UserDefaults private let snoozeDateKey = "ReviewSessionAlertSnoozeController_snoozeDateKey" private let minDaysBetweenAlerts = 7 // for Objective-C convenience override init() { self.init(userDefaults: UserDefaults.standard) } init(userDefaults: UserDefaults = UserDefaults.standard) { self.userDefaults = userDefaults } func isSnoozed() -> Bool { guard let lastDisplayedDate = userDefaults.object(forKey: snoozeDateKey) as? Date else { return false } return lastDisplayedDate.daysBetween(date: Date()) <= minDaysBetweenAlerts } func snooze() { userDefaults.set(Date(), forKey: snoozeDateKey) } func clearSnooze() { userDefaults.removeObject(forKey: snoozeDateKey) } }