11#import "AboutController.h"
13#import "BlockAlertView.h"
19- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
21 if ((
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]))
25 [
self setTitle:NSLocalizedString(@"About", @"About Controller title")];
26 UIImage *tabBarIcon = [UIImage
27 imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"tabbar_icon_about"
29 [
self setTabBarItem:[[[UITabBarItem alloc]
30 initWithTitle:NSLocalizedString(@"About", @"Tabbar item about")
34 last_link_clicked = nil;
42 [last_link_clicked release];
48 WKWebViewConfiguration *config = [[[WKWebViewConfiguration alloc] init] autorelease];
49 [config setDataDetectorTypes:WKDataDetectorTypeNone];
50 webView = [[[WKWebView alloc] initWithFrame:CGRectZero configuration:config] autorelease];
52 setAutoresizingMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)];
53 [webView setAutoresizesSubviews:YES];
54 [webView setNavigationDelegate:self];
55 [
self setView:webView];
63 NSString *filename = (IsPhone() ?
@"about_phone" :
@"about");
64 NSString *htmlString = [[[NSString alloc]
65 initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:filename
67 inDirectory:@"about_page"]
68 encoding:NSUTF8StringEncoding
69 error:nil] autorelease];
72 loadHTMLString:[NSString stringWithFormat:htmlString, TSXAppFullVersion(),
73 [[UIDevice currentDevice] systemName],
74 [[UIDevice currentDevice] systemVersion],
75 [[UIDevice currentDevice] model]]
76 baseURL:[NSURL fileURLWithPath:[[[NSBundle mainBundle] bundlePath]
77 stringByAppendingPathComponent:@"about_page"]]];
81- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
87#pragma mark WKWebView callbacks
88- (void)webView:(WKWebView *)wv
89 decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction
90 decisionHandler:(
void (^)(WKNavigationActionPolicy))decisionHandler
92 NSURLRequest *request = [navigationAction request];
94 if ([[request URL] isFileURL])
96 decisionHandler(WKNavigationActionPolicyAllow);
100 if ([navigationAction navigationType] == WKNavigationTypeLinkActivated)
102 [last_link_clicked release];
103 last_link_clicked = [[[request URL] absoluteString] retain];
105 alertWithTitle:NSLocalizedString(@"External Link", @"External Link Alert Title")
106 message:[NSString stringWithFormat:
108 @"Open [%@] in Browser?",
109 @"Open link in browser (with link as parameter)"),
112 [alert setCancelButtonWithTitle:NSLocalizedString(@"No", @"No Button") block:nil];
113 [alert addButtonWithTitle:NSLocalizedString(@"OK", @"OK Button")
115 [[UIApplication sharedApplication]
116 openURL:[NSURL URLWithString:last_link_clicked]
118 completionHandler:nil];
123 decisionHandler(WKNavigationActionPolicyCancel);
127 decisionHandler(WKNavigationActionPolicyAllow);