diff --git a/android/java/org/chromium/chrome/browser/BraveRewardsHelper.java b/android/java/org/chromium/chrome/browser/BraveRewardsHelper.java
index 236d81f0734..75bdf83db43 100644
--- a/android/java/org/chromium/chrome/browser/BraveRewardsHelper.java
+++ b/android/java/org/chromium/chrome/browser/BraveRewardsHelper.java
@@ -8,6 +8,7 @@ package org.chromium.chrome.browser;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.annotation.SuppressLint;
+import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.graphics.Bitmap;
@@ -16,10 +17,14 @@ import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
+import android.graphics.Typeface;
import android.os.Build;
import android.os.Handler;
import android.text.Html;
+import android.text.SpannableString;
import android.text.Spanned;
+import android.text.style.ClickableSpan;
+import android.text.style.StyleSpan;
import android.util.DisplayMetrics;
import android.view.TouchDelegate;
import android.view.View;
@@ -30,11 +35,13 @@ import org.chromium.base.ContextUtils;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.app.BraveActivity;
+import org.chromium.chrome.browser.customtabs.CustomTabActivity;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.components.browser_ui.widget.RoundedIconGenerator;
import org.chromium.components.favicon.IconType;
import org.chromium.components.favicon.LargeIconBridge;
+import org.chromium.ui.text.NoUnderlineClickableSpan;
import org.chromium.url.GURL;
import java.math.BigDecimal;
@@ -523,4 +530,38 @@ public class BraveRewardsHelper implements LargeIconBridge.LargeIconCallback {
numberFormat.setMinimumFractionDigits(3);
return numberFormat.format(amount);
}
+
+ public static SpannableString tosSpannableString(String text, int colorRes) {
+ Context context = ContextUtils.getApplicationContext();
+ Spanned textSpanned = spannedFromHtmlString(text);
+ SpannableString textSpannableString = new SpannableString(textSpanned.toString());
+
+ NoUnderlineClickableSpan termsOfServiceClickableSpan =
+ new NoUnderlineClickableSpan(context, colorRes, (textView) -> {
+ CustomTabActivity.showInfoPage(context, BraveActivity.BRAVE_TERMS_PAGE);
+ });
+
+ NoUnderlineClickableSpan privacyPolicyClickableSpan =
+ new NoUnderlineClickableSpan(context, colorRes, (textView) -> {
+ CustomTabActivity.showInfoPage(context, BraveActivity.BRAVE_PRIVACY_POLICY);
+ });
+
+ setSpan(context, text, textSpannableString, R.string.terms_of_service,
+ termsOfServiceClickableSpan); // terms of service
+ setSpan(context, text, textSpannableString, R.string.privacy_policy,
+ privacyPolicyClickableSpan); // privacy policy
+ return textSpannableString;
+ }
+
+ public static void setSpan(Context context, String text, SpannableString tosTextSS,
+ int stringId, ClickableSpan clickableSpan) {
+ String spanString = context.getResources().getString(stringId);
+ int spanLength = spanString.length();
+ int index = text.indexOf(spanString);
+ tosTextSS.setSpan(
+ clickableSpan, index, index + spanLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+ Typeface typeface = Typeface.create("sans-serif", Typeface.NORMAL);
+ tosTextSS.setSpan(new StyleSpan(typeface.getStyle()), index, index + spanLength,
+ Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+ }
}
diff --git a/android/java/org/chromium/chrome/browser/app/BraveActivity.java b/android/java/org/chromium/chrome/browser/app/BraveActivity.java
index f12b6bf63bc..b40fd1744af 100644
--- a/android/java/org/chromium/chrome/browser/app/BraveActivity.java
+++ b/android/java/org/chromium/chrome/browser/app/BraveActivity.java
@@ -217,7 +217,7 @@ public abstract class BraveActivity extends ChromeActivity
public static final String REWARDS_LEARN_MORE_URL = "https://brave.com/faq-rewards/#unclaimed-funds";
public static final String BRAVE_TERMS_PAGE =
"https://basicattentiontoken.org/user-terms-of-service/";
- public static final String BRAVE_PRIVACY_POLICY = "https://brave.com/privacy/#rewards";
+ public static final String BRAVE_PRIVACY_POLICY = "https://brave.com/privacy/browser/#rewards";
private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
private static final String PREF_CLEAR_ON_EXIT = "clear_on_exit";
public static final String OPEN_URL = "open_url";
diff --git a/android/java/org/chromium/chrome/browser/rewards/onboarding/RewardsOnboarding.java b/android/java/org/chromium/chrome/browser/rewards/onboarding/RewardsOnboarding.java
index 2abe63d7faf..65818f4303f 100644
--- a/android/java/org/chromium/chrome/browser/rewards/onboarding/RewardsOnboarding.java
+++ b/android/java/org/chromium/chrome/browser/rewards/onboarding/RewardsOnboarding.java
@@ -96,6 +96,15 @@ public class RewardsOnboarding implements BraveRewardsObserver {
View howDoseItWorkMainButton = mMainLayout.findViewById(R.id.how_does_it_work_main);
howDoseItWorkMainButton.setOnClickListener(v -> { showRewardsTour(); });
+ String termsOfServiceText = String.format(
+ mPopupView.getContext().getString(R.string.brave_rewards_onboarding_tos_text),
+ mPopupView.getContext().getString(R.string.terms_of_service),
+ mPopupView.getContext().getString(R.string.privacy_policy));
+ TextView tosText = mMainLayout.findViewById(R.id.tos_text);
+ tosText.setMovementMethod(LinkMovementMethod.getInstance());
+ tosText.setText(BraveRewardsHelper.tosSpannableString(
+ termsOfServiceText, R.color.brave_rewards_modal_theme_color));
+
// Location choose layout views
mLocationChooseLayout =
mPopupView.findViewById(R.id.rewards_onboarding_location_choose_layout_id);
diff --git a/android/java/org/chromium/chrome/browser/rewards/tipping/RewardsTippingPanelFragment.java b/android/java/org/chromium/chrome/browser/rewards/tipping/RewardsTippingPanelFragment.java
index e44c2966609..1efc7a83e93 100644
--- a/android/java/org/chromium/chrome/browser/rewards/tipping/RewardsTippingPanelFragment.java
+++ b/android/java/org/chromium/chrome/browser/rewards/tipping/RewardsTippingPanelFragment.java
@@ -10,7 +10,6 @@ import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Dialog;
import android.content.res.Resources;
-import android.graphics.Typeface;
import android.os.Bundle;
import android.text.Editable;
import android.text.InputType;
@@ -19,8 +18,6 @@ import android.text.Spanned;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.text.method.LinkMovementMethod;
-import android.text.style.ClickableSpan;
-import android.text.style.StyleSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
@@ -54,7 +51,6 @@ import org.chromium.chrome.browser.BraveRewardsNativeWorker;
import org.chromium.chrome.browser.BraveRewardsObserver;
import org.chromium.chrome.browser.BraveWalletProvider;
import org.chromium.chrome.browser.app.BraveActivity;
-import org.chromium.chrome.browser.customtabs.CustomTabActivity;
import org.chromium.chrome.browser.util.TabUtils;
import org.chromium.ui.text.NoUnderlineClickableSpan;
@@ -199,44 +195,11 @@ public class RewardsTippingPanelFragment
String termsOfServiceText = String.format(res.getString(R.string.brave_rewards_tos_text),
res.getString(R.string.terms_of_service), res.getString(R.string.privacy_policy));
- SpannableString spannableString = stringToSpannableString(termsOfServiceText);
+ SpannableString spannableString = BraveRewardsHelper.tosSpannableString(
+ termsOfServiceText, R.color.terms_of_service_text_color);
proceedTextView.setText(spannableString);
}
- private SpannableString stringToSpannableString(String text) {
- Spanned textSpanned = BraveRewardsHelper.spannedFromHtmlString(text);
- SpannableString textSpannableString = new SpannableString(textSpanned.toString());
-
- NoUnderlineClickableSpan termsOfServiceClickableSpan = new NoUnderlineClickableSpan(
- getActivity(), R.color.terms_of_service_text_color, (textView) -> {
- CustomTabActivity.showInfoPage(getActivity(), BraveActivity.BRAVE_TERMS_PAGE);
- });
-
- NoUnderlineClickableSpan privacyPolicyClickableSpan = new NoUnderlineClickableSpan(
- getActivity(), R.color.terms_of_service_text_color, (textView) -> {
- CustomTabActivity.showInfoPage(
- getActivity(), BraveActivity.BRAVE_PRIVACY_POLICY);
- });
-
- setSpan(text, textSpannableString, R.string.terms_of_service,
- termsOfServiceClickableSpan); // terms of service
- setSpan(text, textSpannableString, R.string.privacy_policy,
- privacyPolicyClickableSpan); // privacy policy
- return textSpannableString;
- }
-
- private void setSpan(
- String text, SpannableString tosTextSS, int stringId, ClickableSpan clickableSpan) {
- String spanString = getResources().getString(stringId);
- int spanLength = spanString.length();
- int index = text.indexOf(spanString);
- tosTextSS.setSpan(
- clickableSpan, index, index + spanLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
- Typeface typeface = Typeface.create("sans-serif", Typeface.NORMAL);
- tosTextSS.setSpan(new StyleSpan(typeface.getStyle()), index, index + spanLength,
- Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
- }
-
@Override
public void OnGetExternalWallet(String externalWallet) {
int walletStatus = WalletStatus.NOT_CONNECTED;
@@ -375,8 +338,8 @@ public class RewardsTippingPanelFragment
getActivity().finish();
});
- setSpan(text, textSpannableString, R.string.monthly_contributions,
- monthlyContributionClickableSpan);
+ BraveRewardsHelper.setSpan(getActivity(), text, textSpannableString,
+ R.string.monthly_contributions, monthlyContributionClickableSpan);
return textSpannableString;
}
diff --git a/android/java/res/layout/rewards_onboarding.xml b/android/java/res/layout/rewards_onboarding.xml
index f56b66eae3b..4a726cc3bee 100644
--- a/android/java/res/layout/rewards_onboarding.xml
+++ b/android/java/res/layout/rewards_onboarding.xml
@@ -86,11 +86,25 @@
android:textAllCaps="false"
android:textColor="@color/brave_rating_not_now_text_color"
android:textSize="13sp"
- app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/start_using_rewards_button" />
+
+
Check status
-
+
@@ -1812,6 +1812,9 @@ Are you sure you want to do this?
Privacy Policy
+
+ By enabling Rewards, you agree to the %1$s and %2$s.
+
Let’s take a quick tour