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