91 lines
2.3 KiB
Mathematica
91 lines
2.3 KiB
Mathematica
|
//
|
||
|
// MLLinkCell.m
|
||
|
// Monal
|
||
|
//
|
||
|
// Created by Anurodh Pokharel on 10/29/18.
|
||
|
// Copyright © 2018 Monal.im. All rights reserved.
|
||
|
//
|
||
|
|
||
|
#import "MLLinkCell.h"
|
||
|
#import "UIImageView+WebCache.h"
|
||
|
#import "MonalAppDelegate.h"
|
||
|
#import "HelperTools.h"
|
||
|
|
||
|
@import SafariServices;
|
||
|
|
||
|
|
||
|
@implementation MLLinkCell
|
||
|
|
||
|
- (void)awakeFromNib {
|
||
|
[super awakeFromNib];
|
||
|
// Initialization code
|
||
|
self.bubbleView.layer.cornerRadius=16.0f;
|
||
|
self.bubbleView.clipsToBounds=YES;
|
||
|
}
|
||
|
|
||
|
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
|
||
|
[super setSelected:selected animated:animated];
|
||
|
|
||
|
// Configure the view for the selected state
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
-(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];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
-(BOOL) canPerformAction:(SEL)action withSender:(id)sender
|
||
|
{
|
||
|
if(action == @selector(openlink:))
|
||
|
{
|
||
|
if(self.link)
|
||
|
return YES;
|
||
|
}
|
||
|
return (action == @selector(copy:)) ;
|
||
|
}
|
||
|
|
||
|
-(void) copy:(id)sender {
|
||
|
UIPasteboard *pboard = [UIPasteboard generalPasteboard];
|
||
|
pboard.string =self.link;
|
||
|
}
|
||
|
|
||
|
|
||
|
-(void) loadImageWithCompletion:(void (^)(void))completion
|
||
|
{
|
||
|
if(self.imageUrl) {
|
||
|
[self.previewImage sd_setImageWithURL:self.imageUrl completed:^(UIImage *image __unused, NSError *error, SDImageCacheType cacheType __unused, NSURL *imageURL __unused) {
|
||
|
if(error) {
|
||
|
self.previewImage.image=nil;
|
||
|
}
|
||
|
|
||
|
if(completion) completion();
|
||
|
}];
|
||
|
} else {
|
||
|
self.previewImage.image=nil;
|
||
|
if(completion) completion();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
-(void)prepareForReuse
|
||
|
{
|
||
|
[super prepareForReuse];
|
||
|
self.messageTitle.text=nil;
|
||
|
self.imageUrl=[NSURL URLWithString:@""];
|
||
|
self.previewImage.image=nil;
|
||
|
}
|
||
|
|
||
|
@end
|