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. 4 5#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_CONTROLLER_PAIRING_SCREEN_ACTOR_H_ 6#define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_CONTROLLER_PAIRING_SCREEN_ACTOR_H_ 7 8#include <string> 9 10#include "base/macros.h" 11 12namespace base { 13class DictionaryValue; 14} 15 16namespace content { 17class BrowserContext; 18} 19 20namespace chromeos { 21 22namespace controller_pairing { 23 24// Keep these constants synced with corresponding constants defined in 25// oobe_screen_controller_pairing.js. 26// Context keys. 27extern const char kContextKeyPage[]; 28extern const char kContextKeyControlsDisabled[]; 29extern const char kContextKeyDevices[]; 30extern const char kContextKeyConfirmationCode[]; 31extern const char kContextKeySelectedDevice[]; 32extern const char kContextKeyAccountId[]; 33extern const char kContextKeyEnrollmentDomain[]; 34 35// Pages names. 36extern const char kPageDevicesDiscovery[]; 37extern const char kPageDeviceSelect[]; 38extern const char kPageDeviceNotFound[]; 39extern const char kPageEstablishingConnection[]; 40extern const char kPageEstablishingConnectionError[]; 41extern const char kPageCodeConfirmation[]; 42extern const char kPageHostUpdate[]; 43extern const char kPageHostConnectionLost[]; 44extern const char kPageEnrollmentIntroduction[]; 45extern const char kPageAuthentication[]; 46extern const char kPageHostEnrollment[]; 47extern const char kPageHostEnrollmentError[]; 48extern const char kPagePairingDone[]; 49 50// Actions names. 51extern const char kActionChooseDevice[]; 52extern const char kActionRepeatDiscovery[]; 53extern const char kActionAcceptCode[]; 54extern const char kActionRejectCode[]; 55extern const char kActionProceedToAuthentication[]; 56extern const char kActionEnroll[]; 57extern const char kActionStartSession[]; 58 59} // namespace controller_pairing 60 61class ControllerPairingScreenActor { 62 public: 63 class Delegate { 64 public: 65 virtual ~Delegate() {} 66 virtual void OnActorDestroyed(ControllerPairingScreenActor* actor) = 0; 67 virtual void OnScreenContextChanged(const base::DictionaryValue& diff) = 0; 68 virtual void OnUserActed(const std::string& action) = 0; 69 }; 70 71 ControllerPairingScreenActor(); 72 virtual ~ControllerPairingScreenActor(); 73 74 virtual void Show() = 0; 75 virtual void Hide() = 0; 76 virtual void SetDelegate(Delegate* delegate) = 0; 77 virtual void OnContextChanged(const base::DictionaryValue& diff) = 0; 78 virtual content::BrowserContext* GetBrowserContext() = 0; 79 80 private: 81 DISALLOW_COPY_AND_ASSIGN(ControllerPairingScreenActor); 82}; 83 84} // namespace chromeos 85 86#endif // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_CONTROLLER_PAIRING_SCREEN_ACTOR_H_ 87