1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file.
4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_CONTROLLER_PAIRING_SCREEN_ACTOR_H_
6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_CONTROLLER_PAIRING_SCREEN_ACTOR_H_
7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include <string>
9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/macros.h"
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
12116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace base {
13116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass DictionaryValue;
14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
16116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace content {
17116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass BrowserContext;
18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace chromeos {
21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace controller_pairing {
23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Keep these constants synced with corresponding constants defined in
25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// oobe_screen_controller_pairing.js.
26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Context keys.
27116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kContextKeyPage[];
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kContextKeyControlsDisabled[];
29116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kContextKeyDevices[];
30116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kContextKeyConfirmationCode[];
31116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kContextKeySelectedDevice[];
32116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kContextKeyAccountId[];
33116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kContextKeyEnrollmentDomain[];
34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Pages names.
36116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageDevicesDiscovery[];
37116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageDeviceSelect[];
38116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageDeviceNotFound[];
39116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageEstablishingConnection[];
40116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageEstablishingConnectionError[];
41116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageCodeConfirmation[];
42116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageHostUpdate[];
43116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageHostConnectionLost[];
44116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageEnrollmentIntroduction[];
45116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageAuthentication[];
46116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageHostEnrollment[];
47116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageHostEnrollmentError[];
48116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPagePairingDone[];
49116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Actions names.
51116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kActionChooseDevice[];
52116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kActionRepeatDiscovery[];
53116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kActionAcceptCode[];
54116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kActionRejectCode[];
55116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kActionProceedToAuthentication[];
56116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kActionEnroll[];
57116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kActionStartSession[];
58116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
59116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}  // namespace controller_pairing
60116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
61116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass ControllerPairingScreenActor {
62116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public:
63116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  class Delegate {
64116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch   public:
65116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    virtual ~Delegate() {}
66116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    virtual void OnActorDestroyed(ControllerPairingScreenActor* actor) = 0;
67116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    virtual void OnScreenContextChanged(const base::DictionaryValue& diff) = 0;
68116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    virtual void OnUserActed(const std::string& action) = 0;
69116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  };
70116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
71116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  ControllerPairingScreenActor();
72116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual ~ControllerPairingScreenActor();
73116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
74116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual void Show() = 0;
75116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual void Hide() = 0;
76116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual void SetDelegate(Delegate* delegate) = 0;
77116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual void OnContextChanged(const base::DictionaryValue& diff) = 0;
78116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual content::BrowserContext* GetBrowserContext() = 0;
79116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
80116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private:
81116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  DISALLOW_COPY_AND_ASSIGN(ControllerPairingScreenActor);
82116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch};
83116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
84116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}  // namespace chromeos
85116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
86116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif  // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_CONTROLLER_PAIRING_SCREEN_ACTOR_H_
87