another.im-ios/Monal/Classes/MLChatCell.m
2024-11-18 15:53:52 +01:00

83 lines
2 KiB
Objective-C

//
// MLChatCell.m
// Monal
//
// Created by Anurodh Pokharel on 8/20/13.
//
//
#import "MLChatCell.h"
#import "MLImageManager.h"
#import "MLConstants.h"
#import "HelperTools.h"
@import SafariServices;
@implementation MLChatCell
-(void) updateCellWithNewSender:(BOOL) newSender
{
[super updateCellWithNewSender:newSender];
if(self.outBound)
{
self.textLabel.textColor = [UIColor whiteColor];
self.bubbleImage.image = [[MLImageManager sharedInstance] outboundImage];
}
else
{
self.textLabel.textColor = [UIColor blackColor];
self.bubbleImage.image = [[MLImageManager sharedInstance] inboundImage];
}
}
-(BOOL) canPerformAction:(SEL) action withSender:(id) sender
{
if(action == @selector(openlink:))
{
if(self.link)
return YES;
}
return (action == @selector(copy:));
}
-(void) openlink:(id) sender {
if(self.link)
{
NSURL* url = [NSURL URLWithString:self.link];
DDLogInfo(@"Opening link (inline=%@): %@", bool2str([[HelperTools defaultsDB] boolForKey: @"useInlineSafari"]), url);
if([[HelperTools defaultsDB] boolForKey: @"useInlineSafari"] && ([url.scheme.lowercaseString isEqualToString:@"http"] || [url.scheme.lowercaseString isEqualToString:@"https"]))
{
SFSafariViewController* safariView = [[SFSafariViewController alloc] initWithURL:url];
[self.parent presentViewController:safariView animated:YES completion:nil];
}
else
[[UIApplication sharedApplication] performSelector:@selector(openURL:) withObject:url];
}
}
-(void) copy:(id) sender {
UIPasteboard* pboard = [UIPasteboard generalPasteboard];
pboard.string = self.messageBody.text;
}
-(void) prepareForReuse
{
[super prepareForReuse];
self.messageBody.attributedText = nil;
self.messageBody.text = @"";
}
- (void)setSelected:(BOOL) selected animated:(BOOL) animated
{
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end