Merge branch 'dev' of https://github.com/oxen-io/session-ios into voice-calls-2

pull/605/head
Ryan Zhao 2 years ago
commit 52886f2e16

@ -194,7 +194,7 @@ static NSTimeInterval launchStartedAt;
mainWindow.rootViewController = [LoadingViewController new]; mainWindow.rootViewController = [LoadingViewController new];
[mainWindow makeKeyAndVisible]; [mainWindow makeKeyAndVisible];
LKAppMode appMode = [self getCurrentAppMode]; LKAppMode appMode = [LKAppModeManager getAppModeOrSystemDefault];
[self adaptAppMode:appMode]; [self adaptAppMode:appMode];
// This must happen in appDidFinishLaunching or earlier to ensure we don't // This must happen in appDidFinishLaunching or earlier to ensure we don't
@ -244,7 +244,7 @@ static NSTimeInterval launchStartedAt;
[self ensureRootViewController]; [self ensureRootViewController];
LKAppMode appMode = [self getCurrentAppMode]; LKAppMode appMode = [LKAppModeManager getAppModeOrSystemDefault];
[self adaptAppMode:appMode]; [self adaptAppMode:appMode];
[AppReadiness runNowOrWhenAppDidBecomeReady:^{ [AppReadiness runNowOrWhenAppDidBecomeReady:^{
@ -734,12 +734,6 @@ static NSTimeInterval launchStartedAt;
[NSNotificationCenter.defaultCenter postNotificationName:NSNotification.appModeChanged object:nil]; [NSNotificationCenter.defaultCenter postNotificationName:NSNotification.appModeChanged object:nil];
} }
- (LKAppMode)getCurrentAppMode
{
LKAppMode appMode = [self getAppModeOrSystemDefault];
return appMode;
}
- (void)setCurrentAppMode:(LKAppMode)appMode - (void)setCurrentAppMode:(LKAppMode)appMode
{ {
[NSUserDefaults.standardUserDefaults setInteger:appMode forKey:@"appMode"]; [NSUserDefaults.standardUserDefaults setInteger:appMode forKey:@"appMode"];
@ -749,7 +743,7 @@ static NSTimeInterval launchStartedAt;
- (void)setAppModeToSystemDefault - (void)setAppModeToSystemDefault
{ {
[NSUserDefaults.standardUserDefaults removeObjectForKey:@"appMode"]; [NSUserDefaults.standardUserDefaults removeObjectForKey:@"appMode"];
LKAppMode appMode = [self getCurrentAppMode]; LKAppMode appMode = [LKAppModeManager getAppModeOrSystemDefault];
[self adaptAppMode:appMode]; [self adaptAppMode:appMode];
} }

@ -178,19 +178,5 @@ extension AppDelegate {
@objc func stopClosedGroupPoller() { @objc func stopClosedGroupPoller() {
ClosedGroupPoller.shared.stop() ClosedGroupPoller.shared.stop()
} }
// MARK: Theme
@objc func getAppModeOrSystemDefault() -> AppMode {
let userDefaults = UserDefaults.standard
if userDefaults.dictionaryRepresentation().keys.contains("appMode") {
let mode = userDefaults.integer(forKey: "appMode")
return AppMode(rawValue: mode) ?? .light
} else {
if #available(iOS 13.0, *) {
return UITraitCollection.current.userInterfaceStyle == .dark ? .dark : .light
} else {
return .light
}
}
}
} }

@ -462,7 +462,12 @@ public class SignalAttachment: NSObject {
@objc @objc
public var isText: Bool { public var isText: Bool {
return UTTypeConformsTo(dataUTI as CFString, kUTTypeText) || isOversizeText return (
isConvertibleToTextMessage && (
UTTypeConformsTo(dataUTI as CFString, kUTTypeText) ||
isOversizeText
)
)
} }
@objc @objc

@ -162,15 +162,6 @@ final class ShareVC : UINavigationController, ShareViewDelegate, AppModeManagerD
} }
// MARK: - App Mode // MARK: - App Mode
public func getCurrentAppMode() -> AppMode {
guard let window = self.view.window else { return .light }
let userInterfaceStyle = window.traitCollection.userInterfaceStyle
let isLightMode = (userInterfaceStyle == .light || userInterfaceStyle == .unspecified)
return (isLightMode ? .light : .dark)
}
public func setCurrentAppMode(to appMode: AppMode) { public func setCurrentAppMode(to appMode: AppMode) {
return // Not applicable to share extensions return // Not applicable to share extensions

@ -95,6 +95,11 @@ final class ThreadPickerVC: UIViewController, UITableViewDataSource, UITableView
} }
} }
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
view.setGradient(Gradients.defaultBackground)
fadeView.setGradient(Gradients.homeVCFade)
}
// MARK: Layout // MARK: Layout
private func setupLayout() { private func setupLayout() {

@ -1,11 +1,11 @@
import Foundation import UIKit
@objc(LKAppModeManager) @objc(LKAppModeManager)
public final class AppModeManager : NSObject { public final class AppModeManager : NSObject {
private let delegate: AppModeManagerDelegate private let delegate: AppModeManagerDelegate
public var currentAppMode: AppMode { public var currentAppMode: AppMode {
return delegate.getCurrentAppMode() return AppModeManager.getAppModeOrSystemDefault()
} }
public static var shared: AppModeManager! public static var shared: AppModeManager!
@ -29,19 +29,33 @@ public final class AppModeManager : NSObject {
public func setAppModeToSystemDefault() { public func setAppModeToSystemDefault() {
delegate.setAppModeToSystemDefault() delegate.setAppModeToSystemDefault()
} }
@objc public static 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
}
return .light
}
let mode = userDefaults.integer(forKey: "appMode")
return AppMode(rawValue: mode) ?? .light
}
} }
@objc(LKAppModeManagerDelegate) @objc(LKAppModeManagerDelegate)
public protocol AppModeManagerDelegate { public protocol AppModeManagerDelegate {
func getCurrentAppMode() -> AppMode
@objc(setCurrentAppMode:) @objc(setCurrentAppMode:)
func setCurrentAppMode(to appMode: AppMode) func setCurrentAppMode(to appMode: AppMode)
func setAppModeToSystemDefault() func setAppModeToSystemDefault()
} }
@objc(LKAppMode) @objc(LKAppMode)
public enum AppMode : Int { public enum AppMode: Int {
case light, dark case light, dark
} }

Loading…
Cancel
Save