forked from michaelvillar/chat
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMVURLKit.m
More file actions
133 lines (110 loc) · 3.78 KB
/
Copy pathMVURLKit.m
File metadata and controls
133 lines (110 loc) · 3.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#import "MVURLKit.h"
#import "MVFileUploadManager.h"
#import "MVFileUploadManager_Private.h"
#import "MVAssetsManager.h"
#import "MVMessageParser.h"
static MVURLKit *sharedInstance = nil;
@interface MVURLKit () <MVFileUploadManagerDelegate>
@property (strong, readwrite) MVFileUploadManager *fileUploadManager;
@property (strong, readwrite) MVAssetsManager *assetsManager;
@property (strong, readwrite) MVMessageParser *messageParser;
@end
@implementation MVURLKit
@synthesize uploadAuthorization = uploadAuthorization_,
fileUploadManager = fileUploadManager_,
assetsManager = assetsManager_,
messageParser = messageParser_,
delegate = delegate_;
+ (MVURLKit*)sharedInstance
{
if(!sharedInstance)
sharedInstance = [[MVURLKit alloc] init];
return sharedInstance;
}
- (id)init
{
self = [super init];
if(self)
{
uploadAuthorization_ = nil;
assetsManager_ = [[MVAssetsManager alloc] init];
fileUploadManager_ = [[MVFileUploadManager alloc] initWithAssetsManager:assetsManager_];
fileUploadManager_.delegate = self;
assetsManager_.fileUploadManager = fileUploadManager_;
messageParser_ = [[MVMessageParser alloc] init];
delegate_ = nil;
}
return self;
}
- (MVAsset*)uploadFileWithKey:(NSString*)key
data:(NSData*)data
{
return [self.fileUploadManager uploadFileWithKey:key
data:data];
}
- (MVAsset*)uploadAvatar:(NSData*)data
{
return [self.fileUploadManager uploadAvatar:data];
}
- (BOOL)isAssetExistingForRemoteURL:(NSURL*)remoteURL
{
return [self.assetsManager isAssetExistingForRemoteURL:remoteURL];
}
- (MVAsset*)assetForRemoteURL:(NSURL*)remoteURL
download:(BOOL)download
{
return [self.assetsManager assetForRemoteURL:remoteURL download:download];
}
- (MVAsset*)assetForRemoteURL:(NSURL*)remoteURL
{
return [self.assetsManager assetForRemoteURL:remoteURL];
}
- (MVAsset*)assetForRemoteURL:(NSURL*)remoteURL
withMaxSize:(CGSize)maxSize
{
return [self.assetsManager assetForRemoteURL:remoteURL
withMaxSize:maxSize];
}
- (MVAsset*)assetForRemoteURL:(NSURL*)remoteURL
withMaxSize:(CGSize)maxSize
ignoresGIFs:(BOOL)ignoresGIFs
{
return [self.assetsManager assetForRemoteURL:remoteURL
withMaxSize:maxSize
ignoresGIFs:ignoresGIFs];
}
- (NSArray*)parseMessageForURLs:(NSString*)message
mentionRanges:(NSSet*)ranges
{
return [self parseMessageForURLs:message
mentionRanges:ranges
fetchServicesAutomatically:YES];
}
- (NSArray*)parseMessageForURLs:(NSString*)message
mentionRanges:(NSSet*)ranges
fetchServicesAutomatically:(BOOL)fetchServicesAutomatically
{
return [self.messageParser parseMessageForURLs:message
mentionRanges:ranges
fetchServicesAutomatically:fetchServicesAutomatically];
}
#pragma mark -
#pragma mark Properties
- (void)setUploadAuthorization:(MVUploadAuthorization *)uploadAuthorization
{
self.fileUploadManager.uploadAuthorization = uploadAuthorization;
[self.fileUploadManager uploadPendingFiles];
}
- (MVUploadAuthorization*)uploadAuthorization
{
return self.fileUploadManager.uploadAuthorization;
}
#pragma mark -
#pragma mark MVFileUploadManagerDelegate Methods
- (void)fileUploadManager:(MVFileUploadManager*)fileUploadManager
uploadAuthorizationDidExpired:(MVUploadAuthorization*)uploadAuthorization
{
if([self.delegate respondsToSelector:@selector(urlKit:uploadAuthorizationDidExpired:)])
[self.delegate urlKit:self uploadAuthorizationDidExpired:uploadAuthorization];
}
@end