{promotions.map((promotion?: Rewards.Promotion, index?: number) => {
if (!promotion || !promotion.promotionId) {
return null
@@ -197,32 +179,159 @@ class SettingsPage extends React.Component
{
this.stopRewards()
}
- render () {
- const { externalWallet, parameters, balance } = this.props.rewardsData
- const { total } = balance
- const convertedBalance = utils.convertBalance((total || 0), parameters.rate)
+ onRedirectError = () => {
+ this.actions.hideRedirectModal()
+ const { externalWallet } = this.props.rewardsData
+
+ if (externalWallet && externalWallet.verifyUrl) {
+ window.open(externalWallet.verifyUrl, '_self')
+ }
+ }
+
+ getRedirectModal = () => {
+ const { externalWallet, ui } = this.props.rewardsData
+ const walletType = externalWallet ? externalWallet.type : ''
+
+ switch (ui.modalRedirect) {
+ case 'deviceLimitReachedModal':
+ return (
+
+ )
+ case 'error':
+ return (
+
+ )
+ case 'kycRequiredModal':
+ return (
+
+ )
+ case 'mismatchedProviderAccountsModal':
+ return (
+
+ )
+ case 'show':
+ return (
+
+ )
+ case 'upholdBATNotAllowedModal':
+ return (
+
+ )
+ case 'upholdBlockedUserModal':
+ return (
+
+ )
+ case 'upholdPendingUserModal':
+ return (
+
+ )
+ case 'upholdRestrictedUserModal':
+ return (
+
+ )
+ default:
+ return null
+ }
+ }
+
+ renderSettings () {
return (
-
+ <>
- {this.getPromotionsClaims()}
-
-
-
+ >
+ )
+ }
+
+ render () {
+ return (
+
+ {this.getPromotionsClaims()}
+
+ {this.getRedirectModal()}
+ {this.renderSettings()}
+
)
}
}
diff --git a/components/brave_rewards/resources/android_page/components/style.ts b/components/brave_rewards/resources/android_page/components/style.ts
index 36280d7b248..afe71d7444d 100644
--- a/components/brave_rewards/resources/android_page/components/style.ts
+++ b/components/brave_rewards/resources/android_page/components/style.ts
@@ -4,6 +4,18 @@
import styled from 'styled-components'
+export const TourPromoWrapper = styled('div')<{}>`
+ margin-top: 30px;
+`
+
+export const PageWalletWrapper = styled.div`
+ width: 373px;
+
+ @media screen and (max-width: 700px) {
+ margin-bottom: 10px;
+ }
+`
+
export const StyledListContent = styled('div')<{}>`
padding: 0 25px;
`
diff --git a/components/brave_rewards/resources/android_page/constants/rewards_types.ts b/components/brave_rewards/resources/android_page/constants/rewards_types.ts
index e5e9b6b2afb..949a252cb5d 100644
--- a/components/brave_rewards/resources/android_page/constants/rewards_types.ts
+++ b/components/brave_rewards/resources/android_page/constants/rewards_types.ts
@@ -12,8 +12,13 @@ export const enum types {
FETCH_PROMOTIONS = '@@rewards/FETCH_PROMOTIONS',
ON_PROMOTIONS = '@@rewards/ON_PROMOTION',
CLAIM_PROMOTION = '@@rewards/CLAIM_PROMOTION',
+ ON_CLAIM_PROMOTION = '@@rewards/ON_CLAIM_PROMOTION',
+ ATTEST_PROMOTION = '@@rewards/ATTEST_PROMOTION',
+ RESET_PROMOTION = '@@rewards/RESET_PROMOTION',
DELETE_PROMOTION = '@@rewards/DELETE_PROMOTION',
ON_PROMOTION_FINISH = '@@rewards/ON_PROMOTION_FINISH',
+ RECOVER_WALLET = '@@rewards/RECOVER_WALLET',
+ ON_RECOVER_WALLET_DATA = '@@rewards/ON_RECOVER_WALLET_DATA',
ON_MODAL_BACKUP_CLOSE = '@@rewards/ON_MODAL_BACKUP_CLOSE',
ON_MODAL_BACKUP_OPEN = '@@rewards/ON_MODAL_BACKUP_OPEN',
ON_CLEAR_ALERT = '@@rewards/ON_CLEAR_ALERT',
@@ -32,6 +37,20 @@ export const enum types {
INIT_AUTOCONTRIBUTE_SETTINGS = '@@rewards/INIT_AUTOCONTRIBUTE_SETTINGS',
GET_ADS_DATA = '@@rewards/GET_ADS_DATA',
ON_ADS_DATA = '@@rewards/ON_ADS_DATA',
+ GET_ADS_HISTORY = '@@rewards/GET_ADS_HISTORY',
+ TOGGLE_AD_THUMB_UP = '@@rewards/TOGGLE_AD_THUMB_UP',
+ ON_TOGGLE_AD_THUMB_UP = '@@rewards/ON_TOGGLE_AD_THUMB_UP',
+ TOGGLE_AD_THUMB_DOWN = '@@rewards/TOGGLE_AD_THUMB_DOWN',
+ ON_TOGGLE_AD_THUMB_DOWN = '@@rewards/ON_TOGGLE_AD_THUMB_DOWN',
+ TOGGLE_AD_OPT_IN = '@@rewards/TOGGLE_AD_OPT_IN',
+ ON_TOGGLE_AD_OPT_IN = '@@rewards/ON_TOGGLE_AD_OPT_IN',
+ TOGGLE_AD_OPT_OUT = '@@rewards/TOGGLE_AD_OPT_OUT',
+ ON_TOGGLE_AD_OPT_OUT = '@@rewards/ON_TOGGLE_AD_OPT_OUT',
+ TOGGLE_SAVED_AD = '@@rewards/TOGGLE_SAVED_AD',
+ ON_TOGGLE_SAVED_AD = '@@rewards/ON_TOGGLE_SAVED_AD',
+ TOGGLE_FLAGGED_AD = '@@rewards/TOGGLE_FLAGGED_AD',
+ ON_TOGGLE_FLAGGED_AD = '@@rewards/ON_TOGGLE_FLAGGED_AD',
+ ON_ADS_HISTORY = '@@rewards/ON_ADS_HISTORY',
ON_ADS_SETTING_SAVE = '@@rewards/ON_ADS_SETTING_SAVE',
GET_BALANCE_REPORT = '@@rewards/GET_BALANCE_REPORT',
ON_BALANCE_REPORT = '@@rewards/ON_BALANCE_REPORT',
@@ -49,14 +68,38 @@ export const enum types {
ON_EXCLUDED_LIST = '@@rewards/ON_EXCLUDED_LIST',
ON_RESTORE_PUBLISHER = '@@rewards/ON_RESTORE_PUBLISHER',
GET_EXCLUDED_SITES = '@@rewards/GET_EXCLUDED_SITES',
- GET_EXTERNAL_WALLET = '@@rewards/GET_EXTERNAL_WALLET',
GET_BALANCE = '@@rewards/GET_BALANCE',
ON_BALANCE = '@@rewards/ON_BALANCE',
+ GET_EXTERNAL_WALLET = '@@rewards/GET_EXTERNAL_WALLET',
ON_EXTERNAL_WALLET = '@@rewards/ON_EXTERNAL_WALLET',
+ PROCESS_REWARDS_PAGE_URL = '@@rewards/PROCESS_REWARDS_PAGE_URL',
+ ON_PROCESS_REWARDS_PAGE_URL = '@@rewards/ON_PROCESS_REWARDS_PAGE_URL',
+ HIDE_REDIRECT_MODAL = '@@rewards/HIDE_REDIRECT_MODAL',
+ DISCONNECT_WALLET = '@@rewards/DISCONNECT_WALLET',
ONLY_ANON_WALLET = '@@rewards/ONLY_ANON_WALLET',
ON_ONLY_ANON_WALLET = '@@rewards/ON_ONLY_ANON_WALLET',
+ GET_MONTHLY_REPORT = '@@rewards/GET_MONTHLY_REPORT',
+ ON_MONTHLY_REPORT = '@@rewards/ON_MONTHLY_REPORT',
+ ON_RECONCILE_STAMP_RESET = '@@rewards/ON_RECONCILE_STAMP_RESET',
+ GET_MONTHLY_REPORT_IDS = '@@rewards/GET_MONTHLY_REPORT_IDS',
+ ON_MONTHLY_REPORT_IDS = '@@rewards/ON_MONTHLY_REPORT_IDS',
+ DISMISS_PROMO_PROMPT = '@@rewards/DISMISS_PROMO_PROMPT',
+ GET_COUNTRY_CODE = '@@rewards/GET_COUNTRY_CODE',
+ ON_COUNTRY_CODE = '@@rewards/ON_COUNTRY_CODE',
ON_INITIALIZED = '@@rewards/ON_INITIALIZED',
- DISCONNECT_WALLET = '@@rewards/DISCONNECT_WALLET',
+ COMPLETE_RESET = '@@rewards/COMPLETE_RESET',
+ ON_COMPLETE_RESET = '@@rewards/ON_COMPLETE_RESET',
+ GET_PAYMENT_ID = '@@rewards/GET_PAYMENT_ID',
+ ON_PAYMENT_ID = '@@rewards/ON_PAYMENT_ID',
+ GET_WALLET_PASSPHRASE = '@@rewards/GET_WALLLET_PASSPHRASE',
+ ON_WALLET_PASSPHRASE = '@@rewards/ON_WALLLET_PASSPHRASE',
+ GET_ONBOARDING_STATUS = '@@rewards/GET_ONBOARDING_STATUS',
+ ON_ONBOARDING_STATUS = '@@rewards/ON_ONBOARDING_STATUS',
+ SAVE_ONBOARDING_RESULT = '@@rewards/SAVE_ONBOARDING_RESULT',
DISCONNECT_WALLET_ERROR = '@@rewards/DISCONNECT_WALLET_ERROR',
+ GET_ENABLED_INLINE_TIPPING_PLATFORMS = '@@rewards/GET_ENABLED_INLINE_TIPPING_PLATFORMS',
+ ON_ENABLED_INLINE_TIPPING_PLATFORMS = '@@rewards/ON_ENABLED_INLINE_TIPPING_PLATFORMS',
+ ON_EXTERNAL_WALLET_PROVIDER_LIST = '@@rewards/ON_EXTERNAL_WALLET_PROVIDER_LIST',
+ RESTART_BROWSER = '@@rewards/RESTART_BROWSER',
ON_PREF_CHANGED = '@@rewards/ON_PREF_CHANGED'
}
diff --git a/components/brave_rewards/resources/android_page/reducers/rewards_reducer.ts b/components/brave_rewards/resources/android_page/reducers/rewards_reducer.ts
index 1834ff985da..98c085a1725 100644
--- a/components/brave_rewards/resources/android_page/reducers/rewards_reducer.ts
+++ b/components/brave_rewards/resources/android_page/reducers/rewards_reducer.ts
@@ -9,6 +9,10 @@ import { types } from '../constants/rewards_types'
import { defaultState } from '../storage'
const rewardsReducer: Reducer = (state: Rewards.State, action) => {
+ if (!state) {
+ return
+ }
+
switch (action.type) {
case types.IS_INITIALIZED: {
chrome.send('brave_rewards.isInitialized')
@@ -18,11 +22,6 @@ const rewardsReducer: Reducer = (state: Rewards.State
chrome.send('brave_rewards.getAutoContributeProperties')
break
}
- case types.DISCONNECT_WALLET : {
- state = { ...state }
- chrome.send('brave_rewards.disconnectWallet')
- break
- }
case types.DISCONNECT_WALLET_ERROR: {
state = { ...state }
let ui = state.ui
@@ -53,34 +52,22 @@ const rewardsReducer: Reducer = (state: Rewards.State
break
}
- case types.GET_EXTERNAL_WALLET: {
- chrome.send('brave_rewards.getExternalWallet')
- break
- }
- case types.ON_EXTERNAL_WALLET: {
- state = { ...state }
-
- if (action.payload.result === 24) { // on ledger::type::Result::EXPIRED_TOKEN
- chrome.send('brave_rewards.getExternalWallet')
- break
- }
-
- if (action.payload.result === 0) { // type::Result::LEDGER_OK
- chrome.send('brave_rewards.fetchBalance')
- }
-
- state.externalWallet = action.payload.wallet
- break
- }
- case types.ON_SETTING_SAVE:
+ case types.ON_SETTING_SAVE: {
state = { ...state }
const key = action.payload.key
const value = action.payload.value
- if (key) {
- state[key] = value
+ const persist = action.payload.persist
+ if (!key) {
+ break
+ }
+
+ if (persist) {
chrome.send('brave_rewards.saveSetting', [key, value.toString()])
}
+
+ state[key] = value
break
+ }
case types.ON_MODAL_BACKUP_CLOSE: {
state = { ...state }
let ui = state.ui
@@ -103,7 +90,7 @@ const rewardsReducer: Reducer = (state: Rewards.State
}
case types.ON_CLEAR_ALERT: {
let ui = state.ui
- if (!ui[action.payload.property]) {
+ if (ui[action.payload.property] === undefined) {
break
}
@@ -152,16 +139,85 @@ const rewardsReducer: Reducer = (state: Rewards.State
state.adsData.adsIsSupported = action.payload.adsData.adsIsSupported
break
}
+ case types.GET_ADS_HISTORY: {
+ chrome.send('brave_rewards.getAdsHistory')
+ break
+ }
+ case types.ON_ADS_HISTORY: {
+ if (!action.payload.adsHistory) {
+ break
+ }
+
+ state = { ...state }
+
+ if (!state.adsHistory) {
+ state.adsHistory = defaultState.adsHistory
+ }
+
+ state.adsHistory = action.payload.adsHistory
+ break
+ }
+ case types.TOGGLE_AD_THUMB_UP: {
+ chrome.send('brave_rewards.toggleAdThumbUp', [action.payload.adContent])
+ break
+ }
+ case types.ON_TOGGLE_AD_THUMB_UP: {
+ chrome.send('brave_rewards.getAdsHistory')
+ break
+ }
+ case types.TOGGLE_AD_THUMB_DOWN: {
+ chrome.send('brave_rewards.toggleAdThumbDown', [action.payload.adContent])
+ break
+ }
+ case types.ON_TOGGLE_AD_THUMB_DOWN: {
+ chrome.send('brave_rewards.getAdsHistory')
+ break
+ }
+ case types.TOGGLE_AD_OPT_IN: {
+ chrome.send('brave_rewards.toggleAdOptIn',
+ [action.payload.category, action.payload.optAction])
+ break
+ }
+ case types.ON_TOGGLE_AD_OPT_IN: {
+ chrome.send('brave_rewards.getAdsHistory')
+ break
+ }
+ case types.TOGGLE_AD_OPT_OUT: {
+ chrome.send('brave_rewards.toggleAdOptOut',
+ [action.payload.category, action.payload.optAction])
+ break
+ }
+ case types.ON_TOGGLE_AD_OPT_OUT: {
+ chrome.send('brave_rewards.getAdsHistory')
+ break
+ }
+ case types.TOGGLE_SAVED_AD: {
+ chrome.send('brave_rewards.toggleSavedAd', [action.payload.adContent])
+ break
+ }
+ case types.ON_TOGGLE_SAVED_AD: {
+ chrome.send('brave_rewards.getAdsHistory')
+ break
+ }
+ case types.TOGGLE_FLAGGED_AD: {
+ chrome.send('brave_rewards.toggleFlaggedAd', [action.payload.adContent])
+ break
+ }
+ case types.ON_TOGGLE_FLAGGED_AD: {
+ chrome.send('brave_rewards.getAdsHistory')
+ break
+ }
case types.ON_ADS_SETTING_SAVE: {
state = { ...state }
const key = action.payload.key
const value = action.payload.value
if (key) {
- state[key] = value
chrome.send('brave_rewards.saveAdsSetting', [key, value.toString()])
-
if (key === 'adsEnabledMigrated') {
state.enabledAdsMigrated = true
+ } else {
+ state.adsData = { ...(state.adsData || defaultState.adsData) }
+ state.adsData[key] = value
}
}
break
@@ -189,6 +245,38 @@ const rewardsReducer: Reducer = (state: Rewards.State
state.adsData.adsEarningsLastMonth = data.adsEarningsLastMonth
break
}
+ case types.GET_ENABLED_INLINE_TIPPING_PLATFORMS: {
+ chrome.send('brave_rewards.getEnabledInlineTippingPlatforms')
+ break
+ }
+ case types.ON_ENABLED_INLINE_TIPPING_PLATFORMS: {
+ const inlineTip = {
+ twitter: false,
+ reddit: false,
+ github: false
+ }
+
+ for (const platform of action.payload.platforms) {
+ switch (platform) {
+ case 'github':
+ inlineTip.github = true
+ break
+ case 'reddit':
+ inlineTip.reddit = true
+ break
+ case 'twitter':
+ inlineTip.twitter = true
+ break
+ }
+ }
+
+ state = {
+ ...state,
+ inlineTip
+ }
+
+ break
+ }
case types.ON_INLINE_TIP_SETTINGS_CHANGE: {
if (!state.inlineTip) {
state.inlineTip = {
@@ -217,6 +305,124 @@ const rewardsReducer: Reducer = (state: Rewards.State
break
}
+ case types.PROCESS_REWARDS_PAGE_URL: {
+ const path = action.payload.path
+ const query = action.payload.query
+ const ui = state.ui
+
+ chrome.send('brave_rewards.processRewardsPageUrl', [path, query])
+ ui.modalRedirect = 'show'
+
+ state = {
+ ...state,
+ ui
+ }
+ break
+ }
+ case types.ON_PROCESS_REWARDS_PAGE_URL: {
+ const data = action.payload.data
+ const ui = state.ui
+
+ chrome.send('brave_rewards.getExternalWallet')
+
+ if (data.result === 9) { // type::Result::NOT_FOUND
+ ui.modalRedirect = 'kycRequiredModal'
+ break
+ }
+
+ if (data.result === 24) { // type::Result::EXPIRED_TOKEN
+ ui.modalRedirect = 'error'
+ break
+ }
+
+ if (data.result === 25) { // type::Result::UPHOLD_BAT_NOT_ALLOWED
+ ui.modalRedirect = 'upholdBATNotAllowedModal'
+ break
+ }
+
+ if (data.result === 36) { // type::Result::DEVICE_LIMIT_REACHED
+ ui.modalRedirect = 'deviceLimitReachedModal'
+ break
+ }
+
+ if (data.result === 37) { // type::Result::MISMATCHED_PROVIDER_ACCOUNTS
+ ui.modalRedirect = 'mismatchedProviderAccountsModal'
+ break
+ }
+
+ if (data.result !== 0) {
+ ui.modalRedirect = 'error'
+ break
+ }
+
+ if (data.walletType === 'uphold' || data.walletType === 'bitflyer' || data.walletType === 'gemini') {
+ chrome.send('brave_rewards.fetchBalance')
+
+ if (data.action === 'authorization') {
+ const url = data.args.redirect_url
+ if (url && url.length > 0) {
+ window.open(url, '_self')
+ }
+ ui.modalRedirect = 'hide'
+ break
+ }
+ }
+
+ ui.modalRedirect = 'error'
+
+ state = {
+ ...state,
+ ui
+ }
+ break
+ }
+ case types.HIDE_REDIRECT_MODAL: {
+ const ui = state.ui
+
+ ui.modalRedirect = 'hide'
+
+ state = {
+ ...state,
+ ui
+ }
+ break
+ }
+ case types.DISCONNECT_WALLET: {
+ state = { ...state }
+ chrome.send('brave_rewards.disconnectWallet')
+ break
+ }
+ case types.GET_EXTERNAL_WALLET: {
+ chrome.send('brave_rewards.getExternalWallet')
+ break
+ }
+ case types.ON_EXTERNAL_WALLET: {
+ state = { ...state }
+
+ if (action.payload.result === 24) { // on ledger::type::Result::EXPIRED_TOKEN
+ chrome.send('brave_rewards.getExternalWallet')
+ break
+ }
+
+ if (action.payload.result === 0) { // type::Result::LEDGER_OK
+ chrome.send('brave_rewards.fetchBalance')
+ }
+
+ state.externalWallet = action.payload.wallet
+ break
+ }
+ case types.GET_COUNTRY_CODE: {
+ chrome.send('brave_rewards.getCountryCode')
+ break
+ }
+ case types.ON_COUNTRY_CODE: {
+ const { countryCode } = action.payload
+ state = {
+ ...state,
+ currentCountryCode: countryCode
+ }
+ break
+ }
case types.ON_INITIALIZED: {
state = {
...state,
@@ -225,6 +431,31 @@ const rewardsReducer: Reducer = (state: Rewards.State
chrome.send('brave_rewards.getReconcileStamp')
break
}
+ case types.COMPLETE_RESET: {
+ chrome.send('brave_rewards.completeReset')
+ break
+ }
+ case types.ON_COMPLETE_RESET: {
+ if (action.payload.success) {
+ return undefined
+ }
+ break
+ }
+ case types.GET_PAYMENT_ID: {
+ chrome.send('brave_rewards.getPaymentId')
+ break
+ }
+ case types.ON_PAYMENT_ID: {
+ state = {
+ ...state,
+ paymentId: action.payload.paymentId
+ }
+ break
+ }
+ case types.RESTART_BROWSER: {
+ chrome.send('brave_rewards.restartBrowser')
+ break
+ }
case types.ON_PREF_CHANGED: {
chrome.send('brave_rewards.getEnabledInlineTippingPlatforms')
chrome.send('brave_rewards.getContributionAmount')
diff --git a/components/brave_rewards/resources/android_page/reducers/wallet_reducer.ts b/components/brave_rewards/resources/android_page/reducers/wallet_reducer.ts
index 6b1065f0e00..832b0bd088a 100644
--- a/components/brave_rewards/resources/android_page/reducers/wallet_reducer.ts
+++ b/components/brave_rewards/resources/android_page/reducers/wallet_reducer.ts
@@ -4,24 +4,68 @@
import { Reducer } from 'redux'
+import { getCurrentBalanceReport } from '../utils'
+
// Constant
import { types } from '../constants/rewards_types'
const walletReducer: Reducer = (state: Rewards.State, action) => {
+ if (!state) {
+ return
+ }
+
switch (action.type) {
case types.GET_REWARDS_PARAMETERS:
chrome.send('brave_rewards.getRewardsParameters')
break
case types.ON_REWARDS_PARAMETERS: {
state = { ...state }
+ state.parameters = action.payload.properties
+ break
+ }
+ case types.RECOVER_WALLET: {
+ let key = action.payload.key
+ key = key.trim()
+
+ if (!key || key.length === 0) {
+ let ui = state.ui
+ ui.walletRecoveryStatus = 0
+
+ state = {
+ ...state,
+ ui
+ }
+
+ break
+ }
+
+ chrome.send('brave_rewards.recoverWallet', [key])
+ break
+ }
+ case types.ON_EXTERNAL_WALLET_PROVIDER_LIST: {
+ if (!action.payload.list) {
+ break
+ }
+
+ state = { ...state }
+ state.externalWalletProviderList = action.payload.list
+ break
+ }
+ case types.ON_RECOVER_WALLET_DATA: {
+ state = { ...state }
+ const result = action.payload.result
let ui = state.ui
// TODO NZ check why enum can't be used inside Rewards namespace
- if (action.payload.properties.status === 1) {
- ui.walletServerProblem = true
- } else {
- state.parameters = action.payload.properties
- ui.walletServerProblem = false
+ ui.walletRecoveryStatus = result
+ if (result === 0) {
+ chrome.send('brave_rewards.fetchPromotions')
+ chrome.send('brave_rewards.fetchBalance')
+ chrome.send('brave_rewards.getPaymentId')
+ getCurrentBalanceReport()
+ ui.modalBackup = false
+ ui.emptyWallet = false
+ state.recoveryKey = ''
}
state = {
@@ -96,6 +140,9 @@ const walletReducer: Reducer = (state: Rewards.State,
}
} else if (status === 1) { // on ledger::type::Result::LEDGER_ERROR
ui.walletServerProblem = true
+ } else if (status === 24) { // on ledger::type::Result::EXPIRED_TOKEN
+ chrome.send('brave_rewards.getExternalWallet')
+ state.balance.total = action.payload.balance.total || 0
}
state = {
@@ -104,6 +151,110 @@ const walletReducer: Reducer = (state: Rewards.State,
}
break
}
+ case types.GET_EXTERNAL_WALLET: {
+ chrome.send('brave_rewards.getExternalWallet')
+ break
+ }
+ case types.ON_EXTERNAL_WALLET: {
+ state = { ...state }
+
+ if (action.payload.result === 24) { // type::Result::EXPIRED_TOKEN
+ chrome.send('brave_rewards.getExternalWallet')
+ break
+ }
+
+ if (action.payload.result === 25) { // type::Result::UPHOLD_BAT_NOT_ALLOWED
+ state.ui.modalRedirect = 'upholdBATNotAllowedModal'
+ break
+ }
+
+ if (action.payload.result === 36) { // type::Result::DEVICE_LIMIT_REACHED
+ state.ui.modalRedirect = 'deviceLimitReachedModal'
+ break
+ }
+
+ if (action.payload.result === 37) { // type::Result::MISMATCHED_PROVIDER_ACCOUNTS
+ state.ui.modalRedirect = 'mismatchedProviderAccountsModal'
+ break
+ }
+
+ if (action.payload.result === 38) { // type::Result::UPHOLD_BLOCKED_USER
+ state.ui.modalRedirect = 'upholdBlockedUserModal'
+ break
+ }
+
+ if (action.payload.result === 39) { // type::Result::UPHOLD_PENDING_USER
+ state.ui.modalRedirect = 'upholdPendingUserModal'
+ break
+ }
+
+ if (action.payload.result === 40) { // type::Result::UPHOLD_RESTRICTED_USER
+ state.ui.modalRedirect = 'upholdRestrictedUserModal'
+ break
+ }
+
+ if (action.payload.result === 0) { // type::Result::LEDGER_OK
+ chrome.send('brave_rewards.fetchBalance')
+ }
+
+ state.externalWallet = action.payload.wallet
+ break
+ }
+ case types.GET_MONTHLY_REPORT: {
+ let month = action.payload.month
+ let year = action.payload.year
+ if (month == null) {
+ month = new Date().getMonth() + 1
+ }
+
+ if (year == null) {
+ year = new Date().getFullYear()
+ }
+
+ chrome.send('brave_rewards.getMonthlyReport', [month, year])
+ break
+ }
+ case types.ON_MONTHLY_REPORT: {
+ state = { ...state }
+ state.monthlyReport = {
+ month: action.payload.month,
+ year: action.payload.year
+ }
+
+ if (!action.payload.report) {
+ break
+ }
+
+ state.monthlyReport = Object.assign(state.monthlyReport, action.payload.report)
+ break
+ }
+ case types.GET_MONTHLY_REPORT_IDS: {
+ chrome.send('brave_rewards.getMonthlyReportIds')
+ break
+ }
+ case types.ON_MONTHLY_REPORT_IDS: {
+ state = { ...state }
+ state.monthlyReportIds = action.payload
+ break
+ }
+ case types.GET_WALLET_PASSPHRASE: {
+ chrome.send('brave_rewards.getWalletPassphrase')
+ break
+ }
+ case types.ON_WALLET_PASSPHRASE: {
+ const value = action.payload.passphrase
+ if (value && value.length > 0) {
+ state = { ...state }
+ let ui = state.ui
+ state.recoveryKey = value
+
+ state = {
+ ...state,
+ ui
+ }
+ }
+ break
+ }
}
return state
diff --git a/components/brave_rewards/resources/android_page/storage.ts b/components/brave_rewards/resources/android_page/storage.ts
index a880ef93ffc..862baa592b6 100644
--- a/components/brave_rewards/resources/android_page/storage.ts
+++ b/components/brave_rewards/resources/android_page/storage.ts
@@ -11,7 +11,7 @@ export const defaultState: Rewards.State = {
createdTimestamp: null,
enabledAds: true,
enabledAdsMigrated: false,
- enabledContribute: true,
+ enabledContribute: false,
firstLoad: null,
contributionMinTime: 8,
contributionMinVisits: 1,
diff --git a/components/brave_rewards/resources/android_page/utils.ts b/components/brave_rewards/resources/android_page/utils.tsx
similarity index 92%
rename from components/brave_rewards/resources/android_page/utils.ts
rename to components/brave_rewards/resources/android_page/utils.tsx
index ce0602c87ab..9bb9536aada 100644
--- a/components/brave_rewards/resources/android_page/utils.ts
+++ b/components/brave_rewards/resources/android_page/utils.tsx
@@ -23,10 +23,6 @@ export const convertBalance = (tokens: number, rate: number): string => {
return converted.toFixed(2)
}
-export const getWalletProviderName = (wallet?: Rewards.ExternalWallet) => {
- return lookupExternalWalletProviderName(wallet ? wallet.type : '')
-}
-
export const formatConverted = (converted: string, currency: string = 'USD'): string | null => {
return `${converted} ${currency}`
}
@@ -61,11 +57,11 @@ export const constructBackupString = (backupKey: string) => {
}
export const isPublisherVerified = (status: Rewards.PublisherStatus) => {
- return status === 2
+ return status > 1
}
export const isPublisherConnectedOrVerified = (status: Rewards.PublisherStatus) => {
- return status === 2 || status === 1
+ return status > 0
}
export const isPublisherNotVerified = (status: Rewards.PublisherStatus) => {
@@ -78,3 +74,11 @@ export const getCurrentBalanceReport = () => {
new Date().getFullYear()
])
}
+
+export const getWalletProviderName = (wallet?: Rewards.ExternalWallet | string) => {
+ if (!wallet) {
+ return ''
+ }
+ return lookupExternalWalletProviderName(
+ typeof wallet === 'string' ? wallet : wallet.type)
+}
diff --git a/components/brave_rewards/resources/ui/components/modalRedirect/index.tsx b/components/brave_rewards/resources/ui/components/modalRedirect/index.tsx
index 2093ff76de1..c922d070ec6 100644
--- a/components/brave_rewards/resources/ui/components/modalRedirect/index.tsx
+++ b/components/brave_rewards/resources/ui/components/modalRedirect/index.tsx
@@ -25,6 +25,7 @@ export interface Props {
learnMore?: string
walletType?: string
displayCloseButton?: boolean
+ isMobile?: boolean
onClick?: () => void
onClose?: () => void
}
@@ -44,14 +45,28 @@ export default class ModalRedirect extends React.PureComponent {
}
render () {
- const { id, errorText, errorTextLink, titleText, learnMore, displayCloseButton, onClose } = this.props
+ const {
+ id,
+ errorText,
+ errorTextLink,
+ titleText,
+ learnMore,
+ displayCloseButton,
+ isMobile,
+ onClose
+ } = this.props
let errorTextLinkTags = null
if (errorText && errorText.includes('$2')) {
errorTextLinkTags = splitStringForTag(errorText, 2)
}
return (
-
+
{titleText}
diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/state/state.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/state/state.cc
index fc8e13bb502..c4f346b63c6 100644
--- a/vendor/bat-native-ledger/src/bat/ledger/internal/state/state.cc
+++ b/vendor/bat-native-ledger/src/bat/ledger/internal/state/state.cc
@@ -155,12 +155,10 @@ void State::GetScoreValues(double* a, double* b) {
}
void State::SetAutoContributeEnabled(bool enabled) {
-#if !defined(OS_ANDROID)
// Auto-contribute is not supported for regions where bitFlyer is the external
// wallet provider. If AC is not supported, then always set the pref to false.
if (ledger_->ledger_client()->GetBooleanOption(option::kIsBitflyerRegion))
enabled = false;
-#endif
ledger_->database()->SaveEventLog(
kAutoContributeEnabled,
@@ -173,12 +171,10 @@ void State::SetAutoContributeEnabled(bool enabled) {
}
bool State::GetAutoContributeEnabled() {
-#if !defined(OS_ANDROID)
// Auto-contribute is not supported for regions where bitFlyer is the external
// wallet provider. If AC is not supported, then always report AC as disabled.
if (ledger_->ledger_client()->GetBooleanOption(option::kIsBitflyerRegion))
return false;
-#endif
return ledger_->ledger_client()->GetBooleanState(kAutoContributeEnabled);
}
diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/wallet/wallet.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/wallet/wallet.cc
index 832d18cb827..7c1dd1fc749 100644
--- a/vendor/bat-native-ledger/src/bat/ledger/internal/wallet/wallet.cc
+++ b/vendor/bat-native-ledger/src/bat/ledger/internal/wallet/wallet.cc
@@ -88,7 +88,7 @@ void Wallet::ExternalWalletAuthorization(
const std::string& wallet_type,
const base::flat_map& args,
ledger::ExternalWalletAuthorizationCallback callback) {
- ledger_->wallet()->CreateWalletIfNecessary(
+ CreateWalletIfNecessary(
[this, wallet_type, args, callback](const type::Result result) {
if (result != type::Result::WALLET_CREATED) {
BLOG(0, "Wallet couldn't be created");