Add AC UI on brave rewards onboarding
Update BRE panel behaviour
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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<String> 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<String> 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<Integer> 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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@android:color/transparent"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="#A78AFF"/>
|
||||
<corners android:radius="2dp"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_checked="false" android:drawable="@drawable/ac_radio_button_normal" />
|
||||
<item android:state_checked="true" android:drawable="@drawable/ac_radio_button_selected" />
|
||||
</selector>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="#F1F3F5"/>
|
||||
<corners android:radius="2dp"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_checked="false" android:color="@color/brave_rewards_modal_text_color"/>
|
||||
<item android:state_checked="true" android:color="@android:color/white"/>
|
||||
</selector>
|
||||
@@ -0,0 +1,218 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (c) 2020 The Brave Authors. All rights reserved.
|
||||
This Source Code Form is subject to the terms of the Mozilla Public
|
||||
License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp" >
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_gravity="center"
|
||||
android:gravity="center"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
android:layout_marginTop="24dp"
|
||||
android:text="@string/basic_settings"
|
||||
android:textColor="@color/brave_rewards_modal_title_color"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:gravity="center"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:textSize="14sp"
|
||||
android:text="@string/you_can_change_this_later"
|
||||
android:textColor="@color/brave_rewards_modal_theme_color"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:gravity="center"
|
||||
android:textSize="14sp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:text="@string/how_often_do_you_see_ads"
|
||||
android:textColor="@color/brave_rewards_modal_text_color"/>
|
||||
|
||||
<RadioGroup
|
||||
android:id="@+id/hour_radio_group"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:background="@drawable/ac_radio_group_bg"
|
||||
android:padding="2dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/hour_1_radio"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/ac_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:textColor="@drawable/ac_text_selector"
|
||||
android:button="@null"
|
||||
android:checked="true"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:text="1" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/hour_2_radio"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/ac_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:textColor="@drawable/ac_text_selector"
|
||||
android:button="@null"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:text="2" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/hour_3_radio"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/ac_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:textColor="@drawable/ac_text_selector"
|
||||
android:button="@null"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:text="3" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/hour_4_radio"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/ac_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:textColor="@drawable/ac_text_selector"
|
||||
android:button="@null"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:text="4" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/hour_5_radio"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/ac_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:textColor="@drawable/ac_text_selector"
|
||||
android:button="@null"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:text="5" />
|
||||
|
||||
</RadioGroup>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:gravity="center"
|
||||
android:textSize="14sp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:text="@string/how_much_support"
|
||||
android:textColor="@color/brave_rewards_modal_text_color"/>
|
||||
|
||||
<RadioGroup
|
||||
android:id="@+id/contribute_radio_group"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:background="@drawable/ac_radio_group_bg"
|
||||
android:padding="2dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/contribute_5_radio"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/ac_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:textColor="@drawable/ac_text_selector"
|
||||
android:button="@null"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:text="5 BAT" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/contribute_15_radio"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/ac_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:textColor="@drawable/ac_text_selector"
|
||||
android:button="@null"
|
||||
android:checked="true"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:text="15 BAT" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/contribute_25_radio"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/ac_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:textColor="@drawable/ac_text_selector"
|
||||
android:button="@null"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:text="25 BAT" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/contribute_50_radio"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/ac_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:textColor="@drawable/ac_text_selector"
|
||||
android:button="@null"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:text="50 BAT" />
|
||||
|
||||
</RadioGroup>
|
||||
|
||||
</LinearLayout>
|
||||
@@ -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">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title_view"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="24dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_gravity="center"
|
||||
android:gravity="center"
|
||||
android:layout_marginTop="24dp"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="@android:color/black"/>
|
||||
android:textColor="@color/brave_rewards_modal_title_color"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_view"
|
||||
@@ -31,13 +33,18 @@
|
||||
android:textSize="14sp"
|
||||
android:textColor="@color/brave_rewards_modal_text_color"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/image_view"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:gravity="center"
|
||||
android:padding="16dp"
|
||||
android:contentDescription="@null"/>
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="200dp"
|
||||
android:gravity="center">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/image_view"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:contentDescription="@null"/>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</LinearLayout>
|
||||
@@ -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"/>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
|
||||
@@ -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">
|
||||
|
||||
<FrameLayout
|
||||
@@ -24,7 +22,7 @@
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="16dp"
|
||||
android:padding="12dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
@@ -43,7 +41,7 @@
|
||||
android:id="@+id/brave_rewards_opt_in_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:layout_gravity="center"
|
||||
android:gravity="start|center_vertical"
|
||||
android:text="@string/brave_rewards_opt_in_text"
|
||||
@@ -64,7 +62,7 @@
|
||||
android:paddingBottom="8dp"
|
||||
android:paddingStart="32dp"
|
||||
android:paddingEnd="32dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:textColor="@color/brave_rewards_modal_theme_color"
|
||||
style="?android:attr/borderlessButtonStyle"/>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
|
||||
@@ -32,13 +32,16 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<include android:id="@+id/brave_rewards_opt_in_layout_id"
|
||||
layout="@layout/brave_rewards_opt_in_layout"/>
|
||||
<!-- <include android:id="@+id/brave_rewards_opt_in_layout_id"
|
||||
layout="@layout/brave_rewards_opt_in_layout"/> -->
|
||||
|
||||
<include
|
||||
android:id="@+id/header_layout"
|
||||
layout="@layout/brave_rewards_panel_header"/>
|
||||
|
||||
<include android:id="@+id/brave_rewards_opt_in_layout_id"
|
||||
layout="@layout/brave_rewards_opt_in_layout"/>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<!--Layout when we are on a valid webpage-->
|
||||
|
||||
@@ -3,16 +3,16 @@
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file. -->
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/header">
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="fill_parent"
|
||||
android:gravity="top|center"
|
||||
android:background="@drawable/header"
|
||||
tools:ignore="UselessParent">
|
||||
|
||||
<GridLayout
|
||||
@@ -215,4 +215,4 @@
|
||||
android:visibility="gone"/>
|
||||
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
</FrameLayout>
|
||||
|
||||
@@ -124,8 +124,10 @@
|
||||
<color name="white_alpha_50">#80FFFFFF</color>
|
||||
<color name="binance_divider_color">#C0C0C0</color>
|
||||
|
||||
<color name="brave_rewards_modal_title_color">#212529</color>
|
||||
<color name="brave_rewards_modal_text_color">#495057</color>
|
||||
<color name="brave_rewards_modal_theme_color">#4C54D2</color>
|
||||
<color name="brave_rewards_modal_close_button_color">#5E5F6C</color>
|
||||
<color name="brave_rewards_tos_color">#868E96</color>
|
||||
<color name="brave_rewards_opt_in_bg_color">#E7E9FE</color>
|
||||
<color name="brave_rewards_opt_in_text_color">#474958</color>
|
||||
|
||||
@@ -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<jobject>& obj,
|
||||
jdouble value) {
|
||||
if (brave_rewards_service_) {
|
||||
brave_rewards_service_->SetAutoContributionAmount(value);
|
||||
}
|
||||
}
|
||||
|
||||
bool BraveRewardsNativeWorker::IsAnonWallet(JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& jcaller) {
|
||||
if (brave_rewards_service_) {
|
||||
|
||||
@@ -144,6 +144,10 @@ class BraveRewardsNativeWorker : public brave_rewards::RewardsServiceObserver,
|
||||
const base::android::JavaParamRef<jobject>& obj,
|
||||
jint value);
|
||||
|
||||
void SetAutoContributionAmount(JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& obj,
|
||||
jdouble value);
|
||||
|
||||
void GetExternalWallet(
|
||||
JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& obj);
|
||||
|
||||
@@ -1457,11 +1457,14 @@ until they verify, or until 90 days have passed.
|
||||
Earn Tokens & Give Back
|
||||
</message>
|
||||
<message name="IDS_BRAVE_REWARDS_MODAL_TEXT" desc="Brave rewards modal text">
|
||||
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.
|
||||
</message>
|
||||
<message name="IDS_BRAVE_REWARDS_TOS_TEXT" desc="Brave rewards tos text">
|
||||
By proceeding, you agree to the <ph name="TERMS_OF_SERVICE">%1$s</ph> and <ph name="PRIVACY_POLICY">%2$s</ph>.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_POLICY" desc="Brave rewards tos text">
|
||||
Privacy Policy
|
||||
</message>
|
||||
<message name="IDS_TAKE_QUICK_TOUR" desc="Brave rewards quick tour text">
|
||||
Take a quick tour
|
||||
</message>
|
||||
@@ -1501,6 +1504,18 @@ until they verify, or until 90 days have passed.
|
||||
<message name="IDS_WHAT_CAN_YOU_DO_WITH_TOKENS_TEXT" desc="Brave rewards onboarding title">
|
||||
Tokens can be used beyond supporting creators. You can buy digital goods and giftcards with a cashback bonus.
|
||||
</message>
|
||||
<message name="IDS_BASIC_SETTINGS" desc="Brave rewards onboarding title">
|
||||
Lastly, let’s get you set up on the basic settings
|
||||
</message>
|
||||
<message name="IDS_YOU_CAN_CHANGE_THIS_LATER" desc="Brave rewards onboarding text">
|
||||
You can change this later.
|
||||
</message>
|
||||
<message name="IDS_HOW_OFTEN_DO_YOU_SEE_ADS" desc="Brave rewards onboarding text">
|
||||
How often do you want to see ads?\n(Ads per hour)
|
||||
</message>
|
||||
<message name="IDS_HOW_MUCH_SUPPORT" desc="Brave rewards onboarding text">
|
||||
How much support do you want to give to your favorite creators?\n(from your ads earnings)
|
||||
</message>
|
||||
<message name="IDS_YOU_ARE_DONE" desc="Brave rewards onboarding title">
|
||||
WOOOOHOOOOO!\nYou’re done.
|
||||
</message>
|
||||
|
||||
Reference in New Issue
Block a user