diff --git a/Session/Meta/AppDelegate.m b/Session/Meta/AppDelegate.m index 359320080..29e9e0cda 100644 --- a/Session/Meta/AppDelegate.m +++ b/Session/Meta/AppDelegate.m @@ -194,7 +194,7 @@ static NSTimeInterval launchStartedAt; mainWindow.rootViewController = [LoadingViewController new]; [mainWindow makeKeyAndVisible]; - LKAppMode appMode = [NSUserDefaults.standardUserDefaults integerForKey:@"appMode"]; + LKAppMode appMode = [self getAppModeOrSystemDefault]; [self setCurrentAppMode:appMode]; if (@available(iOS 11, *)) { @@ -245,7 +245,7 @@ static NSTimeInterval launchStartedAt; [self ensureRootViewController]; - LKAppMode appMode = [NSUserDefaults.standardUserDefaults integerForKey:@"appMode"]; + LKAppMode appMode = [self getCurrentAppMode]; [self setCurrentAppMode:appMode]; [AppReadiness runNowOrWhenAppDidBecomeReady:^{ diff --git a/Session/Meta/AppDelegate.swift b/Session/Meta/AppDelegate.swift index 56e4100b2..bb28b0b81 100644 --- a/Session/Meta/AppDelegate.swift +++ b/Session/Meta/AppDelegate.swift @@ -40,4 +40,20 @@ extension AppDelegate { @objc func stopClosedGroupPoller() { ClosedGroupPoller.shared.stop() } + + @objc func getAppModeOrSystemDefault() -> AppMode { + let userDefaults = UserDefaults.standard + + guard userDefaults.dictionaryRepresentation().keys.contains("appMode") else { + if #available(iOS 13.0, *) { + return UITraitCollection.current.userInterfaceStyle == .dark ? .dark : .light + } else { + return .light + } + } + + let mode = userDefaults.integer(forKey: "appMode") + return AppMode(rawValue: mode) ?? .light + } + }