From 90027c4a046d223aa89a46357ef22328a5246f00 Mon Sep 17 00:00:00 2001 From: Niels Andriesse Date: Thu, 5 Aug 2021 14:15:34 +1000 Subject: [PATCH] Resolve more errors --- SessionMessagingKit/Utilities/AppReadiness.h | 1 + SessionMessagingKit/Utilities/AppReadiness.m | 7 +++ SignalUtilitiesKit/Utilities/UIView+OWS.swift | 45 +++++++++++++++++++ 3 files changed, 53 insertions(+) diff --git a/SessionMessagingKit/Utilities/AppReadiness.h b/SessionMessagingKit/Utilities/AppReadiness.h index 617892b00..6f3538d75 100755 --- a/SessionMessagingKit/Utilities/AppReadiness.h +++ b/SessionMessagingKit/Utilities/AppReadiness.h @@ -31,6 +31,7 @@ typedef void (^AppReadyBlock)(void); // on app launch, especially work that uses other components. // * We should usually use "did become ready" blocks since they are safer. + (void)runNowOrWhenAppWillBecomeReady:(AppReadyBlock)block NS_SWIFT_NAME(runNowOrWhenAppWillBecomeReady(_:)); ++ (void)runNowOrWhenAppDidBecomeReadySync:(AppReadyBlock)block NS_SWIFT_NAME(runNowOrWhenAppDidBecomeReadySync(_:)); + (void)runNowOrWhenAppDidBecomeReady:(AppReadyBlock)block NS_SWIFT_NAME(runNowOrWhenAppDidBecomeReady(_:)); @end diff --git a/SessionMessagingKit/Utilities/AppReadiness.m b/SessionMessagingKit/Utilities/AppReadiness.m index 46ee6c2b9..af38f0ae3 100755 --- a/SessionMessagingKit/Utilities/AppReadiness.m +++ b/SessionMessagingKit/Utilities/AppReadiness.m @@ -73,6 +73,13 @@ NS_ASSUME_NONNULL_BEGIN [self.appWillBecomeReadyBlocks addObject:block]; } ++ (void)runNowOrWhenAppDidBecomeReadySync:(AppReadyBlock)block +{ + DispatchSyncMainThreadSafe(^{ + [self.sharedManager runNowOrWhenAppDidBecomeReady:block]; + }); +} + + (void)runNowOrWhenAppDidBecomeReady:(AppReadyBlock)block { DispatchMainThreadSafe(^{ diff --git a/SignalUtilitiesKit/Utilities/UIView+OWS.swift b/SignalUtilitiesKit/Utilities/UIView+OWS.swift index 12ff3354b..ff8fc2c5b 100644 --- a/SignalUtilitiesKit/Utilities/UIView+OWS.swift +++ b/SignalUtilitiesKit/Utilities/UIView+OWS.swift @@ -393,3 +393,48 @@ public extension UIBarButtonItem { self.accessibilityIdentifier = accessibilityIdentifier } } + +// MARK: - + +@objc +public extension UIButton { + + func setTemplateImage(_ templateImage: UIImage?, tintColor: UIColor) { + guard let templateImage = templateImage else { + owsFailDebug("Missing image") + return + } + setImage(templateImage.withRenderingMode(.alwaysTemplate), for: .normal) + self.tintColor = tintColor + } + + func setTemplateImageName(_ imageName: String, tintColor: UIColor) { + guard let image = UIImage(named: imageName) else { + owsFailDebug("Couldn't load image: \(imageName)") + return + } + setTemplateImage(image, tintColor: tintColor) + } +} + +// MARK: - +@objc +public extension UIImageView { + + func setTemplateImage(_ templateImage: UIImage?, tintColor: UIColor) { + guard let templateImage = templateImage else { + owsFailDebug("Missing image") + return + } + self.image = templateImage.withRenderingMode(.alwaysTemplate) + self.tintColor = tintColor + } + + func setTemplateImageName(_ imageName: String, tintColor: UIColor) { + guard let image = UIImage(named: imageName) else { + owsFailDebug("Couldn't load image: \(imageName)") + return + } + setTemplateImage(image, tintColor: tintColor) + } +}