Index: components/arc/arc_service_manager.cc |
diff --git a/components/arc/arc_service_manager.cc b/components/arc/arc_service_manager.cc |
index fd92b9d567a94e46c49fae1ff9dcaeb40dc4d46c..6a7bcfae5a60231693c597688c4dce4afa4d10e9 100644 |
--- a/components/arc/arc_service_manager.cc |
+++ b/components/arc/arc_service_manager.cc |
@@ -6,11 +6,13 @@ |
#include <utility> |
+#include "base/logging.h" |
#include "base/memory/ptr_util.h" |
#include "base/sequenced_task_runner.h" |
#include "base/threading/thread_task_runner_handle.h" |
#include "components/arc/arc_bridge_service.h" |
#include "components/arc/arc_bridge_service_impl.h" |
+#include "components/arc/intent_helper/arc_intent_helper_observer.h" |
namespace arc { |
@@ -24,9 +26,33 @@ ArcBridgeService* g_arc_bridge_service_for_testing = nullptr; |
} // namespace |
+class ArcServiceManager::IntentHelperObserverImpl |
+ : public ArcIntentHelperObserver { |
+ public: |
+ explicit IntentHelperObserverImpl(ArcServiceManager* manager); |
+ ~IntentHelperObserverImpl() override = default; |
+ |
+ private: |
+ void OnAppsUpdated() override; |
+ ArcServiceManager* const manager_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(IntentHelperObserverImpl); |
+}; |
+ |
+ArcServiceManager::IntentHelperObserverImpl::IntentHelperObserverImpl( |
+ ArcServiceManager* manager) |
+ : manager_(manager) {} |
+ |
+void ArcServiceManager::IntentHelperObserverImpl::OnAppsUpdated() { |
+ DCHECK(manager_->thread_checker_.CalledOnValidThread()); |
+ for (auto& observer : manager_->observer_list_) |
+ observer.OnAppsUpdated(); |
+} |
+ |
ArcServiceManager::ArcServiceManager( |
scoped_refptr<base::TaskRunner> blocking_task_runner) |
: blocking_task_runner_(blocking_task_runner), |
+ intent_helper_observer_(base::MakeUnique<IntentHelperObserverImpl>(this)), |
icon_loader_(new ActivityIconLoader()), |
activity_resolver_(new LocalActivityResolver()) { |
DCHECK(!g_arc_service_manager); |
@@ -85,12 +111,6 @@ void ArcServiceManager::RemoveObserver(Observer* observer) { |
observer_list_.RemoveObserver(observer); |
} |
-void ArcServiceManager::OnAppsUpdated() { |
- DCHECK(thread_checker_.CalledOnValidThread()); |
- for (auto& observer : observer_list_) |
- observer.OnAppsUpdated(); |
-} |
- |
void ArcServiceManager::Shutdown() { |
DCHECK(thread_checker_.CalledOnValidThread()); |
icon_loader_ = nullptr; |