Skip to content

Commit

Permalink
Fixes brave/brave-browser#4339, resolves migration issues for Ads ena…
Browse files Browse the repository at this point in the history
…bled
  • Loading branch information
ryanml committed May 17, 2019
1 parent 0841a81 commit cfb6880
Show file tree
Hide file tree
Showing 11 changed files with 34 additions and 0 deletions.
2 changes: 2 additions & 0 deletions browser/ui/webui/brave_rewards_ui.cc
Original file line number Diff line number Diff line change
Expand Up @@ -927,6 +927,8 @@ void RewardsDOMHandler::SaveAdsSetting(const base::ListValue* args) {
ads_service_->SetAdsEnabled(value == "true");
} else if (key == "adsPerHour") {
ads_service_->SetAdsPerHour(std::stoull(value));
} else if (key == "adsEnabledMigrated") {
ads_service_->MigrateAdsEnabled(value == "true");
}

base::ListValue* emptyArgs = nullptr;
Expand Down
1 change: 1 addition & 0 deletions components/brave_ads/browser/ads_service.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ class AdsService : public KeyedService {

virtual bool IsAdsEnabled() const = 0;
virtual void SetAdsEnabled(const bool is_enabled) = 0;
virtual void MigrateAdsEnabled(const bool is_enabled) = 0;

virtual uint64_t GetAdsPerHour() const = 0;
virtual void SetAdsPerHour(const uint64_t ads_per_hour) = 0;
Expand Down
1 change: 1 addition & 0 deletions components/brave_ads/browser/ads_service_factory.cc
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ void AdsServiceFactory::RegisterProfilePrefs(
}

registry->RegisterBooleanPref(prefs::kBraveAdsEnabled, false);
registry->RegisterBooleanPref(prefs::kBraveAdsEnabledMigrated, false);

registry->RegisterUint64Pref(prefs::kBraveAdsPerHour, 2);

Expand Down
11 changes: 11 additions & 0 deletions components/brave_ads/browser/ads_service_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -802,6 +802,17 @@ void AdsServiceImpl::SetAdsEnabled(const bool is_enabled) {
profile_->GetPrefs()->SetBoolean(prefs::kBraveAdsEnabled, is_enabled);
}

void AdsServiceImpl::MigrateAdsEnabled(const bool is_enabled) {
if (profile_->GetPrefs()->GetBoolean(
prefs::kBraveAdsEnabledMigrated)) {
return;
}

SetAdsEnabled(is_enabled);

profile_->GetPrefs()->SetBoolean(prefs::kBraveAdsEnabledMigrated, true);
}

uint64_t AdsServiceImpl::GetAdsPerHour() const {
return profile_->GetPrefs()->GetUint64(prefs::kBraveAdsPerHour);
}
Expand Down
1 change: 1 addition & 0 deletions components/brave_ads/browser/ads_service_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ class AdsServiceImpl : public AdsService,
bool IsSupportedRegion() const override;

void SetAdsEnabled(const bool is_enabled) override;
void MigrateAdsEnabled(const bool is_enabled) override;

void SetAdsPerHour(const uint64_t ads_per_hour) override;

Expand Down
2 changes: 2 additions & 0 deletions components/brave_ads/common/pref_names.cc
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ const int kBraveAdsPrefsCurrentVersion = 2;
const char kBraveAdsPrefsVersion[] = "brave.brave_ads.prefs.version";
const char kBraveAdsPrefsMigratedFrom62[] =
"brave.brave_ads.prefs.migrated.from_0_62.x";
const char kBraveAdsEnabledMigrated[] =
"brave.brave_ads.prefs.enabled_migrated";

} // namespace prefs

Expand Down
1 change: 1 addition & 0 deletions components/brave_ads/common/pref_names.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ extern const int kBraveAdsPrefsDefaultVersion;
extern const int kBraveAdsPrefsCurrentVersion;
extern const char kBraveAdsPrefsVersion[];
extern const char kBraveAdsPrefsMigratedFrom62[];
extern const char kBraveAdsEnabledMigrated[];

} // namespace prefs

Expand Down
9 changes: 9 additions & 0 deletions components/brave_rewards/resources/ui/components/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,15 @@ export class App extends React.Component<Props, State> {
if (!this.props.rewardsData.walletCreated) {
this.actions.checkWalletExistence()
}

if (this.props.rewardsData.enabledMain &&
!this.props.rewardsData.enabledAdsMigrated) {
const { adsEnabled, adsIsSupported } = this.props.rewardsData.adsData

if (adsIsSupported) {
this.props.actions.onAdsSettingSave('adsEnabledMigrated', adsEnabled)
}
}
}

componentDidUpdate (prevProps: Props, prevState: State) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,10 @@ const rewardsReducer: Reducer<Rewards.State | undefined> = (state: Rewards.State
if (key) {
state[key] = value
chrome.send('brave_rewards.saveAdsSetting', [key, value.toString()])

if (key === 'adsEnabledMigrated') {
state.enabledAdsMigrated = true
}
}
break
}
Expand Down
1 change: 1 addition & 0 deletions components/brave_rewards/resources/ui/storage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ export const defaultState: Rewards.State = {
createdTimestamp: null,
enabledMain: false,
enabledAds: true,
enabledAdsMigrated: false,
enabledContribute: true,
firstLoad: null,
walletCreated: false,
Expand Down
1 change: 1 addition & 0 deletions components/definitions/rewards.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ declare namespace Rewards {
donationAbilityTwitter: boolean
donationAbilityYT: boolean
enabledAds: boolean
enabledAdsMigrated: boolean
enabledContribute: boolean
enabledMain: boolean
firstLoad: boolean | null
Expand Down

0 comments on commit cfb6880

Please sign in to comment.