From 4fc335c413c4360703103b785498e90207d91e37 Mon Sep 17 00:00:00 2001 From: Terry Mancey Date: Wed, 10 Mar 2021 14:48:48 +0000 Subject: [PATCH] Fixes estimated pending rewards for Ads resets to Zero in NTP after browser restart until ads has initialized --- browser/extensions/api/brave_rewards_api.cc | 35 ++++++++---- browser/extensions/api/brave_rewards_api.h | 20 +++---- browser/ui/webui/brave_rewards_page_ui.cc | 40 ++++++------- common/extensions/api/brave_rewards.json | 56 +++++++++++++------ components/brave_ads/browser/ads_service.h | 14 ++--- .../brave_ads/browser/ads_service_impl.cc | 13 +++-- .../brave_ads/browser/ads_service_impl.h | 8 +-- .../actions/rewards_actions.ts | 8 +-- .../brave_new_tab_ui/api/initialData.ts | 10 ++-- .../components/default/rewards/index.tsx | 6 +- .../constants/rewards_types.ts | 2 +- .../reducers/rewards_reducer.ts | 9 ++- .../storage/new_tab_storage.ts | 12 ++-- components/definitions/chromel.d.ts | 2 +- components/definitions/newTab.d.ts | 10 +++- components/services/bat_ads/bat_ads_impl.cc | 12 ++-- components/services/bat_ads/bat_ads_impl.h | 11 ++-- .../bat_ads/public/interfaces/bat_ads.mojom | 2 +- vendor/bat-native-ads/include/bat/ads/ads.h | 4 +- .../include/bat/ads/statement_info.h | 4 +- .../src/bat/ads/internal/ads_impl.cc | 10 ++-- .../src/bat/ads/internal/ads_impl.h | 2 +- .../src/bat/ads/statement_info.cc | 15 +---- vendor/brave-ios/Ads/BATBraveAds.mm | 2 +- 24 files changed, 169 insertions(+), 138 deletions(-) diff --git a/browser/extensions/api/brave_rewards_api.cc b/browser/extensions/api/brave_rewards_api.cc index 230ae44cbd80..e706357826f4 100644 --- a/browser/extensions/api/brave_rewards_api.cc +++ b/browser/extensions/api/brave_rewards_api.cc @@ -1123,12 +1123,11 @@ BraveRewardsGetAdsEnabledFunction::Run() { return RespondNow(OneArgument(base::Value(enabled))); } -BraveRewardsGetAdsEstimatedEarningsFunction:: -~BraveRewardsGetAdsEstimatedEarningsFunction() { -} +BraveRewardsGetAdsAccountStatementFunction:: + ~BraveRewardsGetAdsAccountStatementFunction() {} ExtensionFunction::ResponseAction -BraveRewardsGetAdsEstimatedEarningsFunction::Run() { +BraveRewardsGetAdsAccountStatementFunction::Run() { Profile* profile = Profile::FromBrowserContext(browser_context()); AdsService* ads_service_ = AdsServiceFactory::GetForProfile(profile); @@ -1137,22 +1136,36 @@ BraveRewardsGetAdsEstimatedEarningsFunction::Run() { return RespondNow(Error("Ads service is not initialized")); } - AddRef(); // Balanced in OnAdsEstimatedEarnings(). + AddRef(); // Balanced in OnGetAdsAccountStatement(). - ads_service_->GetStatement(base::BindOnce( - &BraveRewardsGetAdsEstimatedEarningsFunction::OnAdsEstimatedEarnings, + ads_service_->GetAccountStatement(base::BindOnce( + &BraveRewardsGetAdsAccountStatementFunction::OnGetAdsAccountStatement, this)); return RespondLater(); } -void BraveRewardsGetAdsEstimatedEarningsFunction::OnAdsEstimatedEarnings( +void BraveRewardsGetAdsAccountStatementFunction::OnGetAdsAccountStatement( const bool success, const double estimated_pending_rewards, - const uint64_t next_payment_date, - const uint64_t ads_received_this_month, + const int64_t next_payment_date, + const int ads_received_this_month, const double earnings_this_month, const double earnings_last_month) { - Respond(OneArgument(base::Value(estimated_pending_rewards))); + if (!success) { + Respond(OneArgument(base::Value(success))); + } else { + base::Value statement(base::Value::Type::DICTIONARY); + statement.SetDoubleKey("estimatedPendingRewards", + estimated_pending_rewards); + const std::string next_payment_date_as_string = + base::NumberToString(next_payment_date); + statement.SetStringKey("nextPaymentDate", next_payment_date_as_string); + statement.SetIntKey("adsReceivedThisMonth", ads_received_this_month); + statement.SetDoubleKey("earningsThisMonth", earnings_this_month); + statement.SetDoubleKey("earningsLastMonth", earnings_last_month); + + Respond(TwoArguments(base::Value(success), std::move(statement))); + } Release(); // Balanced in Run() } diff --git a/browser/extensions/api/brave_rewards_api.h b/browser/extensions/api/brave_rewards_api.h index 5cac56045a78..4d06b1ae32a7 100644 --- a/browser/extensions/api/brave_rewards_api.h +++ b/browser/extensions/api/brave_rewards_api.h @@ -406,24 +406,22 @@ class BraveRewardsGetAdsEnabledFunction : public ExtensionFunction { ResponseAction Run() override; }; -class BraveRewardsGetAdsEstimatedEarningsFunction - : public ExtensionFunction { +class BraveRewardsGetAdsAccountStatementFunction : public ExtensionFunction { public: - DECLARE_EXTENSION_FUNCTION("braveRewards.getAdsEstimatedEarnings", UNKNOWN) + DECLARE_EXTENSION_FUNCTION("braveRewards.getAdsAccountStatement", UNKNOWN) protected: - ~BraveRewardsGetAdsEstimatedEarningsFunction() override; + ~BraveRewardsGetAdsAccountStatementFunction() override; ResponseAction Run() override; private: - void OnAdsEstimatedEarnings( - const bool success, - const double estimated_pending_rewards, - const uint64_t next_payment_date, - const uint64_t ads_received_this_month, - const double earnings_this_month, - const double earnings_last_month); + void OnGetAdsAccountStatement(const bool success, + const double estimated_pending_rewards, + const int64_t next_payment_date, + const int ads_received_this_month, + const double earnings_this_month, + const double earnings_last_month); }; class BraveRewardsGetAdsSupportedFunction : public ExtensionFunction { diff --git a/browser/ui/webui/brave_rewards_page_ui.cc b/browser/ui/webui/brave_rewards_page_ui.cc index 54ca1900f1f9..1ed0b7cfb691 100644 --- a/browser/ui/webui/brave_rewards_page_ui.cc +++ b/browser/ui/webui/brave_rewards_page_ui.cc @@ -121,13 +121,12 @@ class RewardsDOMHandler : public WebUIMessageHandler, void GetStatement(const base::ListValue* args); void GetExcludedSites(const base::ListValue* args); - void OnGetStatement( - const bool success, - const double estimated_pending_rewards, - const uint64_t next_payment_date, - const uint64_t ads_received_this_month, - const double earnings_this_month, - const double earnings_last_month); + void OnGetStatement(const bool success, + const double estimated_pending_rewards, + const int64_t next_payment_date, + const int ads_received_this_month, + const double earnings_this_month, + const double earnings_last_month); void OnGetRecurringTips(ledger::type::PublisherInfoList list); @@ -1363,18 +1362,16 @@ void RewardsDOMHandler::OnPublisherListNormalized( void RewardsDOMHandler::GetStatement( const base::ListValue* args) { - ads_service_->GetStatement(base::Bind( - &RewardsDOMHandler::OnGetStatement, - weak_factory_.GetWeakPtr())); -} - -void RewardsDOMHandler::OnGetStatement( - const bool success, - const double estimated_pending_rewards, - const uint64_t next_payment_date, - const uint64_t ads_received_this_month, - const double earnings_this_month, - const double earnings_last_month) { + ads_service_->GetAccountStatement(base::Bind( + &RewardsDOMHandler::OnGetStatement, weak_factory_.GetWeakPtr())); +} + +void RewardsDOMHandler::OnGetStatement(const bool success, + const double estimated_pending_rewards, + const int64_t next_payment_date, + const int ads_received_this_month, + const double earnings_this_month, + const double earnings_last_month) { if (!success) { return; } @@ -1411,9 +1408,8 @@ void RewardsDOMHandler::OnStatementChanged( } void RewardsDOMHandler::OnAdRewardsChanged() { - ads_service_->GetStatement(base::Bind( - &RewardsDOMHandler::OnGetStatement, - weak_factory_.GetWeakPtr())); + ads_service_->GetAccountStatement(base::Bind( + &RewardsDOMHandler::OnGetStatement, weak_factory_.GetWeakPtr())); } void RewardsDOMHandler::OnRecurringTipSaved( diff --git a/common/extensions/api/brave_rewards.json b/common/extensions/api/brave_rewards.json index 88f5e29c997b..40223d253627 100644 --- a/common/extensions/api/brave_rewards.json +++ b/common/extensions/api/brave_rewards.json @@ -838,23 +838,6 @@ } ] }, - { - "name": "getAdsEstimatedEarnings", - "type": "function", - "description": "Gets estimated ads earnings for the current month", - "parameters": [ - { - "type": "function", - "name": "callback", - "parameters": [ - { - "name": "amount", - "type": "number" - } - ] - } - ] - }, { "name": "getACEnabled", "type": "function", @@ -1157,6 +1140,45 @@ } ] }, + { + "name": "getAdsAccountStatement", + "type": "function", + "description": "Get ads account statement", + "parameters": [ + { + "type": "function", + "name": "callback", + "parameters": [ + { + "name": "success", + "type": "boolean" + }, + { + "name": "adsAccountStatement", + "type": "object", + "optional": true, + "properties": { + "estimatedPendingRewards": { + "type": "number" + }, + "nextPaymentDate": { + "type": "string" + }, + "adsReceivedThisMonth": { + "type": "integer" + }, + "earningsThisMonth": { + "type": "number" + }, + "earningsLastMonth": { + "type": "number" + } + } + } + ] + } + ] + }, { "name": "getAnonWalletStatus", "type": "function", diff --git a/components/brave_ads/browser/ads_service.h b/components/brave_ads/browser/ads_service.h index 7d6e843fa85d..147bef123148 100644 --- a/components/brave_ads/browser/ads_service.h +++ b/components/brave_ads/browser/ads_service.h @@ -50,12 +50,12 @@ using OnToggleSaveAdCallback = using OnToggleFlagAdCallback = base::OnceCallback; -using GetStatementCallback = base::OnceCallback; +using GetAccountStatementCallback = base::OnceCallback; class AdsService : public KeyedService { public: @@ -121,7 +121,7 @@ class AdsService : public KeyedService { const uint64_t to_timestamp, OnGetAdsHistoryCallback callback) = 0; - virtual void GetStatement(GetStatementCallback callback) = 0; + virtual void GetAccountStatement(GetAccountStatementCallback callback) = 0; virtual void ToggleAdThumbUp(const std::string& creative_instance_id, const std::string& creative_set_id, diff --git a/components/brave_ads/browser/ads_service_impl.cc b/components/brave_ads/browser/ads_service_impl.cc index 23e01148a9a5..8c40999261d8 100644 --- a/components/brave_ads/browser/ads_service_impl.cc +++ b/components/brave_ads/browser/ads_service_impl.cc @@ -391,14 +391,15 @@ void AdsServiceImpl::GetAdsHistory(const uint64_t from_timestamp, AsWeakPtr(), std::move(callback))); } -void AdsServiceImpl::GetStatement(GetStatementCallback callback) { +void AdsServiceImpl::GetAccountStatement(GetAccountStatementCallback callback) { if (!connected()) { std::move(callback).Run(/* success */ false, 0.0, 0, 0, 0.0, 0.0); return; } - bat_ads_->GetStatement(base::BindOnce(&AdsServiceImpl::OnGetStatement, - AsWeakPtr(), std::move(callback))); + bat_ads_->GetAccountStatement( + base::BindOnce(&AdsServiceImpl::OnGetAccountStatement, AsWeakPtr(), + std::move(callback))); } void AdsServiceImpl::ToggleAdThumbUp(const std::string& creative_instance_id, @@ -1187,9 +1188,9 @@ bool AdsServiceImpl::CanShowBackgroundNotifications() const { return NotificationHelper::GetInstance()->CanShowBackgroundNotifications(); } -void AdsServiceImpl::OnGetStatement(GetStatementCallback callback, - const bool success, - const std::string& json) { +void AdsServiceImpl::OnGetAccountStatement(GetAccountStatementCallback callback, + const bool success, + const std::string& json) { if (!success) { std::move(callback).Run(success, 0.0, 0, 0, 0.0, 0.0); return; diff --git a/components/brave_ads/browser/ads_service_impl.h b/components/brave_ads/browser/ads_service_impl.h index 88c48d4155cb..694454906be4 100644 --- a/components/brave_ads/browser/ads_service_impl.h +++ b/components/brave_ads/browser/ads_service_impl.h @@ -129,7 +129,7 @@ class AdsServiceImpl : public AdsService, const uint64_t to_timestamp, OnGetAdsHistoryCallback callback) override; - void GetStatement(GetStatementCallback callback) override; + void GetAccountStatement(GetAccountStatementCallback callback) override; void ToggleAdThumbUp(const std::string& creative_instance_id, const std::string& creative_set_id, @@ -236,9 +236,9 @@ class AdsServiceImpl : public AdsService, void OnGetAdsHistory(OnGetAdsHistoryCallback callback, const std::string& json); - void OnGetStatement(GetStatementCallback callback, - const bool success, - const std::string& json); + void OnGetAccountStatement(GetAccountStatementCallback callback, + const bool success, + const std::string& json); void OnRemoveAllHistory(const int32_t result); diff --git a/components/brave_new_tab_ui/actions/rewards_actions.ts b/components/brave_new_tab_ui/actions/rewards_actions.ts index f68a8e7e5957..5d2e87a05b12 100644 --- a/components/brave_new_tab_ui/actions/rewards_actions.ts +++ b/components/brave_new_tab_ui/actions/rewards_actions.ts @@ -11,10 +11,6 @@ export const onAdsEnabled = (enabled: boolean) => action(types.ON_ADS_ENABLED, { enabled }) -export const onAdsEstimatedEarnings = (amount: number) => action(types.ON_ADS_ESTIMATED_EARNINGS, { - amount -}) - export const onBalanceReport = (properties: {month: number, year: number, report: NewTab.RewardsBalanceReport}) => action(types.ON_BALANCE_REPORT, { month: properties.month, year: properties.year, @@ -34,6 +30,10 @@ export const onBalance = (balance: NewTab.RewardsBalance) => action(types.ON_BAL balance }) +export const onAdsAccountStatement = (adsAccountStatement: NewTab.AdsAccountStatement) => action(types.ON_ADS_ACCOUNT_STATEMENT, { + adsAccountStatement +}) + export const setInitialRewardsData = (initialRewardsData: InitialRewardsData) => action(types.SET_INITIAL_REWARDS_DATA, initialRewardsData) export const setPreInitialRewardsData = (preInitialRewardsData: PreInitialRewardsData) => action(types.SET_PRE_INITIAL_REWARDS_DATA, preInitialRewardsData) diff --git a/components/brave_new_tab_ui/api/initialData.ts b/components/brave_new_tab_ui/api/initialData.ts index 4cd157308c0a..5d7de1e0b226 100644 --- a/components/brave_new_tab_ui/api/initialData.ts +++ b/components/brave_new_tab_ui/api/initialData.ts @@ -28,9 +28,9 @@ export type PreInitialRewardsData = { } export type InitialRewardsData = { - adsEstimatedEarnings: number report: NewTab.RewardsBalanceReport balance: NewTab.RewardsBalance + adsAccountStatement: NewTab.AdsAccountStatement parameters: NewTab.RewardsParameters } @@ -130,13 +130,13 @@ export async function getRewardsPreInitialData (): Promise { try { const [ - adsEstimatedEarnings, + adsAccountStatement, report, balance, parameters ] = await Promise.all([ - new Promise(resolve => chrome.braveRewards.getAdsEstimatedEarnings((adsEstimatedEarnings: number) => { - resolve(adsEstimatedEarnings) + new Promise(resolve => chrome.braveRewards.getAdsAccountStatement((success: boolean, adsAccountStatement: NewTab.AdsAccountStatement) => { + resolve(success ? adsAccountStatement : undefined) })), new Promise(resolve => chrome.braveRewards.getBalanceReport(new Date().getMonth() + 1, new Date().getFullYear(),(report: NewTab.RewardsBalanceReport) => { resolve(report) @@ -153,7 +153,7 @@ export async function getRewardsInitialData (): Promise { }) ]) return { - adsEstimatedEarnings, + adsAccountStatement, report, balance, parameters diff --git a/components/brave_new_tab_ui/components/default/rewards/index.tsx b/components/brave_new_tab_ui/components/default/rewards/index.tsx index 1c1e25088769..24c55ebf0531 100644 --- a/components/brave_new_tab_ui/components/default/rewards/index.tsx +++ b/components/brave_new_tab_ui/components/default/rewards/index.tsx @@ -37,10 +37,10 @@ import { BatColorIcon, CloseStrokeIcon } from 'brave-ui/components/icons' export interface RewardsProps { enabledAds: boolean balance: NewTab.RewardsBalance + adsAccountStatement: NewTab.AdsAccountStatement parameters: NewTab.RewardsParameters promotions: NewTab.Promotion[] totalContribution: number - adsEstimatedEarnings: number onlyAnonWallet?: boolean adsSupported?: boolean isShowingBrandedWallpaper: boolean @@ -61,14 +61,14 @@ class Rewards extends React.PureComponent { const { parameters, enabledAds, - adsEstimatedEarnings, + adsAccountStatement, onlyAnonWallet, adsSupported } = this.props const rate = parameters.rate || 0.0 const showEnableAds = !enabledAds && adsSupported - const amount = adsEstimatedEarnings + const amount = adsAccountStatement ? adsAccountStatement.estimatedPendingRewards : 0 const converted = convertBalance(amount, rate) const batFormatString = onlyAnonWallet ? getLocale('rewardsWidgetBap') : getLocale('rewardsWidgetBat') diff --git a/components/brave_new_tab_ui/constants/rewards_types.ts b/components/brave_new_tab_ui/constants/rewards_types.ts index 5cf88de86aed..5a9106f45b7d 100644 --- a/components/brave_new_tab_ui/constants/rewards_types.ts +++ b/components/brave_new_tab_ui/constants/rewards_types.ts @@ -6,7 +6,7 @@ export const enum types { DISMISS_NOTIFICATION = '@@rewards/DISMISS_NOTIFICATION', ON_ADS_ENABLED = '@@rewards/ON_ADS_ENABLED', - ON_ADS_ESTIMATED_EARNINGS = '@@rewards/ON_ADS_ESTIMATED_EARNINGS', + ON_ADS_ACCOUNT_STATEMENT = '@@rewards/ON_ADS_ACCOUNT_STATEMENT', ON_WALLET_INITIALIZED = '@@rewards/ON_WALLET_INITIALIZED', ON_BALANCE_REPORT = '@@rewards/ON_BALANCE_REPORT', ON_PROMOTIONS = '@@rewards/ON_PROMOTIONS', diff --git a/components/brave_new_tab_ui/reducers/rewards_reducer.ts b/components/brave_new_tab_ui/reducers/rewards_reducer.ts index fca2db5a3648..3f12adc7bba6 100644 --- a/components/brave_new_tab_ui/reducers/rewards_reducer.ts +++ b/components/brave_new_tab_ui/reducers/rewards_reducer.ts @@ -16,9 +16,9 @@ const rewardsReducer: Reducer = (state: NewTab.State, state.rewardsState.enabledAds = payload.enabled break - case types.ON_ADS_ESTIMATED_EARNINGS: + case types.ON_ADS_ACCOUNT_STATEMENT: state = { ...state } - state.rewardsState.adsEstimatedEarnings = payload.amount + state.rewardsState.adsAccountStatement = payload.adsAccountStatement break case types.ON_BALANCE_REPORT: @@ -126,8 +126,11 @@ const rewardsReducer: Reducer = (state: NewTab.State, const newRewardsState = { balance: initialRewardsDataPayload.balance, totalContribution: getTotalContributions(initialRewardsDataPayload.report), - adsEstimatedEarnings: initialRewardsDataPayload.adsEstimatedEarnings, parameters: initialRewardsDataPayload.parameters + } as any + + if (payload.adsAccountStatement) { + newRewardsState.adsAccountStatement = payload.adsAccountStatement } state = { diff --git a/components/brave_new_tab_ui/storage/new_tab_storage.ts b/components/brave_new_tab_ui/storage/new_tab_storage.ts index 5a87da6b2c49..9b6e9877ec1d 100644 --- a/components/brave_new_tab_ui/storage/new_tab_storage.ts +++ b/components/brave_new_tab_ui/storage/new_tab_storage.ts @@ -49,7 +49,13 @@ export const defaultState: NewTab.State = { }, togetherPromptDismissed: false, rewardsState: { - adsEstimatedEarnings: 0, + adsAccountStatement: { + estimatedPendingRewards: 0, + nextPaymentDate: '', + adsReceivedThisMonth: 0, + earningsThisMonth: 0, + earningsLastMonth: 0 + }, balance: { total: 0, wallets: {} @@ -229,10 +235,6 @@ const cleanData = (state: NewTab.State) => { // We need to disable linter as we defined in d.ts that this values are number, // but we need this check to covert from old version to a new one /* tslint:disable */ - if (typeof state.rewardsState.adsEstimatedEarnings === 'string') { - state.rewardsState.adsEstimatedEarnings = 0.0 - } - if (typeof state.rewardsState.totalContribution === 'string') { state.rewardsState.totalContribution = 0.0 } diff --git a/components/definitions/chromel.d.ts b/components/definitions/chromel.d.ts index 9ce3c0da4165..7aecc7a22cc5 100644 --- a/components/definitions/chromel.d.ts +++ b/components/definitions/chromel.d.ts @@ -96,7 +96,7 @@ declare namespace chrome.braveRewards { } const getAdsEnabled: (callback: (enabled: boolean) => void) => {} const getAdsSupported: (callback: (supported: boolean) => void) => {} - const getAdsEstimatedEarnings: (callback: (amount: number) => void) => {} + const getAdsAccountStatement: (callback: (success: boolean, adsAccountStatement: NewTab.AdsAccountStatement) => void) => {} const getWalletExists: (callback: (exists: boolean) => void) => {} const saveAdsSetting: (key: string, value: string) => {} const setAutoContributeEnabled: (enabled: boolean) => {} diff --git a/components/definitions/newTab.d.ts b/components/definitions/newTab.d.ts index e3f85ed95d3c..e8fe5e7f8ddc 100644 --- a/components/definitions/newTab.d.ts +++ b/components/definitions/newTab.d.ts @@ -132,9 +132,9 @@ declare namespace NewTab { } export interface RewardsWidgetState { - adsEstimatedEarnings: number adsSupported?: boolean balance: RewardsBalance + adsAccountStatement: AdsAccountStatement dismissedNotifications: string[] enabledAds: boolean promotions: Promotion[] @@ -244,6 +244,14 @@ declare namespace NewTab { wallets: Record } + export interface AdsAccountStatement { + estimatedPendingRewards: number + nextPaymentDate: string + adsReceivedThisMonth: number + earningsThisMonth: number + earningsLastMonth: number + } + export interface RewardsParameters { rate: number monthlyTipChoices: number[] diff --git a/components/services/bat_ads/bat_ads_impl.cc b/components/services/bat_ads/bat_ads_impl.cc index c1452ed6c66e..f46d1a5d5d91 100644 --- a/components/services/bat_ads/bat_ads_impl.cc +++ b/components/services/bat_ads/bat_ads_impl.cc @@ -177,12 +177,12 @@ void BatAdsImpl::GetAdsHistory( std::move(callback).Run(history.ToJson()); } -void BatAdsImpl::GetStatement( - GetStatementCallback callback) { - auto* holder = new CallbackHolder( +void BatAdsImpl::GetAccountStatement(GetAccountStatementCallback callback) { + auto* holder = new CallbackHolder( AsWeakPtr(), std::move(callback)); - ads_->GetStatement(std::bind(BatAdsImpl::OnGetStatement, holder, _1, _2)); + ads_->GetAccountStatement( + std::bind(BatAdsImpl::OnGetAccountStatement, holder, _1, _2)); } void BatAdsImpl::ToggleAdThumbUp( @@ -280,8 +280,8 @@ void BatAdsImpl::OnRemoveAllHistory( delete holder; } -void BatAdsImpl::OnGetStatement( - CallbackHolder* holder, +void BatAdsImpl::OnGetAccountStatement( + CallbackHolder* holder, const bool success, const ads::StatementInfo& statement) { if (holder->is_valid()) { diff --git a/components/services/bat_ads/bat_ads_impl.h b/components/services/bat_ads/bat_ads_impl.h index 369d962fcbe2..4b452256e34a 100644 --- a/components/services/bat_ads/bat_ads_impl.h +++ b/components/services/bat_ads/bat_ads_impl.h @@ -104,8 +104,7 @@ class BatAdsImpl : const uint64_t to_timestamp, GetAdsHistoryCallback callback) override; - void GetStatement( - GetStatementCallback callback) override; + void GetAccountStatement(GetAccountStatementCallback callback) override; void ToggleAdThumbUp( const std::string& creative_instance_id, @@ -174,10 +173,10 @@ class BatAdsImpl : CallbackHolder* holder, const int32_t result); - static void OnGetStatement( - CallbackHolder* holder, - const bool success, - const ads::StatementInfo& statement); + static void OnGetAccountStatement( + CallbackHolder* holder, + const bool success, + const ads::StatementInfo& statement); std::unique_ptr bat_ads_client_mojo_proxy_; std::unique_ptr ads_; diff --git a/components/services/bat_ads/public/interfaces/bat_ads.mojom b/components/services/bat_ads/public/interfaces/bat_ads.mojom index 5f47fec75431..cf321c97c831 100644 --- a/components/services/bat_ads/public/interfaces/bat_ads.mojom +++ b/components/services/bat_ads/public/interfaces/bat_ads.mojom @@ -82,7 +82,7 @@ interface BatAds { OnWalletUpdated(string payment_id, string seed); ReconcileAdRewards(); GetAdsHistory(uint64 from_timestamp, uint64 to_timestamp) => (string json); - GetStatement() => (bool success, string json); + GetAccountStatement() => (bool success, string json); ToggleAdThumbUp(string creative_instance_id, string creative_set_id, int32 action) => (string creative_instance_id, int32 action); ToggleAdThumbDown(string creative_instance_id, string creative_set_id, int32 action) => (string creative_instance_id, int32 action); ToggleAdOptInAction(string category, int32 action) => (string category, int32 action); diff --git a/vendor/bat-native-ads/include/bat/ads/ads.h b/vendor/bat-native-ads/include/bat/ads/ads.h index 95df293df06f..664db3ef553a 100644 --- a/vendor/bat-native-ads/include/bat/ads/ads.h +++ b/vendor/bat-native-ads/include/bat/ads/ads.h @@ -30,7 +30,7 @@ using ShutdownCallback = std::function; using RemoveAllHistoryCallback = std::function; -using GetStatementCallback = +using GetAccountStatementCallback = std::function; // |g_environment| indicates that URL requests should use production, staging or @@ -180,7 +180,7 @@ class ADS_EXPORT Ads { // argument - |StatementInfo| which contains estimated pending rewards, next // payment date, ads received this month, pending rewards, cleared // transactions and uncleared transactions - virtual void GetStatement(GetStatementCallback callback) = 0; + virtual void GetAccountStatement(GetAccountStatementCallback callback) = 0; // Should be called to indicate interest in the specified ad. This is a // toggle, so calling it again returns the setting to the neutral state diff --git a/vendor/bat-native-ads/include/bat/ads/statement_info.h b/vendor/bat-native-ads/include/bat/ads/statement_info.h index f23e3a504578..b32e4b72926e 100644 --- a/vendor/bat-native-ads/include/bat/ads/statement_info.h +++ b/vendor/bat-native-ads/include/bat/ads/statement_info.h @@ -28,8 +28,8 @@ struct ADS_EXPORT StatementInfo { bool FromJson(const std::string& json); double estimated_pending_rewards = 0.0; - uint64_t next_payment_date = 0; - uint64_t ads_received_this_month = 0; + int64_t next_payment_date = 0; + int ads_received_this_month = 0; double earnings_this_month = 0.0; double earnings_last_month = 0.0; TransactionList transactions; diff --git a/vendor/bat-native-ads/src/bat/ads/internal/ads_impl.cc b/vendor/bat-native-ads/src/bat/ads/internal/ads_impl.cc index 03161eb81eaa..4972a2d9cac7 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/ads_impl.cc +++ b/vendor/bat-native-ads/src/bat/ads/internal/ads_impl.cc @@ -291,20 +291,20 @@ AdsHistoryInfo AdsImpl::GetAdsHistory( return history::Get(filter_type, sort_type, from_timestamp, to_timestamp); } -void AdsImpl::GetStatement(GetStatementCallback callback) { - StatementInfo statement_of_account; +void AdsImpl::GetAccountStatement(GetAccountStatementCallback callback) { + StatementInfo statement; if (!IsInitialized()) { - callback(/* success */ false, statement_of_account); + callback(/* success */ false, statement); return; } const int64_t to_timestamp = static_cast(base::Time::Now().ToDoubleT()); - statement_of_account = account_->GetStatement(0, to_timestamp); + statement = account_->GetStatement(0, to_timestamp); - callback(/* success */ true, statement_of_account); + callback(/* success */ true, statement); } AdContentInfo::LikeAction AdsImpl::ToggleAdThumbUp( diff --git a/vendor/bat-native-ads/src/bat/ads/internal/ads_impl.h b/vendor/bat-native-ads/src/bat/ads/internal/ads_impl.h index 5b00b7537226..baa028c3e81a 100644 --- a/vendor/bat-native-ads/src/bat/ads/internal/ads_impl.h +++ b/vendor/bat-native-ads/src/bat/ads/internal/ads_impl.h @@ -154,7 +154,7 @@ class AdsImpl : public Ads, const uint64_t from_timestamp, const uint64_t to_timestamp) override; - void GetStatement(GetStatementCallback callback) override; + void GetAccountStatement(GetAccountStatementCallback callback) override; AdContentInfo::LikeAction ToggleAdThumbUp( const std::string& creative_instance_id, diff --git a/vendor/bat-native-ads/src/bat/ads/statement_info.cc b/vendor/bat-native-ads/src/bat/ads/statement_info.cc index 49fdc501d16a..564048286bbf 100644 --- a/vendor/bat-native-ads/src/bat/ads/statement_info.cc +++ b/vendor/bat-native-ads/src/bat/ads/statement_info.cc @@ -47,7 +47,7 @@ std::string StatementInfo::ToJson() const { // Ads received this month dictionary.SetKey("ads_received_this_month", - base::Value(std::to_string(ads_received_this_month))); + base::Value(ads_received_this_month)); // Earnings this month dictionary.SetKey("earnings_this_month", base::Value(earnings_this_month)); @@ -130,18 +130,7 @@ uint64_t StatementInfo::GetAdsReceivedThisMonthFromDictionary( base::DictionaryValue* dictionary) const { DCHECK(dictionary); - const std::string* value = - dictionary->FindStringKey("ads_received_this_month"); - if (!value) { - return 0; - } - - uint64_t value_as_uint64 = 0; - if (!base::StringToUint64(*value, &value_as_uint64)) { - return 0; - } - - return value_as_uint64; + return dictionary->FindIntKey("ads_received_this_month").value_or(0); } double StatementInfo::GetEarningsThisMonthFromDictionary( diff --git a/vendor/brave-ios/Ads/BATBraveAds.mm b/vendor/brave-ios/Ads/BATBraveAds.mm index bc67f756a5b8..b3ff8f6342aa 100644 --- a/vendor/brave-ios/Ads/BATBraveAds.mm +++ b/vendor/brave-ios/Ads/BATBraveAds.mm @@ -558,7 +558,7 @@ - (void)reconcileAdRewards - (void)detailsForCurrentCycle:(void (^)(NSInteger adsReceived, double estimatedEarnings, NSDate *nextPaymentDate))completion { if (![self isAdsServiceRunning]) { return; } - ads->GetStatement(^(bool success, ads::StatementInfo list) { + ads->GetAccountStatement(^(bool success, ads::StatementInfo list) { if (!success) { completion(0, 0, nil); return;