UI improvements
[zxing.git] / iphone / Classes / SMSAction.m
1 //
2 //  SMSAction.m
3 //  ZXing
4 //
5 //  Created by Christian Brunschen on 16/06/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 "SMSAction.h"
23
24 // currently, including a message body makes the iPhone not actually
25 // go to compose an SMS at all, just start the SMS app. Bummer.
26 #ifdef SMS_URL_INCLUDE_BODY
27 #undef SMS_URL_INCLUDE_BODY
28 #endif
29
30 @implementation SMSAction
31
32 @synthesize body;
33
34 + (NSURL *)urlForNumber:(NSString *)number withBody:(NSString *)body {
35   NSString *urlString = 
36 #ifdef SMS_URL_INCLUDE_BODY
37     (body && [body length]) ?
38     [NSString stringWithFormat:@"sms:%@?body=%@", number, [body stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]] :
39 #endif
40     [NSString stringWithFormat:@"sms:%@", number];
41   return [NSURL URLWithString:urlString];
42 }
43
44 - initWithNumber:(NSString *)n body:(NSString *)b {
45   if ((self = [super initWithURL:[[self class] urlForNumber:n withBody:b]]) != nil) {
46     self.number = n;
47     self.body = b;
48   }
49   return self;
50 }
51
52 - initWithNumber:(NSString *)n {
53   return [self initWithNumber:n body:nil];
54 }
55
56 + actionWithNumber:(NSString *)number body:(NSString *)body {
57   return [[[self alloc] initWithNumber:number body:body] autorelease];
58 }
59
60 + actionWithNumber:(NSString *)number {
61   return [self actionWithNumber:number body:nil];
62 }
63
64 - (NSString *)title {
65   return [NSString localizedStringWithFormat:NSLocalizedString(@"Compose SMS to %@", @"action title"), self.number];
66 }
67
68 - (NSString *)alertTitle {
69   return NSLocalizedString(@"Compose", @"alert title");
70 }
71
72 - (NSString *)alertMessage {
73   return [NSString localizedStringWithFormat:NSLocalizedString(@"Compose SMS to %@?", @"alert message"), self.number];
74 }
75
76 - (NSString *)alertButtonTitle {
77   return NSLocalizedString(@"Compose", @"alert button title");
78 }
79
80 - (void) dealloc {
81   [body release];
82   [super dealloc];
83 }
84
85 @end