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 #ifndef ATHENA_CONTENT_APP_ACTIVITY_H_
6 #define ATHENA_CONTENT_APP_ACTIVITY_H_
8 #include "athena/activity/public/activity.h"
9 #include "athena/activity/public/activity_view_model.h"
10 #include "content/public/browser/web_contents_observer.h"
11 #include "ui/gfx/image/image_skia.h"
23 class AppActivityRegistry
;
25 // The activity object for a hosted V2 application.
26 class AppActivity
: public Activity
,
27 public ActivityViewModel
,
28 public content::WebContentsObserver
{
30 explicit AppActivity(const std::string
& app_id
);
31 virtual ~AppActivity();
34 virtual athena::ActivityViewModel
* GetActivityViewModel() OVERRIDE
;
35 virtual void SetCurrentState(Activity::ActivityState state
) OVERRIDE
;
36 virtual ActivityState
GetCurrentState() OVERRIDE
;
37 virtual bool IsVisible() OVERRIDE
;
38 virtual ActivityMediaState
GetMediaState() OVERRIDE
;
39 virtual aura::Window
* GetWindow() OVERRIDE
;
42 virtual void Init() OVERRIDE
;
43 virtual SkColor
GetRepresentativeColor() const OVERRIDE
;
44 virtual base::string16
GetTitle() const OVERRIDE
;
45 virtual bool UsesFrame() const OVERRIDE
;
46 virtual views::View
* GetContentsView() OVERRIDE
;
47 virtual void CreateOverviewModeImage() OVERRIDE
;
48 virtual gfx::ImageSkia
GetOverviewModeImage() OVERRIDE
;
51 // content::WebContentsObserver:
52 virtual void TitleWasSet(content::NavigationEntry
* entry
,
53 bool explicit_set
) OVERRIDE
;
54 virtual void DidUpdateFaviconURL(
55 const std::vector
<content::FaviconURL
>& candidates
) OVERRIDE
;
58 virtual content::WebContents
* GetWebContents() = 0;
61 // Register this activity with its application.
62 void RegisterActivity();
64 const std::string app_id_
;
66 views::WebView
* web_view_
;
68 // The current state for this activity.
69 ActivityState current_state_
;
71 // The image which will be used in overview mode.
72 gfx::ImageSkia overview_mode_image_
;
74 // If known the registry which holds all activities for the associated app.
75 // This object is owned by |AppRegistry| and will be a valid pointer as long
76 // as this object lives.
77 AppActivityRegistry
* app_activity_registry_
;
79 DISALLOW_COPY_AND_ASSIGN(AppActivity
);
84 #endif // ATHENA_CONTENT_APP_ACTIVITY_H_