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 #include "chrome/browser/chromeos/child_accounts/time_limits/app_time_limits_policy_builder.h"
5
6 #include "chrome/browser/chromeos/child_accounts/time_limits/app_time_policy_helpers.h"
7 #include "chrome/browser/chromeos/child_accounts/time_limits/app_types.h"
8
9 namespace chromeos {
10 namespace app_time {
11
AppTimeLimitsPolicyBuilder()12 AppTimeLimitsPolicyBuilder::AppTimeLimitsPolicyBuilder() {
13 value_.SetKey(policy::kAppLimitsArray, base::Value(base::Value::Type::LIST));
14 value_.SetKey(policy::kResetAtDict,
15 base::Value(base::Value::Type::DICTIONARY));
16 value_.SetBoolKey(policy::kActivityReportingEnabled, true);
17 }
18
19 AppTimeLimitsPolicyBuilder::~AppTimeLimitsPolicyBuilder() = default;
20
AddAppLimit(const AppId & app_id,const AppLimit & app_limit)21 void AppTimeLimitsPolicyBuilder::AddAppLimit(const AppId& app_id,
22 const AppLimit& app_limit) {
23 base::Value new_entry(base::Value::Type::DICTIONARY);
24 new_entry.SetKey(policy::kAppInfoDict, policy::AppIdToDict(app_id));
25 base::Value app_limit_value = policy::AppLimitToDict(app_limit);
26 new_entry.MergeDictionary(&app_limit_value);
27
28 base::Value* list = value_.FindListKey(policy::kAppLimitsArray);
29 DCHECK(list);
30 list->Append(std::move(new_entry));
31 }
32
SetResetTime(int hour,int minutes)33 void AppTimeLimitsPolicyBuilder::SetResetTime(int hour, int minutes) {
34 value_.SetKey(policy::kResetAtDict, policy::ResetTimeToDict(hour, minutes));
35 }
36
SetAppActivityReportingEnabled(bool enabled)37 void AppTimeLimitsPolicyBuilder::SetAppActivityReportingEnabled(bool enabled) {
38 value_.SetBoolKey(policy::kActivityReportingEnabled, enabled);
39 }
40
41 } // namespace app_time
42 } // namespace chromeos
43