FMCPlanner2/FMC Planner 2/ViewControllerRouteRequest.m

144 lines
5.0 KiB
Objective-C

//
// RouteRequestViewController.m
// FMC Planner 2
//
// Created by Kilian Hofmann on 16.04.16.
// Copyright © 2016 Kilian Hofmann. All rights reserved.
//
#import "ViewControllerRouteRequest.h"
@implementation ViewControllerRouteRequest
- (void)viewDidLoad
{
[super viewDidLoad];
[_webView
loadRequest:[NSURLRequest
requestWithURL:
[NSURL URLWithString:@"http://www.vatroute.net"]]];
UIView *dummyView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
_textView.inputView = dummyView;
_activityIndicator.hidden = YES;
// Do any additional setup after loading the view.
}
- (IBAction)ok:(UIButton *)sender
{
[self parseRoute];
[self dismissViewControllerAnimated:YES completion:nil];
}
- (void)parseRoute
{
NSArray *route = [_textView.text componentsSeparatedByString:@" "];
NSUInteger waypoints = 0;
NSUInteger airways = 1;
NSUInteger page = 1;
[_main.save setValue:@"DIRECT" forKey:@"ROUTE 1/@LSKL1"];
for (NSString *str in route) {
if (waypoints < airways) {
waypoints += 1;
if (_main.navDataParser.notActive == false &&
[_main.navDataParser
findWaypoint:str
onAirway:[_main.save
valueForKey:[NSString
stringWithFormat:
@"ROUTE %lu/@LSKL%lu",
(unsigned long)page,
(unsigned long)
airways]]]
.count > 0) {
[_main.save
setValue:str
forKey:[NSString
stringWithFormat:@"ROUTE %lu/@LSKR%lu",
(unsigned long)page,
(unsigned long)waypoints]];
}
else if (_main.navDataParser.notActive) {
[_main.save
setValue:str
forKey:[NSString
stringWithFormat:@"ROUTE %lu/@LSKR%lu",
(unsigned long)page,
(unsigned long)waypoints]];
}
else {
_main.screen.Scratchpad.text = INVALID;
break;
}
}
else if (waypoints == airways) {
airways += 1;
if (_main.navDataParser.notActive == false &&
[_main.navDataParser
findWaypoint:[_main.save
valueForKey:[NSString
stringWithFormat:
@"ROUTE %lu/@LSKR%lu",
(unsigned long)page,
(unsigned long)
waypoints]]
onAirway:str]
.count > 0) {
[_main.save
setValue:str
forKey:[NSString
stringWithFormat:@"ROUTE %lu/@LSKL%lu",
(unsigned long)page,
(unsigned long)airways]];
}
else if (_main.navDataParser.notActive) {
[_main.save
setValue:str
forKey:[NSString
stringWithFormat:@"ROUTE %lu/@LSKL%lu",
(unsigned long)page,
(unsigned long)airways]];
}
else {
_main.screen.Scratchpad.text = INVALID;
break;
}
}
if (waypoints == 6) {
waypoints = 0;
airways = 0;
page += 1;
[_main.save setValue:@(page) forKey:@"maxRte"];
}
}
}
#pragma mark - Delegate
- (BOOL)webView:(UIWebView *)webView
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType
{
NSURL *url = request.URL;
_url.text = url.absoluteString;
_activityIndicator.hidden = NO;
[_activityIndicator startAnimating];
return YES;
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
_activityIndicator.hidden = YES;
[_activityIndicator stopAnimating];
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
[_webView loadRequest:[NSURLRequest
requestWithURL:[NSURL URLWithString:_url.text]]];
return YES;
}
@end