Statistics
| Branch: | Tag: | Revision:

root / Classes / ContactInformationViewController.m @ 64929bae

History | View | Annotate | Download (6.4 kB)

1 700184fb Miltiadis Vasilakis
//
2 700184fb Miltiadis Vasilakis
//  ContactInformationViewController.m
3 700184fb Miltiadis Vasilakis
//  OpenStack
4 700184fb Miltiadis Vasilakis
//
5 700184fb Miltiadis Vasilakis
//  Created by Mike Mayo on 10/7/10.
6 700184fb Miltiadis Vasilakis
//  The OpenStack project is provided under the Apache 2.0 license.
7 700184fb Miltiadis Vasilakis
//
8 700184fb Miltiadis Vasilakis
9 700184fb Miltiadis Vasilakis
#import "ContactInformationViewController.h"
10 700184fb Miltiadis Vasilakis
#import "Provider.h"
11 700184fb Miltiadis Vasilakis
#import "UIColor+MoreColors.h"
12 700184fb Miltiadis Vasilakis
13 700184fb Miltiadis Vasilakis
14 700184fb Miltiadis Vasilakis
@implementation ContactInformationViewController
15 700184fb Miltiadis Vasilakis
16 700184fb Miltiadis Vasilakis
@synthesize provider;
17 700184fb Miltiadis Vasilakis
18 700184fb Miltiadis Vasilakis
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
19 700184fb Miltiadis Vasilakis
    return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) || (toInterfaceOrientation == UIInterfaceOrientationPortrait);
20 700184fb Miltiadis Vasilakis
}
21 700184fb Miltiadis Vasilakis
22 700184fb Miltiadis Vasilakis
#pragma mark -
23 700184fb Miltiadis Vasilakis
#pragma mark View lifecycle
24 700184fb Miltiadis Vasilakis
25 700184fb Miltiadis Vasilakis
- (void)viewDidLoad {
26 700184fb Miltiadis Vasilakis
    [super viewDidLoad];
27 700184fb Miltiadis Vasilakis
    self.navigationItem.title = @"Fanatical Support";
28 700184fb Miltiadis Vasilakis
    
29 700184fb Miltiadis Vasilakis
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
30 700184fb Miltiadis Vasilakis
        UIView *backgroundContainer = [[UIView alloc] init];
31 700184fb Miltiadis Vasilakis
        backgroundContainer.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
32 700184fb Miltiadis Vasilakis
        backgroundContainer.backgroundColor = [UIColor iPadTableBackgroundColor];
33 700184fb Miltiadis Vasilakis
        NSString *logoFilename = @"contact-rackspace-icon-large.png";
34 700184fb Miltiadis Vasilakis
        UIImageView *osLogo = [[UIImageView alloc] initWithImage:[UIImage imageNamed:logoFilename]];
35 700184fb Miltiadis Vasilakis
        osLogo.contentMode = UIViewContentModeScaleAspectFit;
36 700184fb Miltiadis Vasilakis
        osLogo.frame = CGRectMake(100.0, 100.0, 1000.0, 1000.0);
37 700184fb Miltiadis Vasilakis
        if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
38 700184fb Miltiadis Vasilakis
            osLogo.alpha = 0.3;
39 700184fb Miltiadis Vasilakis
        }
40 700184fb Miltiadis Vasilakis
        [backgroundContainer addSubview:osLogo];
41 700184fb Miltiadis Vasilakis
        [osLogo release];
42 700184fb Miltiadis Vasilakis
        self.tableView.backgroundView = backgroundContainer;
43 700184fb Miltiadis Vasilakis
        [backgroundContainer release];
44 700184fb Miltiadis Vasilakis
    } 
45 700184fb Miltiadis Vasilakis
}
46 700184fb Miltiadis Vasilakis
47 700184fb Miltiadis Vasilakis
#pragma mark -
48 700184fb Miltiadis Vasilakis
#pragma mark Table view data source
49 700184fb Miltiadis Vasilakis
50 700184fb Miltiadis Vasilakis
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
51 700184fb Miltiadis Vasilakis
    return UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? [provider.contactURLs count] : 1;
52 700184fb Miltiadis Vasilakis
}
53 700184fb Miltiadis Vasilakis
54 700184fb Miltiadis Vasilakis
55 700184fb Miltiadis Vasilakis
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
56 700184fb Miltiadis Vasilakis
    return UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? 1 : [provider.contactURLs count];
57 700184fb Miltiadis Vasilakis
}
58 700184fb Miltiadis Vasilakis
59 700184fb Miltiadis Vasilakis
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
60 700184fb Miltiadis Vasilakis
    
61 700184fb Miltiadis Vasilakis
    static NSString *CellIdentifier = @"Cell";
62 700184fb Miltiadis Vasilakis
    
63 700184fb Miltiadis Vasilakis
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
64 700184fb Miltiadis Vasilakis
    if (cell == nil) {
65 700184fb Miltiadis Vasilakis
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];
66 700184fb Miltiadis Vasilakis
        cell.textLabel.backgroundColor = [UIColor clearColor];
67 700184fb Miltiadis Vasilakis
        cell.detailTextLabel.backgroundColor = [UIColor clearColor];
68 700184fb Miltiadis Vasilakis
    }
69 700184fb Miltiadis Vasilakis
    
70 700184fb Miltiadis Vasilakis
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
71 700184fb Miltiadis Vasilakis
        cell.backgroundColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:0.8];
72 700184fb Miltiadis Vasilakis
    }
73 700184fb Miltiadis Vasilakis
    
74 700184fb Miltiadis Vasilakis
    // Configure the cell...
75 700184fb Miltiadis Vasilakis
    NSDictionary *contactURL = [provider.contactURLs objectAtIndex:UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? indexPath.section : indexPath.row];
76 700184fb Miltiadis Vasilakis
    cell.textLabel.text = [contactURL objectForKey:@"name"];
77 700184fb Miltiadis Vasilakis
    cell.detailTextLabel.text = [contactURL objectForKey:@"url"];
78 700184fb Miltiadis Vasilakis
	
79 700184fb Miltiadis Vasilakis
    NSURL* url = [NSURL URLWithString:[contactURL objectForKey:@"url"]];
80 700184fb Miltiadis Vasilakis
81 700184fb Miltiadis Vasilakis
    // Check the shared applications for registerd URLs and
82 700184fb Miltiadis Vasilakis
    // if the handler found highlight the URL
83 700184fb Miltiadis Vasilakis
    UIApplication* application = [UIApplication sharedApplication];
84 700184fb Miltiadis Vasilakis
	
85 700184fb Miltiadis Vasilakis
    // if it's a link to twitter, let's see if the device has the Twitter app
86 700184fb Miltiadis Vasilakis
    // installed and use that instead
87 700184fb Miltiadis Vasilakis
    if ([url.host isEqualToString:@"twitter.com"] || ([url.host isEqualToString:@"www.twitter.com"] && ![url.path isEqualToString:@""])) {
88 700184fb Miltiadis Vasilakis
        cell.imageView.image = [UIImage imageNamed:@"twitter-icon.png"];
89 700184fb Miltiadis Vasilakis
        NSURL *twitterURL = [NSURL URLWithString:[NSString stringWithFormat:@"twitter:@%@", [url.path substringFromIndex:1]]];
90 700184fb Miltiadis Vasilakis
        if ([application canOpenURL:twitterURL]) {
91 700184fb Miltiadis Vasilakis
            url = twitterURL;
92 700184fb Miltiadis Vasilakis
        }
93 700184fb Miltiadis Vasilakis
    }
94 700184fb Miltiadis Vasilakis
    
95 700184fb Miltiadis Vasilakis
    if ([[contactURL objectForKey:@"name"] isEqualToString:@"US Phone Support"]) {
96 700184fb Miltiadis Vasilakis
        if ([application canOpenURL:url]) {
97 700184fb Miltiadis Vasilakis
            cell.textLabel.text = @"Call US Support";
98 700184fb Miltiadis Vasilakis
            cell.detailTextLabel.text = @"";
99 700184fb Miltiadis Vasilakis
        } else {
100 700184fb Miltiadis Vasilakis
            cell.textLabel.text = @"US Support";
101 700184fb Miltiadis Vasilakis
            cell.detailTextLabel.text = @"877-934-0407";
102 700184fb Miltiadis Vasilakis
        }
103 700184fb Miltiadis Vasilakis
        cell.imageView.image = [UIImage imageNamed:@"us-phone-support-icon.png"];
104 700184fb Miltiadis Vasilakis
    } else if ([[contactURL objectForKey:@"name"] isEqualToString:@"UK Phone Support"]) {
105 700184fb Miltiadis Vasilakis
        if ([application canOpenURL:url]) {
106 700184fb Miltiadis Vasilakis
            cell.textLabel.text = @"Call UK Support";
107 700184fb Miltiadis Vasilakis
            cell.detailTextLabel.text = @"";
108 700184fb Miltiadis Vasilakis
        } else {
109 700184fb Miltiadis Vasilakis
            cell.textLabel.text = @"UK Support";
110 700184fb Miltiadis Vasilakis
            cell.detailTextLabel.text = @"0800-083-3012";
111 700184fb Miltiadis Vasilakis
        }
112 700184fb Miltiadis Vasilakis
        cell.imageView.image = [UIImage imageNamed:@"uk-phone-support-icon.png"];
113 700184fb Miltiadis Vasilakis
    } else if ([[contactURL objectForKey:@"name"] isEqualToString:@"Rackspace on Twitter"]) {
114 700184fb Miltiadis Vasilakis
        cell.detailTextLabel.text = @"";
115 700184fb Miltiadis Vasilakis
    }
116 700184fb Miltiadis Vasilakis
    
117 700184fb Miltiadis Vasilakis
    if ([application canOpenURL:url]) {
118 700184fb Miltiadis Vasilakis
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
119 700184fb Miltiadis Vasilakis
    } else {
120 700184fb Miltiadis Vasilakis
        cell.accessoryType = UITableViewCellAccessoryNone;
121 700184fb Miltiadis Vasilakis
    }
122 700184fb Miltiadis Vasilakis
	
123 700184fb Miltiadis Vasilakis
    return cell;
124 700184fb Miltiadis Vasilakis
}
125 700184fb Miltiadis Vasilakis
126 700184fb Miltiadis Vasilakis
#pragma mark -
127 700184fb Miltiadis Vasilakis
#pragma mark Table view delegate
128 700184fb Miltiadis Vasilakis
129 700184fb Miltiadis Vasilakis
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
130 700184fb Miltiadis Vasilakis
		
131 700184fb Miltiadis Vasilakis
    NSDictionary *contactItem = [provider.contactURLs objectAtIndex:UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? indexPath.section : indexPath.row];
132 700184fb Miltiadis Vasilakis
133 700184fb Miltiadis Vasilakis
    selectedURL = [NSURL URLWithString:[contactItem objectForKey:@"url"]];
134 700184fb Miltiadis Vasilakis
135 700184fb Miltiadis Vasilakis
    // Check the shared applications for registerd URLs and
136 700184fb Miltiadis Vasilakis
    // try to open the requested url with appropriate application
137 700184fb Miltiadis Vasilakis
    UIApplication *application = [UIApplication sharedApplication];
138 700184fb Miltiadis Vasilakis
    
139 700184fb Miltiadis Vasilakis
    // if it's a link to twitter, let's see if the device has the Twitter app
140 700184fb Miltiadis Vasilakis
    // installed and use that instead
141 700184fb Miltiadis Vasilakis
    if ([selectedURL.host isEqualToString:@"twitter.com"] || ([selectedURL.host isEqualToString:@"www.twitter.com"] && ![selectedURL.path isEqualToString:@""])) {
142 700184fb Miltiadis Vasilakis
        NSURL *twitterURL = [NSURL URLWithString:[NSString stringWithFormat:@"twitter:@%@", [selectedURL.path substringFromIndex:1]]];
143 700184fb Miltiadis Vasilakis
        if ([application canOpenURL:twitterURL]) {
144 700184fb Miltiadis Vasilakis
            selectedURL = twitterURL;
145 700184fb Miltiadis Vasilakis
        }
146 700184fb Miltiadis Vasilakis
    }
147 700184fb Miltiadis Vasilakis
    
148 700184fb Miltiadis Vasilakis
    if ([application canOpenURL:selectedURL]) {
149 700184fb Miltiadis Vasilakis
        [application openURL:selectedURL];            
150 700184fb Miltiadis Vasilakis
    } else {
151 700184fb Miltiadis Vasilakis
        [tableView deselectRowAtIndexPath:indexPath animated:YES];
152 700184fb Miltiadis Vasilakis
    }
153 700184fb Miltiadis Vasilakis
    
154 700184fb Miltiadis Vasilakis
    selectedIndexPath = indexPath;
155 700184fb Miltiadis Vasilakis
    
156 700184fb Miltiadis Vasilakis
}
157 700184fb Miltiadis Vasilakis
158 700184fb Miltiadis Vasilakis
#pragma mark -
159 700184fb Miltiadis Vasilakis
#pragma mark Memory management
160 700184fb Miltiadis Vasilakis
161 700184fb Miltiadis Vasilakis
- (void)dealloc {
162 700184fb Miltiadis Vasilakis
    [provider release];
163 700184fb Miltiadis Vasilakis
    [super dealloc];
164 700184fb Miltiadis Vasilakis
}
165 700184fb Miltiadis Vasilakis
166 700184fb Miltiadis Vasilakis
@end