Commit 6a95bc93 authored by Yue Li's avatar Yue Li Committed by Commit Bot

Add platform network provider to assistant

Bug: 824566
Test: Manual
Change-Id: I58609375c31f9fc86e16ef2e214747ced8f24218
Reviewed-on: https://chromium-review.googlesource.com/974572
Commit-Queue: Yue Li <updowndota@chromium.org>
Reviewed-by: default avatarXiaohui Chen <xiaohuic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545733}
parent eb94dea3
...@@ -41,6 +41,8 @@ source_set("lib") { ...@@ -41,6 +41,8 @@ source_set("lib") {
"platform/audio_input_provider_impl.h", "platform/audio_input_provider_impl.h",
"platform/file_provider_impl.cc", "platform/file_provider_impl.cc",
"platform/file_provider_impl.h", "platform/file_provider_impl.h",
"platform/network_provider_impl.cc",
"platform/network_provider_impl.h",
"platform/system_provider_impl.cc", "platform/system_provider_impl.cc",
"platform/system_provider_impl.h", "platform/system_provider_impl.h",
"platform_api_impl.cc", "platform_api_impl.cc",
......
// Copyright 2018 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.
#include "chromeos/services/assistant/platform/network_provider_impl.h"
using assistant_client::NetworkProvider;
using ConnectionStatus = assistant_client::NetworkProvider::ConnectionStatus;
namespace chromeos {
namespace assistant {
NetworkProviderImpl::NetworkProviderImpl()
: connection_type_(net::NetworkChangeNotifier::GetConnectionType()) {
net::NetworkChangeNotifier::AddNetworkChangeObserver(this);
}
NetworkProviderImpl::~NetworkProviderImpl() = default;
void NetworkProviderImpl::OnNetworkChanged(
net::NetworkChangeNotifier::ConnectionType type) {
connection_type_ = type;
}
ConnectionStatus NetworkProviderImpl::GetConnectionStatus() {
// TODO(updowndota): Check actual internect connectivity in addition to the
// physical connectivity.
switch (connection_type_) {
case net::NetworkChangeNotifier::CONNECTION_UNKNOWN:
return ConnectionStatus::UNKNOWN;
case net::NetworkChangeNotifier::CONNECTION_ETHERNET:
case net::NetworkChangeNotifier::CONNECTION_WIFI:
case net::NetworkChangeNotifier::CONNECTION_2G:
case net::NetworkChangeNotifier::CONNECTION_3G:
case net::NetworkChangeNotifier::CONNECTION_4G:
case net::NetworkChangeNotifier::CONNECTION_BLUETOOTH:
return ConnectionStatus::CONNECTED;
case net::NetworkChangeNotifier::CONNECTION_NONE:
return ConnectionStatus::DISCONNECTED_FROM_INTERNET;
}
}
// Mdns responder is not supported in ChromeOS.
assistant_client::MdnsResponder* NetworkProviderImpl::GetMdnsResponder() {
return nullptr;
}
} // namespace assistant
} // namespace chromeos
// Copyright 2018 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.
#ifndef CHROMEOS_SERVICES_ASSISTANT_PLATFORM_NETWORK_PROVIDER_IMPL_H_
#define CHROMEOS_SERVICES_ASSISTANT_PLATFORM_NETWORK_PROVIDER_IMPL_H_
#include "base/macros.h"
#include "libassistant/shared/public/platform_net.h"
#include "net/base/network_change_notifier.h"
namespace chromeos {
namespace assistant {
class NetworkProviderImpl
: public assistant_client::NetworkProvider,
public net::NetworkChangeNotifier::NetworkChangeObserver {
public:
NetworkProviderImpl();
~NetworkProviderImpl() override;
// net::NetworkChangeNotifier overrides:
void OnNetworkChanged(
net::NetworkChangeNotifier::ConnectionType type) override;
// assistant_client::NetworkProvider::NetworkChangeObserver overrides:
ConnectionStatus GetConnectionStatus() override;
assistant_client::MdnsResponder* GetMdnsResponder() override;
private:
net::NetworkChangeNotifier::ConnectionType connection_type_;
DISALLOW_COPY_AND_ASSIGN(NetworkProviderImpl);
};
} // namespace assistant
} // namespace chromeos
#endif // CHROMEOS_SERVICES_ASSISTANT_PLATFORM_NETWORK_PROVIDER_IMPL_H_
...@@ -76,7 +76,6 @@ PlatformApiImpl::PlatformApiImpl(const std::string& config, ...@@ -76,7 +76,6 @@ PlatformApiImpl::PlatformApiImpl(const std::string& config,
mojom::AudioInputPtr audio_input) mojom::AudioInputPtr audio_input)
: audio_input_provider_(std::move(audio_input)), : audio_input_provider_(std::move(audio_input)),
audio_output_provider_(config, this), audio_output_provider_(config, this),
network_provider_(config),
resource_provider_(config), resource_provider_(config),
system_provider_() {} system_provider_() {}
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "chromeos/services/assistant/platform/audio_input_provider_impl.h" #include "chromeos/services/assistant/platform/audio_input_provider_impl.h"
#include "chromeos/services/assistant/platform/file_provider_impl.h" #include "chromeos/services/assistant/platform/file_provider_impl.h"
#include "chromeos/services/assistant/platform/network_provider_impl.h"
#include "chromeos/services/assistant/platform/system_provider_impl.h" #include "chromeos/services/assistant/platform/system_provider_impl.h"
#include "chromeos/services/assistant/public/mojom/assistant.mojom.h" #include "chromeos/services/assistant/public/mojom/assistant.mojom.h"
// TODO(xiaohuic): replace with "base/macros.h" once we remove // TODO(xiaohuic): replace with "base/macros.h" once we remove
...@@ -19,7 +20,6 @@ ...@@ -19,7 +20,6 @@
#include "libassistant/contrib/core/macros.h" #include "libassistant/contrib/core/macros.h"
#include "libassistant/contrib/platform/audio/output/audio_output_provider_impl.h" #include "libassistant/contrib/platform/audio/output/audio_output_provider_impl.h"
#include "libassistant/contrib/platform/auth/auth_provider_impl.h" #include "libassistant/contrib/platform/auth/auth_provider_impl.h"
#include "libassistant/contrib/platform/net/network_provider_impl.h"
#include "libassistant/contrib/platform/resources/resource_provider.h" #include "libassistant/contrib/platform/resources/resource_provider.h"
#include "libassistant/shared/public/platform_api.h" #include "libassistant/shared/public/platform_api.h"
...@@ -78,7 +78,7 @@ class PlatformApiImpl : public assistant_client::PlatformApi { ...@@ -78,7 +78,7 @@ class PlatformApiImpl : public assistant_client::PlatformApi {
assistant_contrib::AudioOutputProviderImpl audio_output_provider_; assistant_contrib::AudioOutputProviderImpl audio_output_provider_;
DummyAuthProvider auth_provider_; DummyAuthProvider auth_provider_;
FileProviderImpl file_provider_; FileProviderImpl file_provider_;
assistant_contrib::NetworkProviderImpl network_provider_; NetworkProviderImpl network_provider_;
assistant_contrib::ResourceProviderImpl resource_provider_; assistant_contrib::ResourceProviderImpl resource_provider_;
SystemProviderImpl system_provider_; SystemProviderImpl system_provider_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment