1 // Copyright 2020 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_TIME_LIMITS_APP_TIME_NOTIFICATION_DELEGATE_H_
6 #define CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_TIME_LIMITS_APP_TIME_NOTIFICATION_DELEGATE_H_
7 
8 #include "base/optional.h"
9 
10 namespace base {
11 class TimeDelta;
12 }  // namespace base
13 
14 namespace chromeos {
15 namespace app_time {
16 
17 class AppId;
18 enum class AppNotification;
19 
20 // Called when the application time limit is reaching.
21 class AppTimeNotificationDelegate {
22  public:
23   AppTimeNotificationDelegate() = default;
24   AppTimeNotificationDelegate(const AppTimeNotificationDelegate&) = delete;
25   AppTimeNotificationDelegate& operator=(const AppTimeNotificationDelegate&) =
26       delete;
27 
28   virtual ~AppTimeNotificationDelegate() = default;
29 
30   virtual void ShowAppTimeLimitNotification(
31       const AppId& app_id,
32       const base::Optional<base::TimeDelta>& time_limit,
33       AppNotification notification) = 0;
34 };
35 
36 }  // namespace app_time
37 }  // namespace chromeos
38 
39 #endif  // CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_TIME_LIMITS_APP_TIME_NOTIFICATION_DELEGATE_H_
40