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 #include "chrome/browser/nearby_sharing/common/nearby_share_prefs.h"
6
7 #include <string>
8
9 #include "base/files/file_path.h"
10 #include "base/time/time.h"
11 #include "chrome/browser/nearby_sharing/common/nearby_share_enums.h"
12 #include "components/prefs/pref_registry.h"
13 #include "components/prefs/pref_registry_simple.h"
14
15 namespace prefs {
16
17 const char kNearbySharingActiveProfilePrefName[] =
18 "nearby_sharing.active_profile";
19 const char kNearbySharingAllowedContactsPrefName[] =
20 "nearby_sharing.allowed_contacts";
21 const char kNearbySharingBackgroundVisibilityName[] =
22 "nearby_sharing.background_visibility";
23 const char kNearbySharingContactUploadHashPrefName[] =
24 "nearby_sharing.contact_upload_hash";
25 const char kNearbySharingDataUsageName[] = "nearby_sharing.data_usage";
26 const char kNearbySharingDeviceIdPrefName[] = "nearby_sharing.device_id";
27 const char kNearbySharingDeviceNamePrefName[] = "nearby_sharing.device_name";
28 const char kNearbySharingEnabledPrefName[] = "nearby_sharing.enabled";
29 const char kNearbySharingOnboardingCompletePrefName[] =
30 "nearby_sharing.onboarding_complete";
31 const char kNearbySharingFullNamePrefName[] = "nearby_sharing.full_name";
32 const char kNearbySharingIconUrlPrefName[] = "nearby_sharing.icon_url";
33 const char kNearbySharingOnboardingDismissedTimePrefName[] =
34 "nearby_sharing.onboarding_dismissed_time";
35 const char kNearbySharingPublicCertificateExpirationDictPrefName[] =
36 "nearbyshare.public_certificate_expiration_dict";
37 const char kNearbySharingPrivateCertificateListPrefName[] =
38 "nearbyshare.private_certificate_list";
39 const char kNearbySharingSchedulerContactDownloadAndUploadPrefName[] =
40 "nearby_sharing.scheduler.contact_download_and_upload";
41 const char kNearbySharingSchedulerDownloadDeviceDataPrefName[] =
42 "nearby_sharing.scheduler.download_device_data";
43 const char kNearbySharingSchedulerDownloadPublicCertificatesPrefName[] =
44 "nearby_sharing.scheduler.download_public_certificates";
45 const char kNearbySharingSchedulerPeriodicContactUploadPrefName[] =
46 "nearby_sharing.scheduler.periodic_contact_upload";
47 const char kNearbySharingSchedulerPrivateCertificateExpirationPrefName[] =
48 "nearby_sharing.scheduler.private_certificate_expiration";
49 const char kNearbySharingSchedulerPublicCertificateExpirationPrefName[] =
50 "nearby_sharing.scheduler.public_certificate_expiration";
51 const char kNearbySharingSchedulerUploadDeviceNamePrefName[] =
52 "nearby_sharing.scheduler.upload_device_name";
53 const char kNearbySharingSchedulerUploadLocalDeviceCertificatesPrefName[] =
54 "nearby_sharing.scheduler.upload_local_device_certificates";
55
56 } // namespace prefs
57
RegisterNearbySharingPrefs(PrefRegistrySimple * registry)58 void RegisterNearbySharingPrefs(PrefRegistrySimple* registry) {
59 // These prefs are not synced across devices on purpose.
60
61 registry->RegisterBooleanPref(prefs::kNearbySharingEnabledPrefName,
62 /*default_value=*/false);
63 registry->RegisterBooleanPref(prefs::kNearbySharingOnboardingCompletePrefName,
64 /*default_value=*/false);
65 registry->RegisterIntegerPref(
66 prefs::kNearbySharingBackgroundVisibilityName,
67 /*default_value=*/static_cast<int>(Visibility::kUnknown));
68 registry->RegisterIntegerPref(
69 prefs::kNearbySharingDataUsageName,
70 /*default_value=*/static_cast<int>(DataUsage::kWifiOnly));
71 registry->RegisterStringPref(prefs::kNearbySharingContactUploadHashPrefName,
72 /*default_value=*/std::string());
73 registry->RegisterStringPref(prefs::kNearbySharingDeviceIdPrefName,
74 /*default_value=*/std::string());
75 registry->RegisterStringPref(prefs::kNearbySharingDeviceNamePrefName,
76 /*default_value=*/std::string());
77 registry->RegisterListPref(prefs::kNearbySharingAllowedContactsPrefName);
78 registry->RegisterStringPref(prefs::kNearbySharingFullNamePrefName,
79 /*default_value=*/std::string());
80 registry->RegisterStringPref(prefs::kNearbySharingIconUrlPrefName,
81 /*default_value=*/std::string());
82 registry->RegisterTimePref(
83 prefs::kNearbySharingOnboardingDismissedTimePrefName,
84 /*default_value=*/base::Time());
85 registry->RegisterDictionaryPref(
86 prefs::kNearbySharingPublicCertificateExpirationDictPrefName);
87 registry->RegisterListPref(
88 prefs::kNearbySharingPrivateCertificateListPrefName);
89 registry->RegisterDictionaryPref(
90 prefs::kNearbySharingSchedulerContactDownloadAndUploadPrefName);
91 registry->RegisterDictionaryPref(
92 prefs::kNearbySharingSchedulerDownloadDeviceDataPrefName);
93 registry->RegisterDictionaryPref(
94 prefs::kNearbySharingSchedulerDownloadPublicCertificatesPrefName);
95 registry->RegisterDictionaryPref(
96 prefs::kNearbySharingSchedulerPeriodicContactUploadPrefName);
97 registry->RegisterDictionaryPref(
98 prefs::kNearbySharingSchedulerPrivateCertificateExpirationPrefName);
99 registry->RegisterDictionaryPref(
100 prefs::kNearbySharingSchedulerPublicCertificateExpirationPrefName);
101 registry->RegisterDictionaryPref(
102 prefs::kNearbySharingSchedulerUploadDeviceNamePrefName);
103 registry->RegisterDictionaryPref(
104 prefs::kNearbySharingSchedulerUploadLocalDeviceCertificatesPrefName);
105 }
106
RegisterNearbySharingLocalPrefs(PrefRegistrySimple * local_state)107 void RegisterNearbySharingLocalPrefs(PrefRegistrySimple* local_state) {
108 local_state->RegisterFilePathPref(prefs::kNearbySharingActiveProfilePrefName,
109 /*default_value=*/base::FilePath());
110 }
111