#ifndef CHROME_BROWSER_UI_VIEWS_POLICY_IDLE_DIALOG_VIEW_H_
#define CHROME_BROWSER_UI_VIEWS_POLICY_IDLE_DIALOG_VIEW_H_
#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "base/time/time.h"
#include "base/timer/timer.h"
#include "chrome/browser/ui/idle_dialog.h"
#include "chrome/browser/ui/views/relaunch_notification/relaunch_required_timer.h"
#include "ui/views/bubble/bubble_dialog_delegate_view.h"
#include "ui/views/controls/label.h"
#include "ui/views/widget/widget_observer.h"
#include "ui/views/window/dialog_delegate.h"
class BrowserWindowInterface;
namespace policy {
class IdleDialogView : public views::DialogDelegateView {
public:
IdleDialogView(base::TimeDelta dialog_duration,
base::TimeDelta idle_threshold,
IdleDialog::ActionSet actions,
base::OnceClosure on_close_by_user);
static base::WeakPtr<views::Widget> Show(BrowserWindowInterface* bwi,
base::TimeDelta dialog_duration,
base::TimeDelta idle_threshold,
IdleDialog::ActionSet actions,
base::OnceClosure on_close_by_user);
IdleDialogView(const IdleDialogView&) = delete;
IdleDialogView& operator=(const IdleDialogView&) = delete;
~IdleDialogView() override;
std::u16string GetWindowTitle() const override;
ui::ImageModel GetWindowIcon() override;
private:
void UpdateCountdown();
raw_ptr<views::Label> main_label_ = nullptr;
raw_ptr<views::Label> incognito_label_ = nullptr;
raw_ptr<views::Label> countdown_label_ = nullptr;
base::RepeatingTimer update_timer_;
const base::TimeDelta idle_threshold_;
const IdleDialog::ActionSet actions_;
const base::TimeTicks deadline_;
int incognito_count_;
};
}
#endif