1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "athena/activity/public/activity_manager.h"
10 #include "athena/activity/public/activity_view_manager.h"
11 #include "base/logging.h"
17 ActivityManager
* instance
= NULL
;
19 class ActivityManagerImpl
: public ActivityManager
{
21 ActivityManagerImpl() {
25 virtual ~ActivityManagerImpl() {
26 CHECK_EQ(this, instance
);
31 virtual void AddActivity(Activity
* activity
) OVERRIDE
{
32 CHECK(activities_
.end() == std::find(activities_
.begin(),
35 activities_
.push_back(activity
);
36 ActivityViewManager
* manager
= ActivityViewManager::Get();
37 manager
->AddActivity(activity
);
40 virtual void RemoveActivity(Activity
* activity
) OVERRIDE
{
41 std::vector
<Activity
*>::iterator find
= std::find(activities_
.begin(),
44 if (find
!= activities_
.end()) {
45 activities_
.erase(find
);
47 ActivityViewManager
* manager
= ActivityViewManager::Get();
48 manager
->AddActivity(activity
);
52 virtual void UpdateActivity(Activity
* activity
) OVERRIDE
{
53 ActivityViewManager
* manager
= ActivityViewManager::Get();
54 manager
->UpdateActivity(activity
);
58 std::vector
<Activity
*> activities_
;
60 DISALLOW_COPY_AND_ASSIGN(ActivityManagerImpl
);
66 ActivityManager
* ActivityManager::Create() {
67 new ActivityManagerImpl();
70 ActivityViewManager::Create();
75 ActivityManager
* ActivityManager::Get() {
79 void ActivityManager::Shutdown() {
80 ActivityViewManager::Shutdown();