-
Notifications
You must be signed in to change notification settings - Fork 86
Expand file tree
/
Copy pathCOFile+Ext.m
More file actions
114 lines (106 loc) · 3.89 KB
/
COFile+Ext.m
File metadata and controls
114 lines (106 loc) · 3.89 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
//
// COFile+Ext.m
// CodingForiPad
//
// Created by sunguanglei on 15/9/21.
// Copyright (c) 2015年 coding. All rights reserved.
//
#import "COFile+Ext.h"
#import "Coding_FileManager.h"
@implementation COFile (Ext)
- (Coding_DownloadTask *)cDownloadTask{
Coding_FileManager *manager = [Coding_FileManager sharedManager];
return [manager cDownloadTaskForKey:self.storageKey];
}
- (DownloadState)downloadState{
DownloadState state = DownloadStateDefault;
if ([self hasBeenDownload]) {
state = DownloadStateDownloaded;
}else{
Coding_DownloadTask *cDownloadTask = [self cDownloadTask];
if (cDownloadTask) {
if (cDownloadTask.task.state == NSURLSessionTaskStateRunning) {
state = DownloadStateDownloading;
}else if (cDownloadTask.task.state == NSURLSessionTaskStateSuspended) {
state = DownloadStatePausing;
}else{
[[Coding_FileManager sharedManager] removeCDownloadTaskForKey:self.storageKey];
}
}
}
return state;
}
- (NSURL *)hasBeenDownload{
Coding_FileManager *manager = [Coding_FileManager sharedManager];
NSURL *fileUrl = [manager diskDownloadUrlForFile:self.diskFileName];
return fileUrl;
}
- (NSString *)fileIconName{
NSString *fileType = self.fileType;
if (!fileType) {
fileType = @"";
}
fileType = [fileType lowercaseString];
NSString *iconName;
//XXX(s)
if ([fileType hasPrefix:@"doc"]) {
iconName = @"icon_file_doc";
}else if ([fileType hasPrefix:@"ppt"]) {
iconName = @"icon_file_ppt";
}else if ([fileType hasPrefix:@"pdf"]) {
iconName = @"icon_file_pdf";
}else if ([fileType hasPrefix:@"xls"]) {
iconName = @"icon_file_xls";
}
//XXX
else if ([fileType isEqualToString:@"txt"]) {
iconName = @"icon_file_txt";
}else if ([fileType isEqualToString:@"ai"]) {
iconName = @"icon_file_ai";
}else if ([fileType isEqualToString:@"apk"]) {
iconName = @"icon_file_apk";
}else if ([fileType isEqualToString:@"md"]) {
iconName = @"icon_file_md";
}else if ([fileType isEqualToString:@"psd"]) {
iconName = @"icon_file_psd";
}
//XXX||YYY
else if ([fileType isEqualToString:@"zip"] || [fileType isEqualToString:@"rar"] || [fileType isEqualToString:@"arj"]) {
iconName = @"icon_file_zip";
}else if ([fileType isEqualToString:@"html"]
|| [fileType isEqualToString:@"xml"]
|| [fileType isEqualToString:@"java"]
|| [fileType isEqualToString:@"h"]
|| [fileType isEqualToString:@"m"]
|| [fileType isEqualToString:@"cpp"]
|| [fileType isEqualToString:@"json"]
|| [fileType isEqualToString:@"cs"]
|| [fileType isEqualToString:@"go"]) {
iconName = @"icon_file_code";
}else if ([fileType isEqualToString:@"avi"]
|| [fileType isEqualToString:@"rmvb"]
|| [fileType isEqualToString:@"rm"]
|| [fileType isEqualToString:@"asf"]
|| [fileType isEqualToString:@"divx"]
|| [fileType isEqualToString:@"mpeg"]
|| [fileType isEqualToString:@"mpe"]
|| [fileType isEqualToString:@"wmv"]
|| [fileType isEqualToString:@"mp4"]
|| [fileType isEqualToString:@"mkv"]
|| [fileType isEqualToString:@"vob"]) {
iconName = @"icon_file_movie";
}else if ([fileType isEqualToString:@"mp3"]
|| [fileType isEqualToString:@"wav"]
|| [fileType isEqualToString:@"mid"]
|| [fileType isEqualToString:@"asf"]
|| [fileType isEqualToString:@"mpg"]
|| [fileType isEqualToString:@"tti"]) {
iconName = @"icon_file_music";
}
//unknown
else{
iconName = @"icon_file_unknown";
}
return iconName;
}
@end