Blame client/iOS/Controllers/AboutController.m

Packit 1fb8d4
/*
Packit 1fb8d4
 Application info controller
Packit 1fb8d4
 
Packit 1fb8d4
 Copyright 2013 Thincast Technologies GmbH, Author: Martin Fleisz
Packit 1fb8d4
 
Packit 1fb8d4
 This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. 
Packit 1fb8d4
 If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
Packit 1fb8d4
 */
Packit 1fb8d4
Packit 1fb8d4
#import "AboutController.h"
Packit 1fb8d4
#import "Utils.h"
Packit 1fb8d4
#import "BlockAlertView.h"
Packit 1fb8d4
Packit 1fb8d4
@implementation AboutController
Packit 1fb8d4
Packit 1fb8d4
 // The designated initializer.  Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
Packit 1fb8d4
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
Packit 1fb8d4
    if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
Packit 1fb8d4
Packit 1fb8d4
		// set title and tab-bar image
Packit 1fb8d4
		[self setTitle:NSLocalizedString(@"About", @"About Controller title")];
Packit 1fb8d4
        UIImage* tabBarIcon = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"tabbar_icon_about" ofType:@"png"]];
Packit 1fb8d4
        [self setTabBarItem:[[[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"About", @"Tabbar item about") image:tabBarIcon tag:0] autorelease]];
Packit 1fb8d4
        
Packit 1fb8d4
        last_link_clicked = nil;
Packit 1fb8d4
    }
Packit 1fb8d4
    return self;
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
- (void)dealloc
Packit 1fb8d4
{
Packit 1fb8d4
    [super dealloc];
Packit 1fb8d4
    [last_link_clicked release];    
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
// Implement loadView to create a view hierarchy programmatically, without using a nib.
Packit 1fb8d4
- (void)loadView 
Packit 1fb8d4
{
Packit 1fb8d4
	webView = [[[UIWebView alloc] initWithFrame:CGRectZero] autorelease];
Packit 1fb8d4
	[webView setAutoresizingMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)];
Packit 1fb8d4
	[webView setAutoresizesSubviews:YES];
Packit 1fb8d4
	[webView setDelegate:self];	
Packit 1fb8d4
	[webView setDataDetectorTypes:UIDataDetectorTypeNone];	
Packit 1fb8d4
	[self setView:webView];	
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
Packit 1fb8d4
Packit 1fb8d4
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
Packit 1fb8d4
- (void)viewDidLoad 
Packit 1fb8d4
{
Packit 1fb8d4
    [super viewDidLoad];
Packit 1fb8d4
	
Packit 1fb8d4
    NSString *filename = (IsPhone() ? @"about_phone" : @"about");
Packit 1fb8d4
	NSString *htmlString = [[[NSString alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:filename ofType:@"html" inDirectory:@"about_page"]  encoding:NSUTF8StringEncoding error:nil] autorelease];
Packit 1fb8d4
	    
Packit 1fb8d4
	[webView loadHTMLString:[NSString stringWithFormat:htmlString, 
Packit 1fb8d4
                             TSXAppFullVersion(), 
Packit 1fb8d4
                             [[UIDevice currentDevice] systemName],
Packit 1fb8d4
                             [[UIDevice currentDevice] systemVersion],
Packit 1fb8d4
                             [[UIDevice currentDevice] model]] baseURL:[NSURL fileURLWithPath:[[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"about_page"]]];
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
// Override to allow orientations other than the default portrait orientation.
Packit 1fb8d4
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
Packit 1fb8d4
    return YES;
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
#pragma mark -
Packit 1fb8d4
#pragma mark UIWebView callbacks
Packit 1fb8d4
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
Packit 1fb8d4
{	
Packit 1fb8d4
	if([[request URL] isFileURL])
Packit 1fb8d4
		return YES;
Packit 1fb8d4
	
Packit 1fb8d4
	if(navigationType == UIWebViewNavigationTypeLinkClicked)
Packit 1fb8d4
	{
Packit 1fb8d4
        [last_link_clicked release];
Packit 1fb8d4
		last_link_clicked = [[[request URL] absoluteString] retain];
Packit 1fb8d4
		BlockAlertView *alert = [BlockAlertView alertWithTitle:NSLocalizedString(@"External Link", @"External Link Alert Title")
Packit 1fb8d4
                                                        message:[NSString stringWithFormat:NSLocalizedString(@"Open [%@] in Browser?", @"Open link in browser (with link as parameter)"), last_link_clicked]];
Packit 1fb8d4
Packit 1fb8d4
        [alert setCancelButtonWithTitle:NSLocalizedString(@"No", @"No Button") block:nil];
Packit 1fb8d4
        [alert addButtonWithTitle:NSLocalizedString(@"OK", @"OK Button") block:^{
Packit 1fb8d4
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:last_link_clicked]];
Packit 1fb8d4
        }];
Packit 1fb8d4
		
Packit 1fb8d4
        [alert show];
Packit 1fb8d4
		
Packit 1fb8d4
		return NO;
Packit 1fb8d4
	}
Packit 1fb8d4
	return YES;
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
@end