diff --git a/Stats/AppDelegate.swift b/Stats/AppDelegate.swift index b3a050ea..59da986a 100755 --- a/Stats/AppDelegate.swift +++ b/Stats/AppDelegate.swift @@ -91,7 +91,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele self.updateActivity.invalidate() self.updateActivity.repeats = true - guard let updateInterval = AppUpdateIntervals(rawValue: store.string(key: "update-interval", defaultValue: AppUpdateIntervals.atStart.rawValue)) else { + guard let updateInterval = AppUpdateInterval(rawValue: store.string(key: "update-interval", defaultValue: AppUpdateInterval.atStart.rawValue)) else { return } os_log(.debug, log: log, "Application update interval is '%s'", "\(updateInterval.rawValue)") diff --git a/Stats/Supporting Files/cs.lproj/Localizable.strings b/Stats/Supporting Files/cs.lproj/Localizable.strings index bdc79480..d79b713e 100644 --- a/Stats/Supporting Files/cs.lproj/Localizable.strings +++ b/Stats/Supporting Files/cs.lproj/Localizable.strings @@ -2,9 +2,12 @@ // Localizable.strings // Stats // +// +// // Created by @mpl75 on 11/01/2021. // // +// // Words "Unknown" = "Neznámý"; @@ -45,6 +48,11 @@ // Application settings "Update application" = "Aktualizovat aplikaci"; "Check for updates" = "Zkontrolovat aktualizace"; +"At start" = "At start"; +"Once per day" = "Once per day"; +"Once per week" = "Once per week"; +"Once per month" = "Once per month"; +"Never" = "Never"; "Check for update" = "Zkontrolovat aktualizace"; "Show icon in dock" = "Zobrazovat ikonu v Docku"; "Start at login" = "Spustit po přihlášení"; diff --git a/Stats/Supporting Files/de.lproj/Localizable.strings b/Stats/Supporting Files/de.lproj/Localizable.strings index d2e1e222..0279bfe4 100644 --- a/Stats/Supporting Files/de.lproj/Localizable.strings +++ b/Stats/Supporting Files/de.lproj/Localizable.strings @@ -48,6 +48,11 @@ // Application settings "Update application" = "Applikation aktualisieren"; "Check for updates" = "Nach Updates suchen"; +"At start" = "At start"; +"Once per day" = "Once per day"; +"Once per week" = "Once per week"; +"Once per month" = "Once per month"; +"Never" = "Never"; "Check for update" = "Nach Updates suchen"; "Show icon in dock" = "Symbol im Dock anzeigen"; "Start at login" = "Beim Login starten"; diff --git a/Stats/Supporting Files/en.lproj/Localizable.strings b/Stats/Supporting Files/en.lproj/Localizable.strings index efe67d29..1b203d48 100644 --- a/Stats/Supporting Files/en.lproj/Localizable.strings +++ b/Stats/Supporting Files/en.lproj/Localizable.strings @@ -48,6 +48,11 @@ // Application settings "Update application" = "Update application"; "Check for updates" = "Check for updates"; +"At start" = "At start"; +"Once per day" = "Once per day"; +"Once per week" = "Once per week"; +"Once per month" = "Once per month"; +"Never" = "Never"; "Check for update" = "Check for update"; "Show icon in dock" = "Show icon in dock"; "Start at login" = "Start at login"; diff --git a/Stats/Supporting Files/es.lproj/Localizable.strings b/Stats/Supporting Files/es.lproj/Localizable.strings index 6ca43fa7..78c503da 100644 --- a/Stats/Supporting Files/es.lproj/Localizable.strings +++ b/Stats/Supporting Files/es.lproj/Localizable.strings @@ -49,6 +49,11 @@ // Application settings "Update application" = "Actualizar la aplicación"; "Check for updates" = "Buscar actualizaciones"; +"At start" = "At start"; +"Once per day" = "Once per day"; +"Once per week" = "Once per week"; +"Once per month" = "Once per month"; +"Never" = "Never"; "Check for update" = "Buscar actualización"; "Show icon in dock" = "Muestra el icono en el dock"; "Start at login" = "Arrancar al iniciar sesión"; diff --git a/Stats/Supporting Files/fr.lproj/Localizable.strings b/Stats/Supporting Files/fr.lproj/Localizable.strings index 220a49f4..7ca2bf51 100644 --- a/Stats/Supporting Files/fr.lproj/Localizable.strings +++ b/Stats/Supporting Files/fr.lproj/Localizable.strings @@ -48,6 +48,11 @@ // Application settings "Update application" = "Mettre à jour l'application"; "Check for updates" = "Rechercher des mises à jour"; +"At start" = "At start"; +"Once per day" = "Once per day"; +"Once per week" = "Once per week"; +"Once per month" = "Once per month"; +"Never" = "Never"; "Check for update" = "Vérifier la mise à jour"; "Show icon in dock" = "Afficher l'icône dans le dock"; "Start at login" = "Démarrer au lancement"; diff --git a/Stats/Supporting Files/it.lproj/Localizable.strings b/Stats/Supporting Files/it.lproj/Localizable.strings index 427ba680..2bb31415 100644 --- a/Stats/Supporting Files/it.lproj/Localizable.strings +++ b/Stats/Supporting Files/it.lproj/Localizable.strings @@ -48,6 +48,11 @@ // Application settings "Update application" = "Aggiorna applicazione"; "Check for updates" = "Controlla aggiornamenti"; +"At start" = "At start"; +"Once per day" = "Once per day"; +"Once per week" = "Once per week"; +"Once per month" = "Once per month"; +"Never" = "Never"; "Check for update" = "Controlla aggiornamento"; "Show icon in dock" = "Mostra icona nel dock"; "Start at login" = "Avvia al login"; diff --git a/Stats/Supporting Files/ja.lproj/Localizable.strings b/Stats/Supporting Files/ja.lproj/Localizable.strings index aee2d1d7..0e90e2c7 100644 --- a/Stats/Supporting Files/ja.lproj/Localizable.strings +++ b/Stats/Supporting Files/ja.lproj/Localizable.strings @@ -48,6 +48,11 @@ // Application settings "Update application" = "アプリをアップデートする"; "Check for updates" = "アップデートの確認頻度"; +"At start" = "At start"; +"Once per day" = "Once per day"; +"Once per week" = "Once per week"; +"Once per month" = "Once per month"; +"Never" = "Never"; "Check for update" = "アップデートを確認する"; "Show icon in dock" = "Dock にアイコンを表示"; "Start at login" = "ログイン時に開く"; diff --git a/Stats/Supporting Files/ko.lproj/Localizable.strings b/Stats/Supporting Files/ko.lproj/Localizable.strings index 4612072c..a42d69ce 100644 --- a/Stats/Supporting Files/ko.lproj/Localizable.strings +++ b/Stats/Supporting Files/ko.lproj/Localizable.strings @@ -48,6 +48,11 @@ // Application settings "Update application" = "앱 업데이트"; "Check for updates" = "신규 업데이트 확인"; +"At start" = "At start"; +"Once per day" = "Once per day"; +"Once per week" = "Once per week"; +"Once per month" = "Once per month"; +"Never" = "Never"; "Check for update" = "신규 업데이트 확인"; "Show icon in dock" = "Dock에서 아이콘 보이기"; "Start at login" = "로그인시 시작"; diff --git a/Stats/Supporting Files/nb.lproj/Localizable.strings b/Stats/Supporting Files/nb.lproj/Localizable.strings index 3fda8eb0..8e402b51 100644 --- a/Stats/Supporting Files/nb.lproj/Localizable.strings +++ b/Stats/Supporting Files/nb.lproj/Localizable.strings @@ -48,6 +48,11 @@ // Application settings "Update application" = "Oppdater programmet"; "Check for updates" = "Se etter oppdateringer"; +"At start" = "At start"; +"Once per day" = "Once per day"; +"Once per week" = "Once per week"; +"Once per month" = "Once per month"; +"Never" = "Never"; "Check for update" = "Se etter oppdatering"; "Show icon in dock" = "Vis ikon i dock"; "Start at login" = "Start ved innlogging"; diff --git a/Stats/Supporting Files/pl.lproj/Localizable.strings b/Stats/Supporting Files/pl.lproj/Localizable.strings index d3a1e07b..54d95a98 100644 --- a/Stats/Supporting Files/pl.lproj/Localizable.strings +++ b/Stats/Supporting Files/pl.lproj/Localizable.strings @@ -48,6 +48,11 @@ // Application settings "Update application" = "Aktualizuj aplikacje"; "Check for updates" = "Sprawdzaj aktualizacje"; +"At start" = "Przy uruchomieniu"; +"Once per day" = "Raz dziennie"; +"Once per week" = "Raz w tygodniu"; +"Once per month" = "Raz na miesiąc"; +"Never" = "Nigdy"; "Check for update" = "Sprawdź aktualizacje"; "Show icon in dock" = "Pokazuj ikonę w docku"; "Start at login" = "Uruchamiać przy logowaniu"; diff --git a/Stats/Supporting Files/pt-BR.lproj/Localizable.strings b/Stats/Supporting Files/pt-BR.lproj/Localizable.strings index efd868c0..f203aee9 100644 --- a/Stats/Supporting Files/pt-BR.lproj/Localizable.strings +++ b/Stats/Supporting Files/pt-BR.lproj/Localizable.strings @@ -48,6 +48,11 @@ // Application settings "Update application" = "Atualizar aplicativo"; "Check for updates" = "Verificar se há atualizações"; +"At start" = "At start"; +"Once per day" = "Once per day"; +"Once per week" = "Once per week"; +"Once per month" = "Once per month"; +"Never" = "Never"; "Check for update" = "Verificar atualização"; "Show icon in dock" = "Mostrar ícone no dock"; "Start at login" = "Inicie no login"; diff --git a/Stats/Supporting Files/pt-PT.lproj/Localizable.strings b/Stats/Supporting Files/pt-PT.lproj/Localizable.strings index a172e338..8321a6b7 100644 --- a/Stats/Supporting Files/pt-PT.lproj/Localizable.strings +++ b/Stats/Supporting Files/pt-PT.lproj/Localizable.strings @@ -48,6 +48,11 @@ // Application settings "Update application" = "Atualizar aplicação"; "Check for updates" = "Procurar por atualizações"; +"At start" = "At start"; +"Once per day" = "Once per day"; +"Once per week" = "Once per week"; +"Once per month" = "Once per month"; +"Never" = "Never"; "Check for update" = "Procurar atualização"; "Show icon in dock" = "Mostrar ícone na doca"; "Start at login" = "Iniciar durante login"; diff --git a/Stats/Supporting Files/ru.lproj/Localizable.strings b/Stats/Supporting Files/ru.lproj/Localizable.strings index 20f0b22d..fa51ff7d 100644 --- a/Stats/Supporting Files/ru.lproj/Localizable.strings +++ b/Stats/Supporting Files/ru.lproj/Localizable.strings @@ -48,6 +48,11 @@ // Application settings "Update application" = "Обновить приложение"; "Check for updates" = "Проверять обновления"; +"At start" = "При включении"; +"Once per day" = "Раз в день"; +"Once per week" = "Раз в неделю"; +"Once per month" = "Раз в месяц"; +"Never" = "Никогда"; "Check for update" = "Проверить обновление"; "Show icon in dock" = "Показать значок в dock"; "Start at login" = "Запуск при логуванні"; diff --git a/Stats/Supporting Files/tr.lproj/Localizable.strings b/Stats/Supporting Files/tr.lproj/Localizable.strings index 77a47535..0cfc1aa8 100644 --- a/Stats/Supporting Files/tr.lproj/Localizable.strings +++ b/Stats/Supporting Files/tr.lproj/Localizable.strings @@ -48,6 +48,11 @@ // Application settings "Update application" = "Uygulamayı güncelle"; "Check for updates" = "Güncellemeleri denetle"; +"At start" = "At start"; +"Once per day" = "Once per day"; +"Once per week" = "Once per week"; +"Once per month" = "Once per month"; +"Never" = "Never"; "Check for update" = "Güncellemeleri denetle"; "Show icon in dock" = "Dock'ta göster"; "Start at login" = "Başlangıçta çalıştır"; diff --git a/Stats/Supporting Files/uk.lproj/Localizable.strings b/Stats/Supporting Files/uk.lproj/Localizable.strings index c90c0dc9..93066f89 100644 --- a/Stats/Supporting Files/uk.lproj/Localizable.strings +++ b/Stats/Supporting Files/uk.lproj/Localizable.strings @@ -48,6 +48,11 @@ // Application settings "Update application" = "Оновити програму"; "Check for updates" = "Перевіряти оновленя"; +"At start" = "При включенні"; +"Once per day" = "Раз на день"; +"Once per week" = "Раз на тиждень"; +"Once per month" = "Раз на місяць"; +"Never" = "Ніколи"; "Check for update" = "Перевірити оновленя"; "Show icon in dock" = "Показувати іконку в dock"; "Start at login" = "Запускати при логуванні"; diff --git a/Stats/Supporting Files/vi.lproj/Localizable.strings b/Stats/Supporting Files/vi.lproj/Localizable.strings index b7842b3f..61dfd065 100644 --- a/Stats/Supporting Files/vi.lproj/Localizable.strings +++ b/Stats/Supporting Files/vi.lproj/Localizable.strings @@ -48,6 +48,11 @@ // Application settings "Update application" = "Cập nhật ứng dụng"; "Check for updates" = "Kiểm tra các cập nhật"; +"At start" = "At start"; +"Once per day" = "Once per day"; +"Once per week" = "Once per week"; +"Once per month" = "Once per month"; +"Never" = "Never"; "Check for update" = "Kiểm tra cập nhật"; "Show icon in dock" = "Hiện icon trên Dock"; "Start at login" = "Khởi động lúc đăng nhập"; diff --git a/Stats/Supporting Files/zh-Hans.lproj/Localizable.strings b/Stats/Supporting Files/zh-Hans.lproj/Localizable.strings index 40f6da41..5b6c06fb 100644 --- a/Stats/Supporting Files/zh-Hans.lproj/Localizable.strings +++ b/Stats/Supporting Files/zh-Hans.lproj/Localizable.strings @@ -48,6 +48,11 @@ // Application settings "Update application" = "更新应用"; "Check for updates" = "检查更新"; +"At start" = "At start"; +"Once per day" = "Once per day"; +"Once per week" = "Once per week"; +"Once per month" = "Once per month"; +"Never" = "Never"; "Check for update" = "检查更新"; "Show icon in dock" = "在dock显示图标"; "Start at login" = "登录时打开"; diff --git a/Stats/Supporting Files/zh-Hant.lproj/Localizable.strings b/Stats/Supporting Files/zh-Hant.lproj/Localizable.strings index b8d49a16..2b231913 100644 --- a/Stats/Supporting Files/zh-Hant.lproj/Localizable.strings +++ b/Stats/Supporting Files/zh-Hant.lproj/Localizable.strings @@ -48,6 +48,11 @@ // Application settings "Update application" = "更新應用程式"; "Check for updates" = "檢查更新"; +"At start" = "At start"; +"Once per day" = "Once per day"; +"Once per week" = "Once per week"; +"Once per month" = "Once per month"; +"Never" = "Never"; "Check for update" = "檢查更新"; "Show icon in dock" = "在 Dock 顯示圖示"; "Start at login" = "登入時打開"; diff --git a/Stats/Views/AppSettings.swift b/Stats/Views/AppSettings.swift index 7bd70743..3c032cf5 100644 --- a/Stats/Views/AppSettings.swift +++ b/Stats/Views/AppSettings.swift @@ -14,9 +14,9 @@ import StatsKit import os.log class ApplicationSettings: NSScrollView { - private var updateIntervalValue: AppUpdateInterval { + private var updateIntervalValue: String { get { - return store.string(key: "update-interval", defaultValue: AppUpdateIntervals.atStart.rawValue) + return store.string(key: "update-interval", defaultValue: AppUpdateInterval.atStart.rawValue) } } @@ -175,7 +175,7 @@ class ApplicationSettings: NSScrollView { self.titleView(LocalizedString("Check for updates")), SelectView( action: #selector(self.toggleUpdateInterval), - items: AppUpdateIntervals.allCases.map{ KeyValue_t(key: $0.rawValue, value: $0.rawValue) }, + items: AppUpdateIntervals, selected: self.updateIntervalValue ) ] @@ -270,10 +270,12 @@ class ApplicationSettings: NSScrollView { } @objc private func toggleUpdateInterval(_ sender: NSMenuItem) { - if let newUpdateInterval = AppUpdateIntervals(rawValue: sender.title) { - store.set(key: "update-interval", value: newUpdateInterval.rawValue) - NotificationCenter.default.post(name: .changeCronInterval, object: nil, userInfo: nil) + guard let key = sender.representedObject as? String else { + return } + + store.set(key: "update-interval", value: key) + NotificationCenter.default.post(name: .changeCronInterval, object: nil, userInfo: nil) } @objc private func toggleTemperatureUnits(_ sender: NSMenuItem) { diff --git a/Stats/helpers.swift b/Stats/helpers.swift index c6ec79f9..0503a89e 100644 --- a/Stats/helpers.swift +++ b/Stats/helpers.swift @@ -91,7 +91,7 @@ extension AppDelegate { NSApp.setActivationPolicy(dockIconStatus) } - if AppUpdateIntervals(rawValue: store.string(key: "update-interval", defaultValue: AppUpdateIntervals.atStart.rawValue)) != .never { + if store.string(key: "update-interval", defaultValue: AppUpdateInterval.atStart.rawValue) != AppUpdateInterval.never.rawValue { self.checkForNewVersion() } } diff --git a/StatsKit/helpers.swift b/StatsKit/helpers.swift index f33f00f8..5a6fba26 100644 --- a/StatsKit/helpers.swift +++ b/StatsKit/helpers.swift @@ -11,8 +11,8 @@ import Cocoa -public typealias AppUpdateInterval = String -public enum AppUpdateIntervals: AppUpdateInterval { +public typealias AppUpdateIntervalType = String +public enum AppUpdateInterval: AppUpdateIntervalType { case atStart = "At start" case separator_1 = "separator_1" case oncePerDay = "Once per day" @@ -21,7 +21,15 @@ public enum AppUpdateIntervals: AppUpdateInterval { case separator_2 = "separator_2" case never = "Never" } -extension AppUpdateIntervals: CaseIterable {} +public let AppUpdateIntervals: [KeyValue_t] = [ + KeyValue_t(key: "At start", value: AppUpdateInterval.atStart.rawValue), + KeyValue_t(key: "separator_1", value: "separator_1"), + KeyValue_t(key: "Once per day", value: AppUpdateInterval.oncePerDay.rawValue), + KeyValue_t(key: "Once per week", value: AppUpdateInterval.oncePerWeek.rawValue), + KeyValue_t(key: "Once per month", value: AppUpdateInterval.oncePerMonth.rawValue), + KeyValue_t(key: "separator_2", value: "separator_2"), + KeyValue_t(key: "Never", value: AppUpdateInterval.never.rawValue) +] public struct KeyValue_t { public let key: String