diff --git a/android/brave_java_resources.gni b/android/brave_java_resources.gni index 358f12c42af..6830b68f54c 100644 --- a/android/brave_java_resources.gni +++ b/android/brave_java_resources.gni @@ -614,6 +614,11 @@ brave_java_resources = [ "java/res/drawable/brave_stats_radio_button_selected.xml", "java/res/drawable/brave_stats_radio_button_selector.xml", "java/res/drawable/brave_stats_radio_group_bg.xml", + "java/res/drawable/ac_radio_button_normal.xml", + "java/res/drawable/ac_radio_button_selected.xml", + "java/res/drawable/ac_radio_button_selector.xml", + "java/res/drawable/ac_radio_group_bg.xml", + "java/res/drawable/ac_text_selector.xml", "java/res/drawable/brave_stats_rounded_bg.xml", "java/res/drawable/brave_stats_ui_empty_bg.xml", "java/res/drawable/brave_sync_btn.xml", @@ -701,6 +706,7 @@ brave_java_resources = [ "java/res/font/poppins_medium.ttf", "java/res/layout-land/brave_rewards_site_banner.xml", "java/res/layout-land/verify_wallet_activity.xml", + "java/res/layout/brave_rewards_onboarding_ac_layout.xml", "java/res/layout/brave_rewards_onboarding_item_layout.xml", "java/res/layout/brave_rewards_onboarding_layout.xml", "java/res/layout/brave_rewards_welcome_layout.xml", diff --git a/android/java/org/chromium/chrome/browser/BraveRewardsNativeWorker.java b/android/java/org/chromium/chrome/browser/BraveRewardsNativeWorker.java index 368ad3fb07f..84dc39e5f7d 100644 --- a/android/java/org/chromium/chrome/browser/BraveRewardsNativeWorker.java +++ b/android/java/org/chromium/chrome/browser/BraveRewardsNativeWorker.java @@ -9,6 +9,7 @@ package org.chromium.chrome.browser; import android.os.Handler; import androidx.annotation.Nullable; +import org.chromium.base.Log; import org.chromium.base.annotations.CalledByNative; import org.chromium.base.annotations.JNINamespace; import org.chromium.chrome.browser.BraveRewardsBalance; @@ -122,9 +123,11 @@ public class BraveRewardsNativeWorker { } public void OnNotifyFrontTabUrlChanged(int tabId, String url) { + + Log.e("NTP", "OnNotifyFrontTabUrlChanged"); boolean chromeUrl = url.startsWith(UrlConstants.CHROME_SCHEME); boolean newUrl = (frontTabUrl == null || !frontTabUrl.equals(url)); - if (rewardsStatus != REWARDS_ENABLED || chromeUrl) { + if (chromeUrl) { // Don't query 'GetPublisherInfo' and post response now. mHandler.post(new Runnable() { @Override @@ -133,6 +136,7 @@ public class BraveRewardsNativeWorker { } }); } else if (newUrl) { + Log.e("NTP", "GetPublisherInfo"); GetPublisherInfo(tabId, url); } @@ -414,6 +418,12 @@ public class BraveRewardsNativeWorker { } } + public void SetAutoContributionAmount(double amount) { + synchronized(lock) { + nativeSetAutoContributionAmount(mNativeBraveRewardsNativeWorker, amount); + } + } + @CalledByNative public void OnRefreshPublisher(int status, String publisherKey) { for (BraveRewardsObserver observer : mObservers) { @@ -443,6 +453,8 @@ public class BraveRewardsNativeWorker { @CalledByNative public void OnPublisherInfo(int tabId) { + + Log.e("NTP", "OnPublisherInfo"); @PublisherStatus int pubStatus = GetPublisherStatus(tabId); boolean verified = (pubStatus == BraveRewardsPublisher.CONNECTED || pubStatus == BraveRewardsPublisher.VERIFIED) ? true : false; @@ -609,4 +621,5 @@ public class BraveRewardsNativeWorker { private native void nativeRefreshPublisher(long nativeBraveRewardsNativeWorker, String publisherKey); private native void nativeGetRewardsParameters(long nativeBraveRewardsNativeWorker); private native void nativeSetAutoContributeEnabled(long nativeBraveRewardsNativeWorker, boolean isSetAutoContributeEnabled); + private native void nativeSetAutoContributionAmount(long nativeBraveRewardsNativeWorker, double amount); } diff --git a/android/java/org/chromium/chrome/browser/BraveRewardsOnboardingPagerAdapter.java b/android/java/org/chromium/chrome/browser/BraveRewardsOnboardingPagerAdapter.java index b3d2cf2dd3b..5b6a1fac066 100644 --- a/android/java/org/chromium/chrome/browser/BraveRewardsOnboardingPagerAdapter.java +++ b/android/java/org/chromium/chrome/browser/BraveRewardsOnboardingPagerAdapter.java @@ -12,15 +12,22 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.appcompat.widget.AppCompatImageView; +import android.widget.RadioButton; +import android.widget.RadioGroup; import org.chromium.base.ContextUtils; import org.chromium.chrome.R; +import org.chromium.chrome.browser.BraveRewardsNativeWorker; import java.util.Arrays; import java.util.List; public class BraveRewardsOnboardingPagerAdapter extends PagerAdapter { + private static final int WITH_7_OPTIONS = 7; + private static final int WITH_8_OPTIONS = 8; + private boolean shouldShowMoreOptions; + private static final List mHeaders = Arrays.asList( ContextUtils.getApplicationContext().getResources().getString(R.string.welcome_to_brave_rewards), ContextUtils.getApplicationContext().getResources().getString(R.string.where_do_ads_show_up), @@ -28,6 +35,7 @@ public class BraveRewardsOnboardingPagerAdapter extends PagerAdapter { ContextUtils.getApplicationContext().getResources().getString(R.string.giving_back_made_effortless), ContextUtils.getApplicationContext().getResources().getString(R.string.say_thank_you_with_tips), ContextUtils.getApplicationContext().getResources().getString(R.string.what_can_you_do_with_tokens), + ContextUtils.getApplicationContext().getResources().getString(R.string.you_are_done), ContextUtils.getApplicationContext().getResources().getString(R.string.you_are_done) ); private static final List mTexts = Arrays.asList( @@ -37,6 +45,7 @@ public class BraveRewardsOnboardingPagerAdapter extends PagerAdapter { ContextUtils.getApplicationContext().getResources().getString(R.string.giving_back_made_effortless_text), ContextUtils.getApplicationContext().getResources().getString(R.string.say_thank_you_with_tips_text), ContextUtils.getApplicationContext().getResources().getString(R.string.what_can_you_do_with_tokens_text), + ContextUtils.getApplicationContext().getResources().getString(R.string.you_are_done_text), ContextUtils.getApplicationContext().getResources().getString(R.string.you_are_done_text) ); private static final List mImages = Arrays.asList( @@ -46,18 +55,80 @@ public class BraveRewardsOnboardingPagerAdapter extends PagerAdapter { R.drawable.ic_onboarding_graphic_auto_contribute, R.drawable.ic_onboarding_graphic_tipping, R.drawable.ic_onboarding_graphic_cashback, + R.drawable.ic_onboarding_graphic_completed, R.drawable.ic_onboarding_graphic_completed ); + public void setOnboardingType(boolean shouldShowMoreOptions) { + this.shouldShowMoreOptions = shouldShowMoreOptions; + } + @Override public Object instantiateItem(ViewGroup collection, int position) { - View view = LayoutInflater.from(ContextUtils.getApplicationContext()).inflate(R.layout.brave_rewards_onboarding_item_layout, null); - TextView titleView = view.findViewById(R.id.title_view); - titleView.setText(mHeaders.get(position)); - TextView textView = view.findViewById(R.id.text_view); - textView.setText(mTexts.get(position)); - AppCompatImageView imageView = view.findViewById(R.id.image_view); - imageView.setImageResource(mImages.get(position)); + View view; + if (shouldShowMoreOptions + && position == (WITH_8_OPTIONS-2)) { + view = LayoutInflater.from(ContextUtils.getApplicationContext()).inflate(R.layout.brave_rewards_onboarding_ac_layout, null); + RadioGroup hourRadioGroup = view.findViewById(R.id.hour_radio_group); + int adsPerHour = BraveRewardsNativeWorker.getInstance().GetAdsPerHour(); + if (adsPerHour == 1) { + ((RadioButton)view.findViewById(R.id.hour_1_radio)).setChecked(true); + } else if (adsPerHour == 2) { + ((RadioButton)view.findViewById(R.id.hour_2_radio)).setChecked(true); + } else if (adsPerHour == 3) { + ((RadioButton)view.findViewById(R.id.hour_3_radio)).setChecked(true); + } else if (adsPerHour == 4) { + ((RadioButton)view.findViewById(R.id.hour_4_radio)).setChecked(true); + } else if (adsPerHour == 5) { + ((RadioButton)view.findViewById(R.id.hour_5_radio)).setChecked(true); + } + hourRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(RadioGroup radioGroup, int checkedId) { + int hour = adsPerHour; + if (checkedId == R.id.hour_1_radio) { + hour = 1; + } else if (checkedId == R.id.hour_2_radio) { + hour = 2; + } else if (checkedId == R.id.hour_3_radio) { + hour = 3; + } else if (checkedId == R.id.hour_4_radio) { + hour = 4; + } else if (checkedId == R.id.hour_5_radio) { + hour = 5; + } + BraveRewardsNativeWorker.getInstance().SetAdsPerHour(hour); + } + }); + + RadioGroup contributeRadioGroup = view.findViewById(R.id.contribute_radio_group); + BraveRewardsNativeWorker.getInstance().SetAutoContributionAmount(15); + ((RadioButton)view.findViewById(R.id.contribute_15_radio)).setChecked(true); + contributeRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(RadioGroup radioGroup, int checkedId) { + double contribute = 15; + if (checkedId == R.id.contribute_5_radio) { + contribute = 5; + } else if (checkedId == R.id.contribute_15_radio) { + contribute = 15; + } else if (checkedId == R.id.contribute_25_radio) { + contribute = 25; + } else if (checkedId == R.id.contribute_50_radio) { + contribute = 50; + } + BraveRewardsNativeWorker.getInstance().SetAutoContributionAmount(contribute); + } + }); + } else { + view = LayoutInflater.from(ContextUtils.getApplicationContext()).inflate(R.layout.brave_rewards_onboarding_item_layout, null); + TextView titleView = view.findViewById(R.id.title_view); + titleView.setText(mHeaders.get(position)); + TextView textView = view.findViewById(R.id.text_view); + textView.setText(mTexts.get(position)); + AppCompatImageView imageView = view.findViewById(R.id.image_view); + imageView.setImageResource(mImages.get(position)); + } collection.addView(view); return view; } @@ -69,7 +140,7 @@ public class BraveRewardsOnboardingPagerAdapter extends PagerAdapter { @Override public int getCount() { - return mHeaders.size(); + return shouldShowMoreOptions ? WITH_8_OPTIONS : WITH_7_OPTIONS; } @Override diff --git a/android/java/org/chromium/chrome/browser/BraveRewardsPanelPopup.java b/android/java/org/chromium/chrome/browser/BraveRewardsPanelPopup.java index 49a0c78f050..135517e7d14 100644 --- a/android/java/org/chromium/chrome/browser/BraveRewardsPanelPopup.java +++ b/android/java/org/chromium/chrome/browser/BraveRewardsPanelPopup.java @@ -92,7 +92,7 @@ import java.util.Date; public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveRewardsHelper.LargeIconReadyCallback { private static final String BRAVE_TERMS_PAGE = "https://basicattentiontoken.org/user-terms-of-service/"; - private static final String BRAVE_PRIVACY_PROTECTION = "https://brave.com/privacy/#rewards"; + private static final String BRAVE_PRIVACY_POLICY = "https://brave.com/privacy/#rewards"; private static final String TAG = "BraveRewards"; private static final int UPDATE_BALANCE_INTERVAL = 60000; // In milliseconds private static final int PUBLISHER_INFO_FETCH_RETRY = 3 * 1000; // In milliseconds @@ -510,7 +510,7 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward } })); - String tosText = String.format(mActivity.getResources().getString(R.string.brave_rewards_tos_text), mActivity.getResources().getString(R.string.terms_of_service), mActivity.getResources().getString(R.string.privacy_protection)); + String tosText = String.format(mActivity.getResources().getString(R.string.brave_rewards_tos_text), mActivity.getResources().getString(R.string.terms_of_service), mActivity.getResources().getString(R.string.privacy_policy)); int termsOfServiceIndex = tosText.indexOf(mActivity.getResources().getString(R.string.terms_of_service)); Spanned tosTextSpanned = BraveRewardsHelper.spannedFromHtmlString(tosText); SpannableString tosTextSS = new SpannableString(tosTextSpanned.toString()); @@ -533,7 +533,7 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward ClickableSpan privacyProtectionClickableSpan = new ClickableSpan() { @Override public void onClick(@NonNull View textView) { - CustomTabActivity.showInfoPage(mActivity, BRAVE_PRIVACY_PROTECTION); + CustomTabActivity.showInfoPage(mActivity, BRAVE_PRIVACY_POLICY); } @Override public void updateDrawState(@NonNull TextPaint ds) { @@ -542,9 +542,9 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward } }; - int privacyPolicyIndex = tosText.indexOf(mActivity.getResources().getString(R.string.privacy_protection)); - tosTextSS.setSpan(privacyProtectionClickableSpan, privacyPolicyIndex, privacyPolicyIndex + mActivity.getResources().getString(R.string.privacy_protection).length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - tosTextSS.setSpan(new ForegroundColorSpan(mActivity.getResources().getColor(R.color.brave_rewards_modal_theme_color)), privacyPolicyIndex, privacyPolicyIndex + mActivity.getResources().getString(R.string.privacy_protection).length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + int privacyPolicyIndex = tosText.indexOf(mActivity.getResources().getString(R.string.privacy_policy)); + tosTextSS.setSpan(privacyProtectionClickableSpan, privacyPolicyIndex, privacyPolicyIndex + mActivity.getResources().getString(R.string.privacy_policy).length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + tosTextSS.setSpan(new ForegroundColorSpan(mActivity.getResources().getColor(R.color.brave_rewards_modal_theme_color)), privacyPolicyIndex, privacyPolicyIndex + mActivity.getResources().getString(R.string.privacy_policy).length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); TextView tosAndPpText = braveRewardsOptInView.findViewById(R.id.tos_pp_text); tosAndPpText.setMovementMethod(LinkMovementMethod.getInstance()); @@ -564,7 +564,7 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward braveRewardsOnboardingModalView = root.findViewById(R.id.brave_rewards_onboarding_modal_id); braveRewardsOnboardingModalView.setVisibility(View.VISIBLE); - String tosText = String.format(mActivity.getResources().getString(R.string.brave_rewards_tos_text), mActivity.getResources().getString(R.string.terms_of_service), mActivity.getResources().getString(R.string.privacy_protection)); + String tosText = String.format(mActivity.getResources().getString(R.string.brave_rewards_tos_text), mActivity.getResources().getString(R.string.terms_of_service), mActivity.getResources().getString(R.string.privacy_policy)); int termsOfServiceIndex = tosText.indexOf(mActivity.getResources().getString(R.string.terms_of_service)); Spanned tosTextSpanned = BraveRewardsHelper.spannedFromHtmlString(tosText); SpannableString tosTextSS = new SpannableString(tosTextSpanned.toString()); @@ -587,7 +587,7 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward ClickableSpan privacyProtectionClickableSpan = new ClickableSpan() { @Override public void onClick(@NonNull View textView) { - CustomTabActivity.showInfoPage(mActivity, BRAVE_PRIVACY_PROTECTION); + CustomTabActivity.showInfoPage(mActivity, BRAVE_PRIVACY_POLICY); } @Override public void updateDrawState(@NonNull TextPaint ds) { @@ -596,9 +596,9 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward } }; - int privacyPolicyIndex = tosText.indexOf(mActivity.getResources().getString(R.string.privacy_protection)); - tosTextSS.setSpan(privacyProtectionClickableSpan, privacyPolicyIndex, privacyPolicyIndex + mActivity.getResources().getString(R.string.privacy_protection).length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - tosTextSS.setSpan(new ForegroundColorSpan(mActivity.getResources().getColor(R.color.brave_rewards_modal_theme_color)), privacyPolicyIndex, privacyPolicyIndex + mActivity.getResources().getString(R.string.privacy_protection).length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + int privacyPolicyIndex = tosText.indexOf(mActivity.getResources().getString(R.string.privacy_policy)); + tosTextSS.setSpan(privacyProtectionClickableSpan, privacyPolicyIndex, privacyPolicyIndex + mActivity.getResources().getString(R.string.privacy_policy).length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + tosTextSS.setSpan(new ForegroundColorSpan(mActivity.getResources().getColor(R.color.brave_rewards_modal_theme_color)), privacyPolicyIndex, privacyPolicyIndex + mActivity.getResources().getString(R.string.privacy_policy).length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); TextView tosAndPpText = braveRewardsOnboardingModalView.findViewById(R.id.tos_pp_text); tosAndPpText.setMovementMethod(LinkMovementMethod.getInstance()); @@ -619,6 +619,7 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward braveRewardsOnboardingModalView.setVisibility(View.GONE); BraveAdsNativeHelper.nativeSetAdsEnabled(Profile.getLastUsedRegularProfile()); BraveRewardsNativeWorker.getInstance().SetAutoContributeEnabled(true); + showBraveRewardsOnboarding(root); } })); AppCompatImageView modalCloseButton = braveRewardsOnboardingModalView.findViewById(R.id.modal_close); @@ -672,6 +673,7 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward public void onPageScrollStateChanged(int state) {} }); braveRewardsOnboardingPagerAdapter = new BraveRewardsOnboardingPagerAdapter(); + braveRewardsOnboardingPagerAdapter.setOnboardingType(BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile())); braveRewardsViewPager.setAdapter(braveRewardsOnboardingPagerAdapter); TabLayout braveRewardsTabLayout = braveRewardsOnboardingView.findViewById(R.id.brave_rewards_tab_layout); braveRewardsTabLayout.setupWithViewPager(braveRewardsViewPager, true); @@ -726,6 +728,9 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward if (braveRewardsOnboardingView != null) { braveRewardsOnboardingView.setVisibility(View.GONE); } + if (BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile())) { + showBraveRewardsWelcomeLayout(root); + } } else { braveRewardsViewPager.setCurrentItem(braveRewardsViewPager.getCurrentItem() + 1); } @@ -815,14 +820,17 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward if (root!= null && PackageUtils.isFirstInstall(mActivity)) { if (BraveRewardsHelper.shouldShowBraveRewardsOnboarding()) { showBraveRewardsOnboarding(root); - BraveRewardsHelper.setShowBraveRewardsOnboarding(true); - } else if ((BraveRewardsHelper.getBraveRewardsOpenCount() == 0 || BraveRewardsHelper.getBraveRewardsOpenCount() == 1) + BraveRewardsHelper.setShowBraveRewardsOnboarding(false); + } else if ((BraveRewardsHelper.getBraveRewardsOpenCount() == 0) && !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile())) { showBraveRewardsOnboardingModal(root); BraveRewardsHelper.updateBraveRewardsOpenCount(); - } else if (BraveRewardsHelper.getBraveRewardsOpenCount() == 1 - && BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile())) { - showBraveRewardsWelcomeLayout(root); + } else if (BraveRewardsHelper.getBraveRewardsOpenCount() == 1) { + if (BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile())) { + showBraveRewardsWelcomeLayout(root); + } else { + showBraveRewardsOptInLayout(root); + } BraveRewardsHelper.updateBraveRewardsOpenCount(); } } diff --git a/android/java/res/drawable/ac_radio_button_normal.xml b/android/java/res/drawable/ac_radio_button_normal.xml new file mode 100644 index 00000000000..f0fe2ea2ec6 --- /dev/null +++ b/android/java/res/drawable/ac_radio_button_normal.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/android/java/res/drawable/ac_radio_button_selected.xml b/android/java/res/drawable/ac_radio_button_selected.xml new file mode 100644 index 00000000000..d604698059e --- /dev/null +++ b/android/java/res/drawable/ac_radio_button_selected.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/java/res/drawable/ac_radio_button_selector.xml b/android/java/res/drawable/ac_radio_button_selector.xml new file mode 100644 index 00000000000..525b732409c --- /dev/null +++ b/android/java/res/drawable/ac_radio_button_selector.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/java/res/drawable/ac_radio_group_bg.xml b/android/java/res/drawable/ac_radio_group_bg.xml new file mode 100644 index 00000000000..e508dd75d54 --- /dev/null +++ b/android/java/res/drawable/ac_radio_group_bg.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/java/res/drawable/ac_text_selector.xml b/android/java/res/drawable/ac_text_selector.xml new file mode 100644 index 00000000000..d5b0b4d147b --- /dev/null +++ b/android/java/res/drawable/ac_text_selector.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/java/res/layout/brave_rewards_onboarding_ac_layout.xml b/android/java/res/layout/brave_rewards_onboarding_ac_layout.xml new file mode 100644 index 00000000000..99718cf411c --- /dev/null +++ b/android/java/res/layout/brave_rewards_onboarding_ac_layout.xml @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/java/res/layout/brave_rewards_onboarding_item_layout.xml b/android/java/res/layout/brave_rewards_onboarding_item_layout.xml index d5b5b4a4453..eed616b315c 100644 --- a/android/java/res/layout/brave_rewards_onboarding_item_layout.xml +++ b/android/java/res/layout/brave_rewards_onboarding_item_layout.xml @@ -8,19 +8,21 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" - android:layout_height="wrap_content" > + android:layout_height="wrap_content" + android:layout_marginStart="16dp" + android:layout_marginEnd="16dp"> + android:textColor="@color/brave_rewards_modal_title_color"/> - + + + + + \ No newline at end of file diff --git a/android/java/res/layout/brave_rewards_onboarding_layout.xml b/android/java/res/layout/brave_rewards_onboarding_layout.xml index 6c9117c09d3..30e95f135ce 100644 --- a/android/java/res/layout/brave_rewards_onboarding_layout.xml +++ b/android/java/res/layout/brave_rewards_onboarding_layout.xml @@ -131,7 +131,7 @@ android:layout_height="wrap_content" android:contentDescription="@null" android:layout_gravity="end|top" - android:tint="@color/onboarding_text_color" + android:tint="@color/brave_rewards_modal_close_button_color" android:src="@drawable/btn_close"/> diff --git a/android/java/res/layout/brave_rewards_onboarding_modal.xml b/android/java/res/layout/brave_rewards_onboarding_modal.xml index 8931239a78e..279614b8eeb 100644 --- a/android/java/res/layout/brave_rewards_onboarding_modal.xml +++ b/android/java/res/layout/brave_rewards_onboarding_modal.xml @@ -112,7 +112,7 @@ android:layout_height="wrap_content" android:contentDescription="@null" android:layout_gravity="end|top" - android:tint="@color/onboarding_text_color" + android:tint="@color/brave_rewards_modal_close_button_color" android:padding="16dp" android:src="@drawable/btn_close"/> diff --git a/android/java/res/layout/brave_rewards_opt_in_layout.xml b/android/java/res/layout/brave_rewards_opt_in_layout.xml index 21f6e9ba93a..babad2f5528 100644 --- a/android/java/res/layout/brave_rewards_opt_in_layout.xml +++ b/android/java/res/layout/brave_rewards_opt_in_layout.xml @@ -13,8 +13,6 @@ android:gravity="center" app:cardBackgroundColor="@color/brave_rewards_opt_in_bg_color" android:visibility="gone" - app:cardElevation="10dp" - app:cardUseCompatPadding="true" app:cardCornerRadius="8dp"> @@ -74,7 +72,6 @@ android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:gravity="center" - android:layout_marginBottom="16dp" android:textSize="12sp" android:textStyle="bold" android:textColor="@color/brave_rewards_tos_color"/> @@ -87,7 +84,7 @@ android:layout_height="wrap_content" android:contentDescription="@null" android:layout_gravity="end|top" - android:tint="@color/onboarding_text_color" + android:tint="@color/brave_rewards_modal_close_button_color" android:padding="16dp" android:src="@drawable/btn_close"/> diff --git a/android/java/res/layout/brave_rewards_panel.xml b/android/java/res/layout/brave_rewards_panel.xml index fd0cf957028..3c7d27acf16 100644 --- a/android/java/res/layout/brave_rewards_panel.xml +++ b/android/java/res/layout/brave_rewards_panel.xml @@ -32,13 +32,16 @@ android:layout_width="wrap_content" android:layout_height="wrap_content"> - + + + diff --git a/android/java/res/layout/brave_rewards_panel_header.xml b/android/java/res/layout/brave_rewards_panel_header.xml index ddefb2ddb0b..2795e00f77f 100644 --- a/android/java/res/layout/brave_rewards_panel_header.xml +++ b/android/java/res/layout/brave_rewards_panel_header.xml @@ -3,16 +3,16 @@ Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> - + android:layout_height="wrap_content"> - + diff --git a/android/java/res/values/brave_colors.xml b/android/java/res/values/brave_colors.xml index 71f85359e35..570476e5495 100644 --- a/android/java/res/values/brave_colors.xml +++ b/android/java/res/values/brave_colors.xml @@ -124,8 +124,10 @@ #80FFFFFF #C0C0C0 + #212529 #495057 #4C54D2 + #5E5F6C #868E96 #E7E9FE #474958 diff --git a/browser/brave_rewards/android/brave_rewards_native_worker.cc b/browser/brave_rewards/android/brave_rewards_native_worker.cc index 35f9ee4a978..be70e48ca36 100644 --- a/browser/brave_rewards/android/brave_rewards_native_worker.cc +++ b/browser/brave_rewards/android/brave_rewards_native_worker.cc @@ -26,6 +26,7 @@ #include "brave/build/android/jni_headers/BraveRewardsNativeWorker_jni.h" #define DEFAULT_ADS_PER_HOUR 2 +#define DEFAULT_AUTO_CONTRIBUTION_AMOUNT 10 namespace chrome { namespace android { @@ -612,6 +613,15 @@ void BraveRewardsNativeWorker::SetAdsPerHour( ads_service_->SetAdsPerHour(value); } +void BraveRewardsNativeWorker::SetAutoContributionAmount( + JNIEnv* env, + const base::android::JavaParamRef& obj, + jdouble value) { + if (brave_rewards_service_) { + brave_rewards_service_->SetAutoContributionAmount(value); + } +} + bool BraveRewardsNativeWorker::IsAnonWallet(JNIEnv* env, const base::android::JavaParamRef& jcaller) { if (brave_rewards_service_) { diff --git a/browser/brave_rewards/android/brave_rewards_native_worker.h b/browser/brave_rewards/android/brave_rewards_native_worker.h index 65ae2b00f65..907d4d3b262 100644 --- a/browser/brave_rewards/android/brave_rewards_native_worker.h +++ b/browser/brave_rewards/android/brave_rewards_native_worker.h @@ -144,6 +144,10 @@ class BraveRewardsNativeWorker : public brave_rewards::RewardsServiceObserver, const base::android::JavaParamRef& obj, jint value); + void SetAutoContributionAmount(JNIEnv* env, + const base::android::JavaParamRef& obj, + jdouble value); + void GetExternalWallet( JNIEnv* env, const base::android::JavaParamRef& obj); diff --git a/browser/ui/android/strings/android_brave_strings.grd b/browser/ui/android/strings/android_brave_strings.grd index c63b1126f69..12ac2777951 100644 --- a/browser/ui/android/strings/android_brave_strings.grd +++ b/browser/ui/android/strings/android_brave_strings.grd @@ -1457,11 +1457,14 @@ until they verify, or until 90 days have passed. Earn Tokens & Give Back - Earn tokens by viewing privacy-respecting ads and support your favorite sites and content creators automatically. + Earn tokens by viewing Brave Private Ads and support content creators automatically. By proceeding, you agree to the %1$s and %2$s. + + Privacy Policy + Take a quick tour @@ -1501,6 +1504,18 @@ until they verify, or until 90 days have passed. Tokens can be used beyond supporting creators. You can buy digital goods and giftcards with a cashback bonus. + + Lastly, let’s get you set up on the basic settings + + + You can change this later. + + + How often do you want to see ads?\n(Ads per hour) + + + How much support do you want to give to your favorite creators?\n(from your ads earnings) + WOOOOHOOOOO!\nYou’re done.