blob: 155b39134dc13101d5984cde9f7a68e1327b7494 [file] [log] [blame]
//
// Created by Jesse Squires
// http://www.jessesquires.com
//
//
// Documentation
// http://cocoadocs.org/docsets/JSQMessagesViewController
//
//
// GitHub
// https://github.com/jessesquires/JSQMessagesViewController
//
//
// License
// Copyright (c) 2014 Jesse Squires
// Released under an MIT license: http://opensource.org/licenses/MIT
//
#import "JSQMessagesMediaViewBubbleImageMasker.h"
#import "JSQMessagesBubbleImageFactory.h"
@implementation JSQMessagesMediaViewBubbleImageMasker
#pragma mark - Initialization
- (instancetype)init
{
return [self initWithBubbleImageFactory:[[JSQMessagesBubbleImageFactory alloc] init]];
}
- (instancetype)initWithBubbleImageFactory:(JSQMessagesBubbleImageFactory *)bubbleImageFactory
{
NSParameterAssert(bubbleImageFactory != nil);
self = [super init];
if (self) {
_bubbleImageFactory = bubbleImageFactory;
}
return self;
}
#pragma mark - View masking
- (void)applyOutgoingBubbleImageMaskToMediaView:(UIView *)mediaView
{
JSQMessagesBubbleImage *bubbleImageData = [self.bubbleImageFactory outgoingMessagesBubbleImageWithColor:[UIColor whiteColor]];
[self jsq_maskView:mediaView withImage:[bubbleImageData messageBubbleImage]];
}
- (void)applyIncomingBubbleImageMaskToMediaView:(UIView *)mediaView
{
JSQMessagesBubbleImage *bubbleImageData = [self.bubbleImageFactory incomingMessagesBubbleImageWithColor:[UIColor whiteColor]];
[self jsq_maskView:mediaView withImage:[bubbleImageData messageBubbleImage]];
}
+ (void)applyBubbleImageMaskToMediaView:(UIView *)mediaView isOutgoing:(BOOL)isOutgoing
{
JSQMessagesMediaViewBubbleImageMasker *masker = [[JSQMessagesMediaViewBubbleImageMasker alloc] init];
if (isOutgoing) {
[masker applyOutgoingBubbleImageMaskToMediaView:mediaView];
}
else {
[masker applyIncomingBubbleImageMaskToMediaView:mediaView];
}
}
#pragma mark - Private
- (void)jsq_maskView:(UIView *)view withImage:(UIImage *)image
{
NSParameterAssert(view != nil);
NSParameterAssert(image != nil);
UIImageView *imageViewMask = [[UIImageView alloc] initWithImage:image];
imageViewMask.frame = CGRectInset(view.frame, 2.0f, 2.0f);
view.layer.mask = imageViewMask.layer;
}
@end