scan archive UI improvements, phase 1
[zxing.git] / iphone / Classes / EmailDoCoMoParsedResult.m
1 //
2 //  EmailDoCoMoParsedResult.m
3 //  ZXing
4 //
5 //  Created by Christian Brunschen on 28/05/2008.
6 /*
7  * Copyright 2008 ZXing authors
8  *
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  */
21
22 #import "EmailDoCoMoParsedResult.h"
23 #import "EmailAction.h"
24
25 bool LooksLikeAnEmailAddress(NSString *s) {
26   if ([s rangeOfString:@"@"].location == NSNotFound) {
27     return false;
28   }
29   if ([s rangeOfString:@"."].location == NSNotFound) {
30     return false;
31   }
32   if ([s rangeOfCharacterFromSet:[NSCharacterSet whitespaceCharacterSet]].location != NSNotFound) {
33     return false;
34   }
35   return true;
36 }
37
38 @implementation EmailDoCoMoParsedResult
39
40 @synthesize to;
41 @synthesize subject;
42 @synthesize body;
43
44 + parsedResultForString:(NSString *)s {
45   NSRange foundRange = [s rangeOfString:@"MATMSG:"];
46   if (foundRange.location == NSNotFound) {
47     return nil;
48   }
49   
50   NSString *to = [s fieldWithPrefix:@"TO:"];
51   if (to == nil) {
52     return nil;
53   }
54   
55   EmailDoCoMoParsedResult *result = [[self alloc] init];
56   result.to = to;
57   result.subject = [s fieldWithPrefix:@"SUB:"];
58   result.body = [s fieldWithPrefix:@"BODY:"];
59   
60   return [result autorelease];
61 }
62
63 - (NSString *)stringForDisplay {
64   NSMutableString *result = [NSMutableString string];
65   [result appendFormat:@"To: %@", self.to];
66   if (self.subject) {
67     [result appendFormat:@"\nSubject: %@", self.subject];
68   }
69   if (self.body) {
70     [result appendFormat:@"\n\n%@", self.body];
71   }
72   return [NSString stringWithString:result];
73 }
74
75 + (NSString *)typeName {
76   return @"Email";
77 }
78
79 - (NSArray *)actions {
80   return [NSArray arrayWithObject:[EmailAction actionWithRecipient:self.to
81                                                            subject:self.subject
82                                                               body:self.body]];
83 }
84
85 @end