Skip to content

Commit 9c45f2f

Browse files
authored
Merge pull request #1337 from brave/fix-2888-2
Maintains Ads UI preference
2 parents cbf117b + 1580019 commit 9c45f2f

File tree

7 files changed

+33
-2
lines changed

7 files changed

+33
-2
lines changed

browser/ui/webui/brave_rewards_ui.cc

+18-2
Original file line numberDiff line numberDiff line change
@@ -610,7 +610,22 @@ void RewardsDOMHandler::SaveSetting(const base::ListValue* args) {
610610
args->GetString(1, &value);
611611

612612
if (key == "enabledMain") {
613-
rewards_service_->SetRewardsMainEnabled(value == "true");
613+
bool rewards_enabled = (value == "true");
614+
615+
if (ads_service_) {
616+
if (rewards_enabled) {
617+
// When Rewards are enabled, set Ads enabled to whatever UI value is
618+
bool ads_ui_enabled = ads_service_->is_ui_enabled();
619+
ads_service_->set_ads_enabled(ads_ui_enabled);
620+
} else {
621+
// When Rewards are disabled, cache UI value and disable Ads
622+
bool ads_enabled = ads_service_->is_enabled();
623+
ads_service_->set_ads_ui_enabled(ads_enabled);
624+
ads_service_->set_ads_enabled(rewards_enabled);
625+
}
626+
}
627+
628+
rewards_service_->SetRewardsMainEnabled(rewards_enabled);
614629
}
615630

616631
if (key == "contributionMonthly") {
@@ -809,7 +824,7 @@ void RewardsDOMHandler::GetAdsData(const base::ListValue *args) {
809824
base::DictionaryValue adsData;
810825

811826
bool ads_ui_enabled;
812-
bool ads_enabled = ads_service_->is_enabled();
827+
bool ads_enabled = ads_service_->is_ui_enabled();
813828
int ads_per_hour = ads_service_->ads_per_hour();
814829

815830
#if BUILDFLAG(BRAVE_ADS_ENABLED)
@@ -835,6 +850,7 @@ void RewardsDOMHandler::SaveAdsSetting(const base::ListValue* args) {
835850

836851
if (key == "adsEnabled") {
837852
ads_service_->set_ads_enabled(value == "true");
853+
ads_service_->set_ads_ui_enabled(value == "true");
838854
}
839855

840856
if (key == "adsPerHour") {

components/brave_ads/browser/ads_service.h

+2
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,11 @@ class AdsService : public KeyedService {
1818
AdsService() = default;
1919

2020
virtual bool is_enabled() const = 0;
21+
virtual bool is_ui_enabled() const = 0;
2122
virtual uint64_t ads_per_hour() const = 0;
2223

2324
virtual void set_ads_enabled(bool enabled) = 0;
25+
virtual void set_ads_ui_enabled(bool enabled) = 0;
2426
virtual void set_ads_per_hour(int ads_per_hour) = 0;
2527

2628
// ads::Ads proxy

components/brave_ads/browser/ads_service_factory.cc

+1
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ bool AdsServiceFactory::ServiceIsNULLWhileTesting() const {
7575
void AdsServiceFactory::RegisterProfilePrefs(
7676
user_prefs::PrefRegistrySyncable* registry) {
7777
registry->RegisterBooleanPref(prefs::kBraveAdsEnabled, false);
78+
registry->RegisterBooleanPref(prefs::kBraveAdsUIEnabled, false);
7879
registry->RegisterUint64Pref(prefs::kBraveAdsPerHour, 2);
7980
registry->RegisterUint64Pref(prefs::kBraveAdsPerDay, 6);
8081
registry->RegisterIntegerPref(prefs::kBraveAdsIdleThreshold, 15);

components/brave_ads/browser/ads_service_impl.cc

+8
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,10 @@ bool AdsServiceImpl::is_enabled() const {
444444
return profile_->GetPrefs()->GetBoolean(prefs::kBraveAdsEnabled);
445445
}
446446

447+
bool AdsServiceImpl::is_ui_enabled() const {
448+
return profile_->GetPrefs()->GetBoolean(prefs::kBraveAdsUIEnabled);
449+
}
450+
447451
bool AdsServiceImpl::IsAdsEnabled() const {
448452
return is_enabled();
449453
}
@@ -452,6 +456,10 @@ void AdsServiceImpl::set_ads_enabled(bool enabled) {
452456
profile_->GetPrefs()->SetBoolean(prefs::kBraveAdsEnabled, enabled);
453457
}
454458

459+
void AdsServiceImpl::set_ads_ui_enabled(bool enabled) {
460+
profile_->GetPrefs()->SetBoolean(prefs::kBraveAdsUIEnabled, enabled);
461+
}
462+
455463
void AdsServiceImpl::set_ads_per_hour(int ads_per_hour) {
456464
profile_->GetPrefs()->SetUint64(prefs::kBraveAdsPerHour, ads_per_hour);
457465
}

components/brave_ads/browser/ads_service_impl.h

+2
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,11 @@ class AdsServiceImpl : public AdsService,
5252

5353
// AdsService implementation
5454
bool is_enabled() const override;
55+
bool is_ui_enabled() const override;
5556
uint64_t ads_per_hour() const override;
5657

5758
void set_ads_enabled(bool enabled) override;
59+
void set_ads_ui_enabled(bool enabled) override;
5860
void set_ads_per_hour(int ads_per_hour) override;
5961

6062
void TabUpdated(

components/brave_ads/common/pref_names.cc

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ namespace brave_ads {
88
namespace prefs {
99

1010
const char kBraveAdsEnabled[] = "brave.brave_ads.enabled";
11+
const char kBraveAdsUIEnabled[] = "brave.brave_ads_ui_enabled";
1112
const char kBraveAdsPerHour[] = "brave.brave_ads.ads_per_hour";
1213
const char kBraveAdsPerDay[] = "brave.brave_ads.ads_per_day";
1314
const char kBraveAdsIdleThreshold[] = "brave.brave_ads.idle_threshold";

components/brave_ads/common/pref_names.h

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ namespace brave_ads {
99
namespace prefs {
1010

1111
extern const char kBraveAdsEnabled[];
12+
extern const char kBraveAdsUIEnabled[];
1213
extern const char kBraveAdsPerHour[];
1314
extern const char kBraveAdsPerDay[];
1415
extern const char kBraveAdsIdleThreshold[];

0 commit comments

Comments
 (0)