chromium/chrome/browser/ui/ash/network/network_connect_delegate.h

// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_UI_ASH_NETWORK_NETWORK_CONNECT_DELEGATE_H_
#define CHROME_BROWSER_UI_ASH_NETWORK_NETWORK_CONNECT_DELEGATE_H_

#include <memory>
#include <string>

#include "chromeos/ash/components/network/network_connect.h"

namespace ash {
class NetworkStateNotifier;
class SystemTrayClient;
}  // namespace ash

class NetworkConnectDelegate : public ash::NetworkConnect::Delegate {
 public:
  NetworkConnectDelegate();
  NetworkConnectDelegate(const NetworkConnectDelegate&) = delete;
  NetworkConnectDelegate& operator=(const NetworkConnectDelegate&) = delete;
  ~NetworkConnectDelegate() override;

  void ShowNetworkConfigure(const std::string& network_id) override;
  void ShowNetworkSettings(const std::string& network_id) override;
  bool ShowEnrollNetwork(const std::string& network_id) override;
  void ShowMobileSetupDialog(const std::string& service_path) override;
  void ShowCarrierAccountDetail(const std::string& service_path) override;
  void ShowPortalSignin(const std::string& service_path,
                        ash::NetworkConnect::Source source) override;
  void ShowNetworkConnectError(const std::string& error_name,
                               const std::string& network_id) override;
  void ShowMobileActivationError(const std::string& network_id) override;
  void ShowCarrierUnlockNotification() override;

  void SetSystemTrayClient(ash::SystemTrayClient* system_tray_client);

 private:
  std::unique_ptr<ash::NetworkStateNotifier> network_state_notifier_;
};

#endif  // CHROME_BROWSER_UI_ASH_NETWORK_NETWORK_CONNECT_DELEGATE_H_