Index: remoting/client/ios/facade/remoting_service.mm |
diff --git a/remoting/client/ios/facade/remoting_service.mm b/remoting/client/ios/facade/remoting_service.mm |
deleted file mode 100644 |
index 20f499fa01a17f21dccc400fc4c2d8508c4f690b..0000000000000000000000000000000000000000 |
--- a/remoting/client/ios/facade/remoting_service.mm |
+++ /dev/null |
@@ -1,176 +0,0 @@ |
-// Copyright 2017 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/client/ios/facade/remoting_service.h" |
- |
-#import <Foundation/Foundation.h> |
-#import <Security/Security.h> |
- |
-#import "base/mac/bind_objc_block.h" |
-#import "remoting/client/ios/domain/host_info.h" |
-#import "remoting/client/ios/domain/user_info.h" |
-#import "remoting/client/ios/facade/host_info.h" |
-#import "remoting/client/ios/facade/host_list_fetcher.h" |
-#import "remoting/client/ios/facade/ios_client_runtime_delegate.h" |
-#import "remoting/client/ios/facade/remoting_authentication.h" |
-#import "remoting/client/ios/facade/remoting_service.h" |
-#import "remoting/client/ios/keychain_wrapper.h" |
- |
-#include "base/logging.h" |
-#include "base/strings/sys_string_conversions.h" |
-#include "net/url_request/url_request_context_getter.h" |
-#include "remoting/base/oauth_token_getter.h" |
-#include "remoting/base/oauth_token_getter_impl.h" |
- |
-static NSString* const kCRDAuthenticatedUserEmailKey = |
- @"kCRDAuthenticatedUserEmailKey"; |
- |
-NSString* const kHostsDidUpdate = @"kHostsDidUpdate"; |
- |
-NSString* const kUserDidUpdate = @"kUserDidUpdate"; |
-NSString* const kUserInfo = @"kUserInfo"; |
- |
-@interface RemotingService ()<RemotingAuthenticationDelegate> { |
- std::unique_ptr<remoting::OAuthTokenGetter> _tokenGetter; |
- remoting::HostListFetcher* _hostListFetcher; |
- remoting::IosClientRuntimeDelegate* _clientRuntimeDelegate; |
-} |
-@end |
- |
-@implementation RemotingService |
- |
-@synthesize authentication = _authentication; |
-@synthesize hosts = _hosts; |
- |
-// RemotingService is a singleton. |
-+ (RemotingService*)SharedInstance { |
- static RemotingService* sharedInstance = nil; |
- static dispatch_once_t guard; |
- dispatch_once(&guard, ^{ |
- sharedInstance = [[RemotingService alloc] init]; |
- }); |
- return sharedInstance; |
-} |
- |
-- (instancetype)init { |
- self = [super init]; |
- if (self) { |
- _authentication = [[RemotingAuthentication alloc] init]; |
- _authentication.delegate = self; |
- _hosts = nil; |
- _hostListFetcher = nil; |
- // TODO(nicholss): This might need a pointer back to the service. |
- _clientRuntimeDelegate = |
- new remoting::IosClientRuntimeDelegate(); |
- [self runtime]->SetDelegate(_clientRuntimeDelegate); |
- } |
- return self; |
-} |
- |
-#pragma mark - RemotingService Implementation |
- |
-- (void)startHostListFetchWith:(NSString*)accessToken { |
- if (!_hostListFetcher) { |
- _hostListFetcher = new remoting::HostListFetcher( |
- remoting::ChromotingClientRuntime::GetInstance()->url_requester()); |
- } |
- _hostListFetcher->RetrieveHostlist( |
- base::SysNSStringToUTF8(accessToken), |
- base::BindBlockArc(^(const std::vector<remoting::HostInfo>& hostlist) { |
- NSMutableArray<HostInfo*>* hosts = |
- [NSMutableArray arrayWithCapacity:hostlist.size()]; |
- std::string status; |
- for (const remoting::HostInfo& host_info : hostlist) { |
- remoting::HostStatus host_status = host_info.status; |
- switch (host_status) { |
- case remoting::kHostStatusOnline: |
- status = "ONLINE"; |
- break; |
- case remoting::kHostStatusOffline: |
- status = "OFFLINE"; |
- break; |
- default: |
- NOTREACHED(); |
- } |
- // TODO(nicholss): Not yet integrated: createdTime, hostVersion, |
- // kind, offlineReason. Add them as the app will need this info. |
- HostInfo* host = [[HostInfo alloc] init]; |
- host.hostId = |
- [NSString stringWithCString:host_info.host_id.c_str() |
- encoding:[NSString defaultCStringEncoding]]; |
- host.hostName = |
- [NSString stringWithCString:host_info.host_name.c_str() |
- encoding:[NSString defaultCStringEncoding]]; |
- host.jabberId = |
- [NSString stringWithCString:host_info.host_jid.c_str() |
- encoding:[NSString defaultCStringEncoding]]; |
- host.publicKey = |
- [NSString stringWithCString:host_info.public_key.c_str() |
- encoding:[NSString defaultCStringEncoding]]; |
- host.status = |
- [NSString stringWithCString:status.c_str() |
- encoding:[NSString defaultCStringEncoding]]; |
- [hosts addObject:host]; |
- } |
- _hosts = hosts; |
- [self hostListUpdated]; |
- })); |
-} |
- |
-#pragma mark - Notifications |
- |
-- (void)hostListUpdated { |
- [[NSNotificationCenter defaultCenter] postNotificationName:kHostsDidUpdate |
- object:self |
- userInfo:nil]; |
-} |
- |
-#pragma mark - RemotingAuthenticationDelegate |
- |
-- (void)userDidUpdate:(UserInfo*)user { |
- NSDictionary* userInfo = nil; |
- if (user) { |
- userInfo = [NSDictionary dictionaryWithObject:user forKey:kUserInfo]; |
- } else { |
- _hosts = nil; |
- [self hostListUpdated]; |
- } |
- [[NSNotificationCenter defaultCenter] postNotificationName:kUserDidUpdate |
- object:self |
- userInfo:userInfo]; |
-} |
- |
-#pragma mark - Properties |
- |
-- (NSArray<HostInfo*>*)hosts { |
- if ([_authentication.user isAuthenticated]) { |
- return _hosts; |
- } |
- return nil; |
-} |
- |
-- (remoting::ChromotingClientRuntime*)runtime { |
- return remoting::ChromotingClientRuntime::GetInstance(); |
-} |
- |
-#pragma mark - Implementation |
- |
-- (void)requestHostListFetch { |
- [_authentication |
- callbackWithAccessToken:base::BindBlockArc(^( |
- remoting::OAuthTokenGetter::Status status, |
- const std::string& user_email, |
- const std::string& access_token) { |
- NSString* accessToken = |
- [NSString stringWithCString:access_token.c_str() |
- encoding:[NSString defaultCStringEncoding]]; |
- [self startHostListFetchWith:accessToken]; |
- })]; |
-} |
- |
-@end |