• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 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_SCREEN_OBSERVER_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_SCREEN_OBSERVER_H_
7 
8 #include <string>
9 
10 namespace chromeos {
11 
12 class ErrorScreen;
13 class WizardScreen;
14 
15 // Interface that handles notifications received from any of login wizard
16 // screens.
17 class ScreenObserver {
18  public:
19   // Each login screen or a view shown within login wizard view is itself a
20   // state. Upon exit each view returns one of the results by calling OnExit()
21   // method. Depending on the result and the current view or state login wizard
22   // decides what is the next view to show. There must be an exit code for each
23   // way to exit the screen for each screen. (Numeric ids are provided to
24   // facilitate interpretation of log files only, they are subject to change
25   // without notice.)
26   enum ExitCodes {
27     // "Continue" was pressed on network screen and network is online.
28     NETWORK_CONNECTED = 0,
29     HID_DETECTION_COMPLETED = 1,
30     // Connection failed while trying to load a WebPageScreen.
31     CONNECTION_FAILED = 2,
32     UPDATE_INSTALLED = 3,
33     UPDATE_NOUPDATE = 4,
34     UPDATE_ERROR_CHECKING_FOR_UPDATE = 5,
35     UPDATE_ERROR_UPDATING = 6,
36     USER_IMAGE_SELECTED = 7,
37     EULA_ACCEPTED = 8,
38     EULA_BACK = 9,
39     ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED = 10,
40     ENTERPRISE_ENROLLMENT_COMPLETED = 11,
41     ENTERPRISE_AUTO_MAGIC_ENROLLMENT_COMPLETED = 12,
42     ENTERPRISE_ENROLLMENT_BACK = 13,
43     RESET_CANCELED = 14,
44     KIOSK_AUTOLAUNCH_CANCELED = 15,
45     KIOSK_AUTOLAUNCH_CONFIRMED = 16,
46     KIOSK_ENABLE_COMPLETED = 17,
47     TERMS_OF_SERVICE_DECLINED = 18,
48     TERMS_OF_SERVICE_ACCEPTED = 19,
49     WRONG_HWID_WARNING_SKIPPED = 20,
50     CONTROLLER_PAIRING_FINISHED = 21,
51     HOST_PAIRING_FINISHED = 22,
52     EXIT_CODES_COUNT  // not a real code, must be the last
53   };
54 
55   // Method called by a screen when user's done with it.
56   virtual void OnExit(ExitCodes exit_code) = 0;
57 
58   // Forces current screen showing.
59   virtual void ShowCurrentScreen() = 0;
60 
61   // Notify about new user names and password. It is used to autologin
62   // just created user without asking the same info once again.
63   virtual void OnSetUserNamePassword(const std::string& username,
64                                      const std::string& password) = 0;
65 
66   // Whether usage statistics reporting is enabled on EULA screen.
67   virtual void SetUsageStatisticsReporting(bool val) = 0;
68   virtual bool GetUsageStatisticsReporting() const = 0;
69 
70   virtual ErrorScreen* GetErrorScreen() = 0;
71   virtual void ShowErrorScreen() = 0;
72   virtual void HideErrorScreen(WizardScreen* parent_screen) = 0;
73 
74  protected:
~ScreenObserver()75   virtual ~ScreenObserver() {}
76 };
77 
78 }  // namespace chromeos
79 
80 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_SCREEN_OBSERVER_H_
81