chromium/chrome/browser/ui/webui/ash/lock_screen_reauth/lock_screen_network_dialog.h

// Copyright 2021 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_WEBUI_ASH_LOCK_SCREEN_REAUTH_LOCK_SCREEN_NETWORK_DIALOG_H_
#define CHROME_BROWSER_UI_WEBUI_ASH_LOCK_SCREEN_REAUTH_LOCK_SCREEN_NETWORK_DIALOG_H_

#include "base/functional/callback_forward.h"
#include "chrome/browser/ui/webui/ash/lock_screen_reauth/base_lock_dialog.h"

class Profile;

namespace ash {

class LockScreenNetworkDialog : public BaseLockDialog {
 public:
  using NetworkDialogCleanupCallback = base::OnceCallback<void()>;

  explicit LockScreenNetworkDialog(NetworkDialogCleanupCallback callback);
  LockScreenNetworkDialog(LockScreenNetworkDialog const&) = delete;
  LockScreenNetworkDialog& operator=(const LockScreenNetworkDialog&) = delete;
  ~LockScreenNetworkDialog() override;

  void OnDialogClosed(const std::string& json_retval) override;
  void Show(Profile* profile);
  void Dismiss();

 private:
  NetworkDialogCleanupCallback callback_;
};

}  // namespace ash

#endif  // CHROME_BROWSER_UI_WEBUI_ASH_LOCK_SCREEN_REAUTH_LOCK_SCREEN_NETWORK_DIALOG_H_