#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_APP_LAUNCH_SPLASH_SCREEN_ACTOR_H_
#define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_APP_LAUNCH_SPLASH_SCREEN_ACTOR_H_
#include "base/strings/string16.h"
namespace chromeos {
class AppLaunchSplashScreenActor {
public:
enum AppLaunchState {
APP_LAUNCH_STATE_LOADING_AUTH_FILE,
APP_LAUNCH_STATE_LOADING_TOKEN_SERVICE,
APP_LAUNCH_STATE_PREPARING_NETWORK,
APP_LAUNCH_STATE_INSTALLING_APPLICATION,
APP_LAUNCH_STATE_WAITING_APP_WINDOW,
APP_LAUNCH_STATE_NETWORK_WAIT_TIMEOUT,
};
class Delegate {
public:
virtual void OnConfigureNetwork() = 0;
virtual void OnCancelAppLaunch() = 0;
virtual void OnNetworkConfigRequested(bool requested) = 0;
virtual void OnNetworkStateChanged(bool online) = 0;
protected:
virtual ~Delegate() {}
};
virtual ~AppLaunchSplashScreenActor() {}
virtual void SetDelegate(Delegate* screen) = 0;
virtual void PrepareToShow() = 0;
virtual void Show(const std::string& app_id) = 0;
virtual void Hide() = 0;
virtual void UpdateAppLaunchState(AppLaunchState state) = 0;
virtual void ToggleNetworkConfig(bool visible) = 0;
virtual void ShowNetworkConfigureUI() = 0;
virtual bool IsNetworkReady() = 0;
};
}
#endif