Index: remoting/ios/ui/host_list_view_controller.mm |
diff --git a/remoting/ios/ui/host_list_view_controller.mm b/remoting/ios/ui/host_list_view_controller.mm |
deleted file mode 100644 |
index 7dd7fa2b3c94958fa47b2f42c02c0c10e5d5bcdf..0000000000000000000000000000000000000000 |
--- a/remoting/ios/ui/host_list_view_controller.mm |
+++ /dev/null |
@@ -1,229 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#if !defined(__has_feature) || !__has_feature(objc_arc) |
-#error "This file requires ARC support." |
-#endif |
- |
-#import "remoting/ios/ui/host_list_view_controller.h" |
- |
-#import "remoting/ios/authorize.h" |
-#import "remoting/ios/host.h" |
-#import "remoting/ios/host_cell.h" |
-#import "remoting/ios/host_refresh.h" |
-#import "remoting/ios/utility.h" |
-#import "remoting/ios/ui/host_view_controller.h" |
- |
-@interface HostListViewController (Private) |
-- (void)refreshHostList; |
-- (void)checkUserAndRefreshHostList; |
-- (BOOL)isSignedIn; |
-- (void)signInUser; |
-// Callback from [Authorize createLoginController...] |
-- (void)viewController:(UIViewController*)viewController |
- finishedWithAuth:(GTMOAuth2Authentication*)authResult |
- error:(NSError*)error; |
-@end |
- |
-@implementation HostListViewController |
- |
-@synthesize userEmail = _userEmail; |
-@synthesize authorization = _authorization; |
- |
-// Override default setter |
-- (void)setAuthorization:(GTMOAuth2Authentication*)authorization { |
- _authorization = authorization; |
- if (_authorization.canAuthorize) { |
- _userEmail = _authorization.userEmail; |
- } else { |
- _userEmail = nil; |
- } |
- |
- NSString* userName = _userEmail; |
- |
- if (userName == nil) { |
- userName = @"Not logged in"; |
- } |
- |
- [_btnAccount setTitle:userName forState:UIControlStateNormal]; |
- |
- [self refreshHostList]; |
-} |
- |
-// Override UIViewController |
-// Create google+ service for google authentication and oAuth2 authorization. |
-- (void)viewDidLoad { |
- [super viewDidLoad]; |
- |
- [_tableHostList setDataSource:self]; |
- [_tableHostList setDelegate:self]; |
- |
- _versionInfo.title = [Utility appVersionNumberDisplayString]; |
-} |
- |
-// Override UIViewController |
-- (void)viewWillAppear:(BOOL)animated { |
- [super viewWillAppear:animated]; |
- [self.navigationController setNavigationBarHidden:NO animated:NO]; |
- [self setAuthorization:[Authorize getAnyExistingAuthorization]]; |
-} |
- |
-// Override UIViewController |
-// Cancel segue when host status is not online |
-- (BOOL)shouldPerformSegueWithIdentifier:(NSString*)identifier |
- sender:(id)sender { |
- if ([identifier isEqualToString:@"ConnectToHost"]) { |
- Host* host = [self hostAtIndex:[_tableHostList indexPathForCell:sender]]; |
- if (![host.status isEqualToString:@"ONLINE"]) { |
- return NO; |
- } |
- } |
- return YES; |
-} |
- |
-// Override UIViewController |
-// check for segues defined in the storyboard by identifier, and set a few |
-// properties before transitioning |
-- (void)prepareForSegue:(UIStoryboardSegue*)segue sender:(id)sender { |
- if ([segue.identifier isEqualToString:@"ConnectToHost"]) { |
- // the designationViewController type is defined by the storyboard |
- HostViewController* hostView = |
- static_cast<HostViewController*>(segue.destinationViewController); |
- |
- NSString* authToken = |
- [_authorization.parameters valueForKey:@"access_token"]; |
- |
- if (authToken == nil) { |
- authToken = _authorization.authorizationTokenKey; |
- } |
- |
- [hostView setHostDetails:[self hostAtIndex:[_tableHostList |
- indexPathForCell:sender]] |
- userEmail:_userEmail |
- authorizationToken:authToken]; |
- } |
-} |
- |
-// @protocol HostRefreshDelegate, remember received host list for the table |
-// view to refresh from |
-- (void)hostListRefresh:(NSArray*)hostList |
- errorMessage:(NSString*)errorMessage { |
- if (hostList != nil) { |
- _hostList = hostList; |
- [_tableHostList reloadData]; |
- } |
- [_refreshActivityIndicator stopAnimating]; |
- if (errorMessage != nil) { |
- [Utility showAlert:@"Host Refresh Failed" message:errorMessage]; |
- } |
-} |
- |
-// @protocol UITableViewDataSource |
-// Only have 1 section and it contains all the hosts |
-- (NSInteger)tableView:(UITableView*)tableView |
- numberOfRowsInSection:(NSInteger)section { |
- return [_hostList count]; |
-} |
- |
-// @protocol UITableViewDataSource |
-// Convert a host entry to a table row |
-- (HostCell*)tableView:(UITableView*)tableView |
- cellForRowAtIndexPath:(NSIndexPath*)indexPath { |
- static NSString* CellIdentifier = @"HostStatusCell"; |
- |
- HostCell* cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier |
- forIndexPath:indexPath]; |
- |
- Host* host = [self hostAtIndex:indexPath]; |
- cell.labelHostName.text = host.hostName; |
- cell.labelStatus.text = host.status; |
- |
- UIColor* statColor = nil; |
- if ([host.status isEqualToString:@"ONLINE"]) { |
- statColor = [[UIColor alloc] initWithRed:0 green:1 blue:0 alpha:1]; |
- } else { |
- statColor = [[UIColor alloc] initWithRed:1 green:0 blue:0 alpha:1]; |
- } |
- [cell.labelStatus setTextColor:statColor]; |
- |
- return cell; |
-} |
- |
-// @protocol UITableViewDataSource |
-// Rows are not editable via standard UI mechanisms |
-- (BOOL)tableView:(UITableView*)tableView |
- canEditRowAtIndexPath:(NSIndexPath*)indexPath { |
- return NO; |
-} |
- |
-- (IBAction)btnRefreshHostListPressed:(id)sender { |
- [self refreshHostList]; |
-} |
- |
-- (IBAction)btnAccountPressed:(id)sender { |
- [self signInUser]; |
-} |
- |
-- (void)refreshHostList { |
- [_refreshActivityIndicator startAnimating]; |
- _hostList = [[NSArray alloc] init]; |
- [_tableHostList reloadData]; |
- |
- // Insert a small delay so the user is well informed that something is |
- // happening by the animating activity indicator |
- [self performSelector:@selector(checkUserAndRefreshHostList) |
- withObject:nil |
- afterDelay:.5]; |
-} |
- |
-// Most likely you want to call refreshHostList |
-- (void)checkUserAndRefreshHostList { |
- if (![self isSignedIn]) { |
- [self signInUser]; |
- } else { |
- HostRefresh* hostRefresh = [[HostRefresh alloc] init]; |
- [hostRefresh refreshHostList:_authorization delegate:self]; |
- } |
-} |
- |
-- (BOOL)isSignedIn { |
- return (_userEmail != nil); |
-} |
- |
-// Launch the google.com authentication and authorization process. If a user is |
-// already signed in, begin by signing out so another account could be |
-// signed in. |
-- (void)signInUser { |
- [self presentViewController: |
- [Authorize createLoginController:self |
- finishedSelector:@selector(viewController: |
- finishedWithAuth: |
- error:)] |
- animated:YES |
- completion:nil]; |
-} |
- |
-// Callback from [Authorize createLoginController...] |
-// Handle completion of the authentication process, and updates the service |
-// with the new credentials. |
-- (void)viewController:(UIViewController*)viewController |
- finishedWithAuth:(GTMOAuth2Authentication*)authResult |
- error:(NSError*)error { |
- [viewController.presentingViewController dismissViewControllerAnimated:NO |
- completion:nil]; |
- |
- if (error != nil) { |
- [Utility showAlert:@"Authentication Error" |
- message:error.localizedDescription]; |
- [self setAuthorization:nil]; |
- } else { |
- [self setAuthorization:authResult]; |
- } |
-} |
- |
-- (Host*)hostAtIndex:(NSIndexPath*)indexPath { |
- return [_hostList objectAtIndex:indexPath.row]; |
-} |
- |
-@end |