| Index: athena/activity/activity_manager_impl.cc
|
| diff --git a/athena/activity/activity_manager_impl.cc b/athena/activity/activity_manager_impl.cc
|
| index 09dd4785af07f76ab8039601c9a1cf4a16f998fe..c1e1faa6afa87a49dbdedf2a1323a7ed2688ee2c 100644
|
| --- a/athena/activity/activity_manager_impl.cc
|
| +++ b/athena/activity/activity_manager_impl.cc
|
| @@ -7,8 +7,10 @@
|
| #include <algorithm>
|
|
|
| #include "athena/activity/public/activity.h"
|
| +#include "athena/activity/public/activity_manager_observer.h"
|
| #include "athena/activity/public/activity_view_manager.h"
|
| #include "base/logging.h"
|
| +#include "base/observer_list.h"
|
|
|
| namespace athena {
|
|
|
| @@ -37,11 +39,17 @@ void ActivityManagerImpl::AddActivity(Activity* activity) {
|
| activities_.push_back(activity);
|
| ActivityViewManager* manager = ActivityViewManager::Get();
|
| manager->AddActivity(activity);
|
| + FOR_EACH_OBSERVER(ActivityManagerObserver,
|
| + observers_,
|
| + OnActivityStarted(activity));
|
| }
|
|
|
| void ActivityManagerImpl::RemoveActivity(Activity* activity) {
|
| std::vector<Activity*>::iterator find =
|
| std::find(activities_.begin(), activities_.end(), activity);
|
| + FOR_EACH_OBSERVER(ActivityManagerObserver,
|
| + observers_,
|
| + OnActivityEnding(activity));
|
| if (find != activities_.end()) {
|
| activities_.erase(find);
|
| ActivityViewManager* manager = ActivityViewManager::Get();
|
| @@ -54,6 +62,14 @@ void ActivityManagerImpl::UpdateActivity(Activity* activity) {
|
| manager->UpdateActivity(activity);
|
| }
|
|
|
| +void ActivityManagerImpl::AddObserver(ActivityManagerObserver* observer) {
|
| + observers_.AddObserver(observer);
|
| +}
|
| +
|
| +void ActivityManagerImpl::RemoveObserver(ActivityManagerObserver* observer) {
|
| + observers_.RemoveObserver(observer);
|
| +}
|
| +
|
| // static
|
| ActivityManager* ActivityManager::Create() {
|
| ActivityViewManager::Create();
|
| @@ -73,4 +89,5 @@ void ActivityManager::Shutdown() {
|
| ActivityViewManager::Shutdown();
|
| }
|
|
|
| +
|
| } // namespace athena
|
|
|