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 CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_CONTROLLER_PAIRING_SCREEN_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_CONTROLLER_PAIRING_SCREEN_H_
8 #include "base/macros.h"
10 #include "chrome/browser/chromeos/login/screens/base_screen.h"
11 #include "chrome/browser/chromeos/login/screens/controller_pairing_screen_actor.h"
12 #include "components/login/screens/screen_context.h"
13 #include "components/pairing/controller_pairing_controller.h"
17 class ControllerPairingScreen
19 public pairing_chromeos::ControllerPairingController::Observer
,
20 public ControllerPairingScreenActor::Delegate
{
24 virtual ~Delegate() {}
26 // Set remora configuration from shark.
27 virtual void SetHostConfiguration() = 0;
30 ControllerPairingScreen(
31 BaseScreenDelegate
* base_screen_delegate
,
33 ControllerPairingScreenActor
* actor
,
34 pairing_chromeos::ControllerPairingController
* shark_controller
);
35 ~ControllerPairingScreen() override
;
38 typedef pairing_chromeos::ControllerPairingController::Stage Stage
;
40 void CommitContextChanges();
41 bool ExpectStageIs(Stage stage
) const;
43 // Overridden from BaseScreen:
44 void PrepareToShow() override
;
47 std::string
GetName() const override
;
49 // Overridden from pairing_chromeos::ControllerPairingController::Observer:
50 void PairingStageChanged(Stage new_stage
) override
;
51 void DiscoveredDevicesListChanged() override
;
53 // Overridden from ControllerPairingView::Delegate:
54 void OnActorDestroyed(ControllerPairingScreenActor
* actor
) override
;
55 void OnScreenContextChanged(const base::DictionaryValue
& diff
) override
;
56 void OnUserActed(const std::string
& action
) override
;
60 ControllerPairingScreenActor
* actor_
;
62 // Controller performing pairing. Owned by the wizard controller.
63 pairing_chromeos::ControllerPairingController
* shark_controller_
;
65 // Current stage of pairing process.
68 // If this one is |false| first device in device list will be preselected on
69 // next device list update.
70 bool device_preselected_
;
72 DISALLOW_COPY_AND_ASSIGN(ControllerPairingScreen
);
75 } // namespace chromeos
77 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_CONTROLLER_PAIRING_SCREEN_H_