Przeglądaj źródła

Restore default value and fix migration from 4.x

Jonas Björkert 6 miesięcy temu
rodzic
commit
00f90573c4

+ 8 - 1
LoopFollow/Storage/Storage+Migrate.swift

@@ -4,6 +4,14 @@
 import Foundation
 
 extension Storage {
+    func migrateStep3() {
+        let legacyForceDarkMode = StorageValue<Bool>(key: "forceDarkMode", defaultValue: true)
+        if legacyForceDarkMode.exists {
+            Storage.shared.appearanceMode.value = legacyForceDarkMode.value ? .dark : .system
+            legacyForceDarkMode.remove()
+        }
+    }
+
     func migrateStep2() {
         // Migrate from old system to new position-based system
         if remoteType.value != .none {
@@ -59,7 +67,6 @@ extension Storage {
 
         let legacyForceDarkMode = UserDefaultsValue<Bool>(key: "forceDarkMode", default: true)
         if legacyForceDarkMode.exists {
-            // Migrate from Bool to AppearanceMode: true -> .dark, false -> .system
             Storage.shared.appearanceMode.value = legacyForceDarkMode.value ? .dark : .system
             legacyForceDarkMode.setNil(key: "forceDarkMode")
         }

+ 1 - 1
LoopFollow/Storage/Storage.swift

@@ -60,7 +60,7 @@ class Storage {
     // General Settings [BEGIN]
     var appBadge = StorageValue<Bool>(key: "appBadge", defaultValue: true)
     var colorBGText = StorageValue<Bool>(key: "colorBGText", defaultValue: true)
-    var appearanceMode = StorageValue<AppearanceMode>(key: "appearanceMode", defaultValue: .system)
+    var appearanceMode = StorageValue<AppearanceMode>(key: "appearanceMode", defaultValue: .dark)
     var showStats = StorageValue<Bool>(key: "showStats", defaultValue: true)
     var useIFCC = StorageValue<Bool>(key: "useIFCC", defaultValue: false)
     var showSmallGraph = StorageValue<Bool>(key: "showSmallGraph", defaultValue: true)

+ 5 - 0
LoopFollow/ViewControllers/MainViewController.swift

@@ -147,6 +147,11 @@ class MainViewController: UIViewController, UITableViewDataSource, ChartViewDele
             Storage.shared.migrationStep.value = 2
         }
 
+        if Storage.shared.migrationStep.value < 3 {
+            Storage.shared.migrateStep3()
+            Storage.shared.migrationStep.value = 3
+        }
+
         // Synchronize info types to ensure arrays are the correct size
         synchronizeInfoTypes()