diff --git a/Signal/src/Models/TSMessageAdapaters/TSVideoAttachmentAdapter.m b/Signal/src/Models/TSMessageAdapaters/TSVideoAttachmentAdapter.m index e6ac6dc37..b45af2084 100644 --- a/Signal/src/Models/TSMessageAdapaters/TSVideoAttachmentAdapter.m +++ b/Signal/src/Models/TSMessageAdapaters/TSVideoAttachmentAdapter.m @@ -236,6 +236,10 @@ NS_ASSUME_NONNULL_BEGIN { OWSAssert([self isAudio]); + // We want to treat "pre-voice messages flag" messages as voice messages if + // they have no file name. + // + // TODO: Remove this after the flag has been in production for a few months. return (self.attachment.isVoiceMessage || self.attachment.filename.length < 1); } diff --git a/Signal/src/UIColor+OWS.m b/Signal/src/UIColor+OWS.m index 73c8c16dc..ea6cf654f 100644 --- a/Signal/src/UIColor+OWS.m +++ b/Signal/src/UIColor+OWS.m @@ -129,14 +129,22 @@ - (UIColor *)blendWithColor:(UIColor *)otherColor alpha:(CGFloat)alpha { CGFloat r0, g0, b0, a0; - [self getRed:&r0 green:&g0 blue:&b0 alpha:&a0]; - CGFloat r1, g1, b1, a1; - [otherColor getRed:&r1 green:&g1 blue:&b1 alpha:&a1]; - - return [UIColor colorWithRed:CGFloatLerp(r0, r1, alpha) - green:CGFloatLerp(g0, g1, alpha) - blue:CGFloatLerp(b0, b1, alpha) - alpha:CGFloatLerp(a0, a1, alpha)]; +#ifdef DEBUG + BOOL result = +#endif + [self getRed:&r0 green:&g0 blue:&b0 alpha:&a0]; + OWSAssert(result) + + CGFloat r1, + g1, b1, a1; +#ifdef DEBUG + result = +#endif + [otherColor getRed:&r1 green:&g1 blue:&b1 alpha:&a1]; + OWSAssert(result) return [UIColor colorWithRed:CGFloatLerp(r0, r1, alpha) + green:CGFloatLerp(g0, g1, alpha) + blue:CGFloatLerp(b0, b1, alpha) + alpha:CGFloatLerp(a0, a1, alpha)]; } @end diff --git a/Signal/src/ViewControllers/MessagesViewController.m b/Signal/src/ViewControllers/MessagesViewController.m index be592cedb..1fccc51cf 100644 --- a/Signal/src/ViewControllers/MessagesViewController.m +++ b/Signal/src/ViewControllers/MessagesViewController.m @@ -3108,6 +3108,10 @@ typedef enum : NSUInteger { DDLogInfo(@"startRecordingVoiceMemo"); + // Cancel any ongoing audio playback. + [self.audioAttachmentPlayer stop]; + self.audioAttachmentPlayer = nil; + NSString *temporaryDirectory = NSTemporaryDirectory(); NSString *filename = [NSString stringWithFormat:@"%lld.m4a", [NSDate ows_millisecondTimeStamp]]; NSString *filepath = [temporaryDirectory stringByAppendingPathComponent:filename]; diff --git a/Signal/src/views/AudioProgressView.swift b/Signal/src/views/AudioProgressView.swift index a4d0a7172..1f2fc76d1 100644 --- a/Signal/src/views/AudioProgressView.swift +++ b/Signal/src/views/AudioProgressView.swift @@ -45,7 +45,7 @@ import UIKit } } - @available(*, unavailable, message:"use delegate: constructor instead.") + @available(*, unavailable, message:"use init() constructor instead.") required init?(coder aDecoder: NSCoder) { self.horizontalBarLayer = CAShapeLayer() self.progressLayer = CAShapeLayer()