From 9a27e5d7bb7fe1cc3c084958efb98e6cf37cd516 Mon Sep 17 00:00:00 2001 From: Mark Feaver Date: Sat, 7 Aug 2021 18:56:59 +1000 Subject: [PATCH] Made app default to system-defined dark/light mode on first launch --- Session/Meta/AppDelegate.m | 4 ++-- Session/Meta/AppDelegate.swift | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) 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 + } + }