Remove CloudDelegate::Observer::OnDeviceInfoChanged

This method notification is just a proxy for config change event.
We can directly signup for this notifications from config.

BUG:27480269
Change-Id: Ic83dd9c6f5180428168cc2a22d2671035334211e
Reviewed-on: https://weave-review.googlesource.com/2824
Reviewed-by: Alex Vakulenko <avakulenko@google.com>
diff --git a/src/privet/cloud_delegate.cc b/src/privet/cloud_delegate.cc
index 0833780..65e4b87 100644
--- a/src/privet/cloud_delegate.cc
+++ b/src/privet/cloud_delegate.cc
@@ -46,8 +46,6 @@
       : task_runner_{task_runner},
         device_{device},
         component_manager_{component_manager} {
-    device_->GetMutableConfig()->AddOnChangedCallback(base::Bind(
-        &CloudDelegateImpl::OnConfigChanged, weak_factory_.GetWeakPtr()));
     device_->AddGcdStateChangedCallback(base::Bind(
         &CloudDelegateImpl::OnRegistrationChanged, weak_factory_.GetWeakPtr()));
 
@@ -244,8 +242,6 @@
     CHECK(command_owners_.erase(command->GetID()));
   }
 
-  void OnConfigChanged(const Settings&) { NotifyOnDeviceInfoChanged(); }
-
   void OnRegistrationChanged(GcdState status) {
     if (status == GcdState::kUnconfigured ||
         status == GcdState::kInvalidCredentials) {
@@ -262,7 +258,6 @@
                          EnumToString(status).c_str());
       connection_state_ = ConnectionState{std::move(error)};
     }
-    NotifyOnDeviceInfoChanged();
   }
 
   void OnRegisterSuccess(const std::string& cloud_id) {
@@ -378,10 +373,6 @@
       new CloudDelegateImpl{task_runner, device, component_manager}};
 }
 
-void CloudDelegate::NotifyOnDeviceInfoChanged() {
-  FOR_EACH_OBSERVER(Observer, observer_list_, OnDeviceInfoChanged());
-}
-
 void CloudDelegate::NotifyOnTraitDefsChanged() {
   FOR_EACH_OBSERVER(Observer, observer_list_, OnTraitDefsChanged());
 }
diff --git a/src/privet/cloud_delegate.h b/src/privet/cloud_delegate.h
index 5ae54cf..4ded884 100644
--- a/src/privet/cloud_delegate.h
+++ b/src/privet/cloud_delegate.h
@@ -47,7 +47,6 @@
    public:
     virtual ~Observer() {}
 
-    virtual void OnDeviceInfoChanged() {}
     virtual void OnTraitDefsChanged() {}
     virtual void OnStateChanged() {}
     virtual void OnComponentTreeChanged() {}
@@ -136,7 +135,6 @@
     observer_list_.RemoveObserver(observer);
   }
 
-  void NotifyOnDeviceInfoChanged();
   void NotifyOnTraitDefsChanged();
   void NotifyOnStateChanged();
   void NotifyOnComponentTreeChanged();
diff --git a/src/privet/privet_manager.cc b/src/privet/privet_manager.cc
index 9c717ce..36223ba 100644
--- a/src/privet/privet_manager.cc
+++ b/src/privet/privet_manager.cc
@@ -12,7 +12,6 @@
 #include <base/json/json_reader.h>
 #include <base/json/json_writer.h>
 #include <base/memory/weak_ptr.h>
-#include <base/scoped_observer.h>
 #include <base/strings/string_number_conversions.h>
 #include <base/values.h>
 #include <weave/provider/network.h>
@@ -58,7 +57,6 @@
       http_server->GetRequestTimeout());
   cloud_ =
       CloudDelegate::CreateDefault(task_runner_, device, component_manager);
-  cloud_observer_.Add(cloud_.get());
 
   security_.reset(new SecurityManager(device->GetMutableConfig(), auth_manager,
                                       task_runner_));
@@ -92,6 +90,9 @@
         path, base::Bind(&Manager::PrivetRequestHandler,
                          weak_ptr_factory_.GetWeakPtr()));
   }
+
+  device->GetMutableConfig()->AddOnChangedCallback(base::Bind(
+      &Manager::OnDeviceInfoChanged, weak_ptr_factory_.GetWeakPtr()));
 }
 
 std::string Manager::GetCurrentlyConnectedSsid() const {
@@ -106,7 +107,7 @@
   security_->RegisterPairingListeners(on_start, on_end);
 }
 
-void Manager::OnDeviceInfoChanged() {
+void Manager::OnDeviceInfoChanged(const weave::Settings&) {
   OnChanged();
 }
 
diff --git a/src/privet/privet_manager.h b/src/privet/privet_manager.h
index 06eb89a..c91d72c 100644
--- a/src/privet/privet_manager.h
+++ b/src/privet/privet_manager.h
@@ -11,7 +11,6 @@
 #include <vector>
 
 #include <base/memory/weak_ptr.h>
-#include <base/scoped_observer.h>
 #include <weave/device.h>
 
 #include "src/privet/cloud_delegate.h"
@@ -41,10 +40,10 @@
 class Publisher;
 class SecurityManager;
 
-class Manager : public CloudDelegate::Observer {
+class Manager {
  public:
   explicit Manager(provider::TaskRunner* task_runner);
-  ~Manager() override;
+  ~Manager();
 
   void Start(provider::Network* network,
              provider::DnsServiceDiscovery* dns_sd,
@@ -61,8 +60,7 @@
       const Device::PairingEndCallback& end_callback);
 
  private:
-  // CloudDelegate::Observer
-  void OnDeviceInfoChanged() override;
+  void OnDeviceInfoChanged(const weave::Settings&);
 
   void PrivetRequestHandler(
       std::unique_ptr<provider::HttpServer::Request> request);
@@ -87,8 +85,6 @@
   std::unique_ptr<Publisher> publisher_;
   std::unique_ptr<PrivetHandler> privet_handler_;
 
-  ScopedObserver<CloudDelegate, CloudDelegate::Observer> cloud_observer_{this};
-
   base::WeakPtrFactory<Manager> weak_ptr_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(Manager);
 };