Files
bundesmessenger-ios/bwi/NotificationTimes/NotificationTimes.swift
T
2022-06-02 03:41:21 +00:00

97 lines
3.9 KiB
Swift

//
/*
* Copyright (c) 2022 BWI GmbH
*
* 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
import Combine
@available(iOS 14.0, *)
@objcMembers class NotificationTimes: NSObject, Codable {
static let shared = NotificationTimes()
static let sharedUserDefaultsKey = "notificationTimes"
var isEnabled: Bool
var monday, tuesday, wednesday, thursday, friday, saturday, sunday : NotificationTimesWeekday
var rooms: [String : Bool]
func weekday(index: Int) -> NotificationTimesWeekday {
switch index {
case 0:
return monday
case 1:
return tuesday
case 2:
return wednesday
case 3:
return thursday
case 4:
return friday
case 5:
return saturday
case 6:
return sunday
default:
assertionFailure("weekday index outside range 0...6")
return monday
}
}
override init() {
isEnabled = false
monday = NotificationTimesWeekday(id: 0,
name: NSLocalizedString("bwi_notification_times_monday", tableName: "Bwi", comment: ""),
shortName: NSLocalizedString("bwi_notification_times_monday_short", tableName: "Bwi", comment: ""))
tuesday = NotificationTimesWeekday(id: 1,
name: NSLocalizedString("bwi_notification_times_tuesday", tableName: "Bwi", comment: ""),
shortName: NSLocalizedString("bwi_notification_times_tuesday_short", tableName: "Bwi", comment: ""))
wednesday = NotificationTimesWeekday(id: 2,
name: NSLocalizedString("bwi_notification_times_wednesday", tableName: "Bwi", comment: ""),
shortName: NSLocalizedString("bwi_notification_times_wednesday_short", tableName: "Bwi", comment: ""))
thursday = NotificationTimesWeekday(id: 3,
name: NSLocalizedString("bwi_notification_times_thursday", tableName: "Bwi", comment: ""),
shortName: NSLocalizedString("bwi_notification_times_thursday_short", tableName: "Bwi", comment: ""))
friday = NotificationTimesWeekday(id: 4,
name: NSLocalizedString("bwi_notification_times_friday", tableName: "Bwi", comment: ""),
shortName: NSLocalizedString("bwi_notification_times_friday_short", tableName: "Bwi", comment: ""))
saturday = NotificationTimesWeekday(id: 5,
name: NSLocalizedString("bwi_notification_times_saturday", tableName: "Bwi", comment: ""),
shortName: NSLocalizedString("bwi_notification_times_saturday_short", tableName: "Bwi", comment: ""))
sunday = NotificationTimesWeekday(id: 6,
name: NSLocalizedString("bwi_notification_times_sunday", tableName: "Bwi", comment: ""),
shortName: NSLocalizedString("bwi_notification_times_sunday_short", tableName: "Bwi", comment: ""))
rooms = [:]
}
func isEnabledForRoom(roomID: String, isDirect: Bool) -> Bool {
if isDirect {
return rooms[roomID] ?? false
} else {
return rooms[roomID] ?? true
}
}
func enableForRoom(roomID: String) {
rooms[roomID] = true
}
func disableForRoom(roomID: String) {
rooms[roomID] = false
}
}