| Index: components/arc/intent_helper/arc_intent_helper_bridge.cc
|
| diff --git a/components/arc/intent_helper/arc_intent_helper_bridge.cc b/components/arc/intent_helper/arc_intent_helper_bridge.cc
|
| index b691412c6e00863612c455b2230e235936bf3f83..bffc4a4111b51840250a2c8c6a8e5b1bfb1074a6 100644
|
| --- a/components/arc/intent_helper/arc_intent_helper_bridge.cc
|
| +++ b/components/arc/intent_helper/arc_intent_helper_bridge.cc
|
| @@ -23,6 +23,9 @@
|
|
|
| namespace arc {
|
|
|
| +// TODO(oka): Avoid to assume the class is singleton.
|
| +ArcIntentHelperBridge* g_arc_intent_helper_bridge = nullptr;
|
| +
|
| // static
|
| const char ArcIntentHelperBridge::kArcIntentHelperPackageName[] =
|
| "org.chromium.arc.intent_helper";
|
| @@ -36,12 +39,25 @@ ArcIntentHelperBridge::ArcIntentHelperBridge(
|
| icon_loader_(icon_loader),
|
| activity_resolver_(activity_resolver) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| + DCHECK(!g_arc_intent_helper_bridge);
|
| +
|
| arc_bridge_service()->intent_helper()->AddObserver(this);
|
| +
|
| + g_arc_intent_helper_bridge = this;
|
| }
|
|
|
| ArcIntentHelperBridge::~ArcIntentHelperBridge() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| + DCHECK_EQ(this, g_arc_intent_helper_bridge);
|
| +
|
| arc_bridge_service()->intent_helper()->RemoveObserver(this);
|
| +
|
| + g_arc_intent_helper_bridge = nullptr;
|
| +}
|
| +
|
| +// static
|
| +ArcIntentHelperBridge* ArcIntentHelperBridge::Get() {
|
| + return g_arc_intent_helper_bridge;
|
| }
|
|
|
| void ArcIntentHelperBridge::OnInstanceReady() {
|
| @@ -90,6 +106,14 @@ void ArcIntentHelperBridge::SetWallpaperDeprecated(
|
| LOG(ERROR) << "IntentHelper.SetWallpaper is deprecated";
|
| }
|
|
|
| +void ArcIntentHelperBridge::AddObserver(Observer* observer) {
|
| + observer_list_.AddObserver(observer);
|
| +}
|
| +
|
| +void ArcIntentHelperBridge::RemoveObserver(Observer* observer) {
|
| + observer_list_.RemoveObserver(observer);
|
| +}
|
| +
|
| std::unique_ptr<ash::LinkHandlerModel> ArcIntentHelperBridge::CreateModel(
|
| const GURL& url) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| @@ -168,6 +192,9 @@ void ArcIntentHelperBridge::OnIntentFiltersUpdated(
|
| mojo::Array<mojom::IntentFilterPtr> filters) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| activity_resolver_->UpdateIntentFilters(std::move(filters));
|
| +
|
| + for (auto& observer : observer_list_)
|
| + observer.OnAppsUpdated();
|
| }
|
|
|
| } // namespace arc
|
|
|