Chromium Code Reviews| 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..e12cc2d8e6623621ee099977d50b68ad7aaf7fb0 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. |
|
Yusuke Sato
2016/11/17 04:22:37
Adding more global pointers to components/arc/ see
hidehiko
2016/11/17 07:34:19
ArcIntentHelperBridge's ctor, and
ArcServiceManage
Yusuke Sato
2016/11/17 09:15:27
Well, I wanted to make the code *look* slightly be
oka
2016/11/21 07:02:15
Thank you for the suggestion. I will try the const
oka
2016/11/21 07:02:15
Abe-san suggested this solution. @hidehiko what do
Yusuke Sato
2016/11/21 17:21:05
What do you mean by "the next patch"? Next patch s
oka
2016/11/24 15:14:17
Updated the construct as you suggested.
|
| +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,10 @@ void ArcIntentHelperBridge::SetWallpaperDeprecated( |
| LOG(ERROR) << "IntentHelper.SetWallpaper is deprecated"; |
| } |
| +void ArcIntentHelperBridge::AddObserver(Observer* observer) { |
| + observer_list_.AddObserver(observer); |
| +} |
| + |
| std::unique_ptr<ash::LinkHandlerModel> ArcIntentHelperBridge::CreateModel( |
| const GURL& url) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| @@ -168,6 +188,10 @@ void ArcIntentHelperBridge::OnIntentFiltersUpdated( |
| mojo::Array<mojom::IntentFilterPtr> filters) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| activity_resolver_->UpdateIntentFilters(std::move(filters)); |
| + |
| + for (auto& observer : observer_list_) { |
|
Yusuke Sato
2016/11/17 02:29:54
nit: no {}
oka
2016/11/21 07:02:15
Done.
|
| + observer.OnAppsUpdated(); |
| + } |
| } |
| } // namespace arc |