#ifndef CHROMEOS_ASH_COMPONENTS_PHONEHUB_DO_NOT_DISTURB_CONTROLLER_IMPL_H_
#define CHROMEOS_ASH_COMPONENTS_PHONEHUB_DO_NOT_DISTURB_CONTROLLER_IMPL_H_
#include "base/memory/raw_ptr.h"
#include "chromeos/ash/components/phonehub/do_not_disturb_controller.h"
namespace ash::phonehub {
class MessageSender;
class UserActionRecorder;
class DoNotDisturbControllerImpl : public DoNotDisturbController {
public:
DoNotDisturbControllerImpl(MessageSender* message_sender,
UserActionRecorder* user_action_recorder);
~DoNotDisturbControllerImpl() override;
private:
friend class DoNotDisturbControllerImplTest;
bool IsDndEnabled() const override;
void SetDoNotDisturbStateInternal(bool is_dnd_enabled,
bool can_request_new_dnd_state) override;
void RequestNewDoNotDisturbState(bool enabled) override;
bool CanRequestNewDndState() const override;
raw_ptr<MessageSender> message_sender_;
raw_ptr<UserActionRecorder> user_action_recorder_;
bool is_dnd_enabled_ = false;
bool can_request_new_dnd_state_ = false;
};
}
#endif