Update Rewards onboarding UI
Update Rewards onboarding behaviour Update StartProcess in Rewards panel
This commit is contained in:
@@ -6,6 +6,7 @@ package org.chromium.chrome.browser;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorListenerAdapter;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
@@ -20,15 +21,16 @@ import android.text.Spanned;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.TouchDelegate;
|
||||
import android.view.View;
|
||||
import android.content.SharedPreferences;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.annotations.CalledByNative;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.chrome.browser.ChromeTabbedActivity;
|
||||
import org.chromium.chrome.browser.app.BraveActivity;
|
||||
import org.chromium.chrome.browser.preferences.BravePreferenceKeys;
|
||||
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.tab.Tab;
|
||||
import org.chromium.chrome.browser.tab.TabImpl;
|
||||
@@ -42,8 +44,14 @@ import java.util.Calendar;
|
||||
import java.util.Locale;
|
||||
|
||||
public class BraveRewardsHelper implements LargeIconBridge.LargeIconCallback{
|
||||
private static final String PREF_BRAVE_REWARDS_OPEN_COUNT = "brave_rewards_open_count";
|
||||
private static final String PREF_SHOW_BRAVE_REWARDS_ONBOARDING = "show_brave_rewards_onboarding";
|
||||
private static final String PREF_BRAVE_REWARDS_OPEN_COUNT = "brave_rewards_app_open_count";
|
||||
private static final String PREF_SHOW_BRAVE_REWARDS_ONBOARDING_MODAL_ONCE =
|
||||
"show_brave_rewards_onboarding_modal_once";
|
||||
private static final String PREF_SHOW_BRAVE_REWARDS_ONBOARDING_ONCE =
|
||||
"show_brave_rewards_onboarding_once";
|
||||
private static final String PREF_SHOW_ONBOARDING_MINI_MODAL = "show_onboarding_mini_modal";
|
||||
private static final String PREF_SHOW_REWARDS_SETTINGS_ONBOARDING_MODAL =
|
||||
"show_REWARDS_SETTINGS_ONBOARDING_MODAL";
|
||||
private static final int FAVICON_CIRCLE_MEASUREMENTS = 70; // dp
|
||||
private static final int FAVICON_TEXT_SIZE = 50; // dp
|
||||
private static final int FAVICON_FETCH_INTERVAL = 1000; // In milliseconds
|
||||
@@ -62,23 +70,62 @@ public class BraveRewardsHelper implements LargeIconBridge.LargeIconCallback{
|
||||
private static final float DP_PER_INCH_MDPI = 160f;
|
||||
private Tab mTab;
|
||||
|
||||
public static int getBraveRewardsOpenCount() {
|
||||
public static int getBraveRewardsAppOpenCount() {
|
||||
return ContextUtils.getAppSharedPreferences().getInt(PREF_BRAVE_REWARDS_OPEN_COUNT, 0);
|
||||
}
|
||||
|
||||
public static void updateBraveRewardsOpenCount() {
|
||||
public static void updateBraveRewardsAppOpenCount() {
|
||||
SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
|
||||
sharedPreferencesEditor.putInt(PREF_BRAVE_REWARDS_OPEN_COUNT, getBraveRewardsOpenCount() + 1);
|
||||
sharedPreferencesEditor.putInt(PREF_BRAVE_REWARDS_OPEN_COUNT,
|
||||
SharedPreferencesManager.getInstance().readInt(
|
||||
BravePreferenceKeys.BRAVE_APP_OPEN_COUNT));
|
||||
sharedPreferencesEditor.apply();
|
||||
}
|
||||
|
||||
public static boolean shouldShowBraveRewardsOnboarding() {
|
||||
return ContextUtils.getAppSharedPreferences().getBoolean(PREF_SHOW_BRAVE_REWARDS_ONBOARDING, false);
|
||||
public static boolean shouldShowBraveRewardsSettingsOnboardingModal() {
|
||||
return ContextUtils.getAppSharedPreferences().getBoolean(
|
||||
PREF_SHOW_REWARDS_SETTINGS_ONBOARDING_MODAL, true);
|
||||
}
|
||||
|
||||
public static void setShowBraveRewardsOnboarding(boolean enabled) {
|
||||
public static void setShowBraveRewardsSettingsOnboardingModal(boolean enabled) {
|
||||
SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
|
||||
sharedPreferencesEditor.putBoolean(PREF_SHOW_BRAVE_REWARDS_ONBOARDING, enabled);
|
||||
sharedPreferencesEditor.putBoolean(PREF_SHOW_REWARDS_SETTINGS_ONBOARDING_MODAL, enabled);
|
||||
sharedPreferencesEditor.apply();
|
||||
}
|
||||
|
||||
public static boolean shouldShowMiniOnboardingModal() {
|
||||
return ContextUtils.getAppSharedPreferences().getBoolean(
|
||||
PREF_SHOW_ONBOARDING_MINI_MODAL, true);
|
||||
}
|
||||
|
||||
public static void setShowMiniOnboardingModal(boolean enabled) {
|
||||
SharedPreferences.Editor sharedPreferencesEditor =
|
||||
ContextUtils.getAppSharedPreferences().edit();
|
||||
sharedPreferencesEditor.putBoolean(PREF_SHOW_ONBOARDING_MINI_MODAL, enabled);
|
||||
sharedPreferencesEditor.apply();
|
||||
}
|
||||
|
||||
public static boolean shouldShowBraveRewardsOnboardingModalOnce() {
|
||||
return ContextUtils.getAppSharedPreferences().getBoolean(
|
||||
PREF_SHOW_BRAVE_REWARDS_ONBOARDING_MODAL_ONCE, false);
|
||||
}
|
||||
|
||||
public static void setShowBraveRewardsOnboardingModalOnce(boolean enabled) {
|
||||
SharedPreferences.Editor sharedPreferencesEditor =
|
||||
ContextUtils.getAppSharedPreferences().edit();
|
||||
sharedPreferencesEditor.putBoolean(PREF_SHOW_BRAVE_REWARDS_ONBOARDING_MODAL_ONCE, enabled);
|
||||
sharedPreferencesEditor.apply();
|
||||
}
|
||||
|
||||
public static boolean shouldShowBraveRewardsOnboardingOnce() {
|
||||
return ContextUtils.getAppSharedPreferences().getBoolean(
|
||||
PREF_SHOW_BRAVE_REWARDS_ONBOARDING_ONCE, false);
|
||||
}
|
||||
|
||||
public static void setShowBraveRewardsOnboardingOnce(boolean enabled) {
|
||||
SharedPreferences.Editor sharedPreferencesEditor =
|
||||
ContextUtils.getAppSharedPreferences().edit();
|
||||
sharedPreferencesEditor.putBoolean(PREF_SHOW_BRAVE_REWARDS_ONBOARDING_ONCE, enabled);
|
||||
sharedPreferencesEditor.apply();
|
||||
}
|
||||
|
||||
|
||||
@@ -422,11 +422,18 @@ public class BraveRewardsNativeWorker {
|
||||
}
|
||||
|
||||
public void StartProcess() {
|
||||
synchronized(lock) {
|
||||
synchronized (lock) {
|
||||
nativeStartProcess(mNativeBraveRewardsNativeWorker);
|
||||
}
|
||||
}
|
||||
|
||||
@CalledByNative
|
||||
public void OnStartProcess() {
|
||||
for (BraveRewardsObserver observer : mObservers) {
|
||||
observer.OnStartProcess();
|
||||
}
|
||||
}
|
||||
|
||||
@CalledByNative
|
||||
public void OnRefreshPublisher(int status, String publisherKey) {
|
||||
for (BraveRewardsObserver observer : mObservers) {
|
||||
|
||||
@@ -30,4 +30,5 @@ public interface BraveRewardsObserver {
|
||||
default public void OnRecoverWallet(int errorCode) {};
|
||||
default public void OnRefreshPublisher(int status, String publisherKey){};
|
||||
default public void OnOneTimeTip(){};
|
||||
default public void OnStartProcess(){};
|
||||
}
|
||||
|
||||
@@ -6,18 +6,21 @@
|
||||
package org.chromium.chrome.browser;
|
||||
|
||||
import android.content.Context;
|
||||
import androidx.viewpager.widget.PagerAdapter;
|
||||
import android.view.LayoutInflater;
|
||||
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 android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.widget.AppCompatImageView;
|
||||
import androidx.viewpager.widget.PagerAdapter;
|
||||
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.BraveAdsNativeHelper;
|
||||
import org.chromium.chrome.browser.BraveRewardsNativeWorker;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -108,7 +111,10 @@ public class BraveRewardsOnboardingPagerAdapter extends PagerAdapter {
|
||||
} else if (checkedId == R.id.hour_5_radio) {
|
||||
hour = 5;
|
||||
}
|
||||
BraveRewardsNativeWorker.getInstance().SetAdsPerHour(hour);
|
||||
if (BraveAdsNativeHelper.nativeIsBraveAdsEnabled(
|
||||
Profile.getLastUsedRegularProfile())) {
|
||||
BraveRewardsNativeWorker.getInstance().SetAdsPerHour(hour);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -128,7 +134,10 @@ public class BraveRewardsOnboardingPagerAdapter extends PagerAdapter {
|
||||
} else if (checkedId == R.id.contribute_50_radio) {
|
||||
contribute = 50;
|
||||
}
|
||||
BraveRewardsNativeWorker.getInstance().SetAutoContributionAmount(contribute);
|
||||
if (BraveRewardsNativeWorker.getInstance().IsAutoContributeEnabled()) {
|
||||
BraveRewardsNativeWorker.getInstance().SetAutoContributionAmount(
|
||||
contribute);
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
|
||||
@@ -7,17 +7,23 @@
|
||||
package org.chromium.chrome.browser;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.drawable.AnimationDrawable;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.os.Handler;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.text.Html;
|
||||
import android.text.SpannableString;
|
||||
import android.text.Spanned;
|
||||
import android.text.TextPaint;
|
||||
import android.text.TextUtils;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
import android.text.style.ClickableSpan;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MotionEvent;
|
||||
@@ -30,8 +36,8 @@ import android.widget.BaseAdapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.CompoundButton;
|
||||
import android.widget.CompoundButton.OnCheckedChangeListener;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.GridLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ListView;
|
||||
import android.widget.PopupWindow;
|
||||
@@ -40,59 +46,53 @@ import android.widget.Spinner;
|
||||
import android.widget.SpinnerAdapter;
|
||||
import android.widget.Switch;
|
||||
import android.widget.TextView;
|
||||
import android.content.Intent;
|
||||
import android.widget.Toast;
|
||||
import android.text.SpannableString;
|
||||
import android.text.TextPaint;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
import android.text.style.ClickableSpan;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.widget.AppCompatImageView;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.google.android.material.tabs.TabLayout;
|
||||
|
||||
import org.json.JSONException;
|
||||
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.chrome.browser.util.PackageUtils;
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.base.SysUtils;
|
||||
import org.chromium.chrome.browser.customtabs.CustomTabActivity;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.BraveAdsNativeHelper;
|
||||
import org.chromium.chrome.browser.BraveRewardsBalance;
|
||||
import org.chromium.chrome.browser.BraveRewardsExternalWallet;
|
||||
import org.chromium.chrome.browser.BraveRewardsExternalWallet.WalletStatus;
|
||||
import org.chromium.chrome.browser.BraveRewardsHelper;
|
||||
import org.chromium.chrome.browser.BraveRewardsObserver;
|
||||
import org.chromium.chrome.browser.BraveRewardsBalance;
|
||||
import org.chromium.chrome.browser.BraveRewardsPublisher.PublisherStatus;
|
||||
import org.chromium.chrome.browser.ChromeTabbedActivity;
|
||||
import org.chromium.chrome.browser.app.BraveActivity;
|
||||
import org.chromium.chrome.browser.custom_layout.HeightWrappingViewPager;
|
||||
import org.chromium.chrome.browser.customtabs.CustomTabActivity;
|
||||
import org.chromium.chrome.browser.preferences.BravePreferenceKeys;
|
||||
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.tab.Tab;
|
||||
import org.chromium.chrome.browser.tab.TabLaunchType;
|
||||
import org.chromium.chrome.browser.tabmodel.TabModelSelectorImpl;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.util.PackageUtils;
|
||||
import org.chromium.content_public.browser.LoadUrlParams;
|
||||
import org.chromium.chrome.browser.custom_layout.HeightWrappingViewPager;
|
||||
|
||||
import org.json.JSONException;
|
||||
import java.math.RoundingMode;
|
||||
import java.text.DateFormat;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
import java.util.TimeZone;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
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_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
|
||||
@@ -468,6 +468,9 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward
|
||||
|
||||
SetupNotificationsControls();
|
||||
|
||||
ShowWebSiteView();
|
||||
mBraveRewardsNativeWorker.GetRewardsParameters();
|
||||
|
||||
mBraveRewardsNativeWorker.GetExternalWallet();
|
||||
}
|
||||
|
||||
@@ -485,8 +488,7 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward
|
||||
@Override
|
||||
public void onClick(@NonNull View textView) {
|
||||
braveRewardsOptInView.setVisibility(View.GONE);
|
||||
showBraveRewardsOnboarding(root);
|
||||
|
||||
showBraveRewardsOnboarding(root, false);
|
||||
}
|
||||
@Override
|
||||
public void updateDrawState(@NonNull TextPaint ds) {
|
||||
@@ -507,6 +509,8 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward
|
||||
braveRewardsOptInView.setVisibility(View.GONE);
|
||||
BraveAdsNativeHelper.nativeSetAdsEnabled(Profile.getLastUsedRegularProfile());
|
||||
BraveRewardsNativeWorker.getInstance().SetAutoContributeEnabled(true);
|
||||
if (mBraveActivity != null)
|
||||
mBraveActivity.openNewOrSelectExistingTab(BraveActivity.REWARDS_SETTINGS_URL);
|
||||
}
|
||||
}));
|
||||
|
||||
@@ -518,7 +522,7 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward
|
||||
ClickableSpan tosClickableSpan = new ClickableSpan() {
|
||||
@Override
|
||||
public void onClick(@NonNull View textView) {
|
||||
CustomTabActivity.showInfoPage(mActivity, BRAVE_TERMS_PAGE);
|
||||
CustomTabActivity.showInfoPage(mActivity, BraveActivity.BRAVE_TERMS_PAGE);
|
||||
}
|
||||
@Override
|
||||
public void updateDrawState(@NonNull TextPaint ds) {
|
||||
@@ -533,7 +537,7 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward
|
||||
ClickableSpan privacyProtectionClickableSpan = new ClickableSpan() {
|
||||
@Override
|
||||
public void onClick(@NonNull View textView) {
|
||||
CustomTabActivity.showInfoPage(mActivity, BRAVE_PRIVACY_POLICY);
|
||||
CustomTabActivity.showInfoPage(mActivity, BraveActivity.BRAVE_PRIVACY_POLICY);
|
||||
}
|
||||
@Override
|
||||
public void updateDrawState(@NonNull TextPaint ds) {
|
||||
@@ -554,7 +558,6 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward
|
||||
modalCloseButton.setOnClickListener((new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
showBraveRewardsOptInLayout(root);
|
||||
braveRewardsOptInView.setVisibility(View.GONE);
|
||||
}
|
||||
}));
|
||||
@@ -572,7 +575,7 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward
|
||||
ClickableSpan tosClickableSpan = new ClickableSpan() {
|
||||
@Override
|
||||
public void onClick(@NonNull View textView) {
|
||||
CustomTabActivity.showInfoPage(mActivity, BRAVE_TERMS_PAGE);
|
||||
CustomTabActivity.showInfoPage(mActivity, BraveActivity.BRAVE_TERMS_PAGE);
|
||||
}
|
||||
@Override
|
||||
public void updateDrawState(@NonNull TextPaint ds) {
|
||||
@@ -587,7 +590,7 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward
|
||||
ClickableSpan privacyProtectionClickableSpan = new ClickableSpan() {
|
||||
@Override
|
||||
public void onClick(@NonNull View textView) {
|
||||
CustomTabActivity.showInfoPage(mActivity, BRAVE_PRIVACY_POLICY);
|
||||
CustomTabActivity.showInfoPage(mActivity, BraveActivity.BRAVE_PRIVACY_POLICY);
|
||||
}
|
||||
@Override
|
||||
public void updateDrawState(@NonNull TextPaint ds) {
|
||||
@@ -609,7 +612,7 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
braveRewardsOnboardingModalView.setVisibility(View.GONE);
|
||||
showBraveRewardsOnboarding(root);
|
||||
showBraveRewardsOnboarding(root, false);
|
||||
}
|
||||
}));
|
||||
Button btnBraveRewards = root.findViewById(R.id.btn_brave_rewards);
|
||||
@@ -619,7 +622,7 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward
|
||||
braveRewardsOnboardingModalView.setVisibility(View.GONE);
|
||||
BraveAdsNativeHelper.nativeSetAdsEnabled(Profile.getLastUsedRegularProfile());
|
||||
BraveRewardsNativeWorker.getInstance().SetAutoContributeEnabled(true);
|
||||
showBraveRewardsOnboarding(root);
|
||||
showBraveRewardsOnboarding(root, true);
|
||||
}
|
||||
}));
|
||||
AppCompatImageView modalCloseButton = braveRewardsOnboardingModalView.findViewById(R.id.modal_close);
|
||||
@@ -632,7 +635,7 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward
|
||||
}));
|
||||
}
|
||||
|
||||
private void showBraveRewardsOnboarding(View root) {
|
||||
private void showBraveRewardsOnboarding(View root, boolean shouldShowMoreOption) {
|
||||
braveRewardsOnboardingView = root.findViewById(R.id.brave_rewards_onboarding_layout_id);
|
||||
braveRewardsOnboardingView.setVisibility(View.VISIBLE);
|
||||
final Button btnNext = braveRewardsOnboardingView.findViewById(R.id.btn_next);
|
||||
@@ -673,7 +676,7 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward
|
||||
public void onPageScrollStateChanged(int state) {}
|
||||
});
|
||||
braveRewardsOnboardingPagerAdapter = new BraveRewardsOnboardingPagerAdapter();
|
||||
braveRewardsOnboardingPagerAdapter.setOnboardingType(BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile()));
|
||||
braveRewardsOnboardingPagerAdapter.setOnboardingType(shouldShowMoreOption);
|
||||
braveRewardsViewPager.setAdapter(braveRewardsOnboardingPagerAdapter);
|
||||
TabLayout braveRewardsTabLayout = braveRewardsOnboardingView.findViewById(R.id.brave_rewards_tab_layout);
|
||||
braveRewardsTabLayout.setupWithViewPager(braveRewardsViewPager, true);
|
||||
@@ -705,7 +708,7 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
braveRewardsWelcomeView.setVisibility(View.GONE);
|
||||
showBraveRewardsOnboarding(root);
|
||||
showBraveRewardsOnboarding(root, false);
|
||||
}
|
||||
}));
|
||||
}
|
||||
@@ -730,6 +733,8 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward
|
||||
}
|
||||
if (BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile())) {
|
||||
showBraveRewardsWelcomeLayout(root);
|
||||
} else {
|
||||
showBraveRewardsOptInLayout(root);
|
||||
}
|
||||
} else {
|
||||
braveRewardsViewPager.setCurrentItem(braveRewardsViewPager.getCurrentItem() + 1);
|
||||
@@ -739,7 +744,8 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward
|
||||
|
||||
if (viewId == R.id.btn_skip
|
||||
&& braveRewardsOnboardingView != null) {
|
||||
braveRewardsViewPager.setCurrentItem(braveRewardsOnboardingPagerAdapter.getCount() - 1);
|
||||
braveRewardsViewPager.setCurrentItem(
|
||||
braveRewardsOnboardingPagerAdapter.getCount() - 1);
|
||||
}
|
||||
|
||||
if (viewId == R.id.btn_go_back
|
||||
@@ -817,21 +823,36 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward
|
||||
|
||||
public void showLikePopDownMenu() {
|
||||
this.showLikePopDownMenu(0, 0);
|
||||
BraveRewardsNativeWorker.getInstance().StartProcess();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void OnStartProcess() {
|
||||
if (root != null && PackageUtils.isFirstInstall(mActivity)) {
|
||||
if (BraveRewardsHelper.shouldShowBraveRewardsOnboarding()) {
|
||||
showBraveRewardsOnboarding(root);
|
||||
BraveRewardsHelper.setShowBraveRewardsOnboarding(false);
|
||||
} else if ((BraveRewardsHelper.getBraveRewardsOpenCount() == 0)
|
||||
&& !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile())) {
|
||||
if (BraveRewardsHelper.shouldShowBraveRewardsOnboardingModalOnce()) {
|
||||
showBraveRewardsOnboardingModal(root);
|
||||
BraveRewardsHelper.updateBraveRewardsOpenCount();
|
||||
} else if (BraveRewardsHelper.getBraveRewardsOpenCount() == 1) {
|
||||
BraveRewardsHelper.setShowBraveRewardsOnboardingModalOnce(false);
|
||||
BraveRewardsHelper.setShowBraveRewardsSettingsOnboardingModal(false);
|
||||
BraveRewardsHelper.updateBraveRewardsAppOpenCount();
|
||||
} else if (BraveRewardsHelper.shouldShowBraveRewardsOnboardingOnce()) {
|
||||
showBraveRewardsOnboarding(root, false);
|
||||
BraveRewardsHelper.setShowBraveRewardsOnboardingOnce(false);
|
||||
} else if ((BraveRewardsHelper.getBraveRewardsAppOpenCount() == 0)
|
||||
&& !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(
|
||||
Profile.getLastUsedRegularProfile())) {
|
||||
showBraveRewardsOnboardingModal(root);
|
||||
BraveRewardsHelper.updateBraveRewardsAppOpenCount();
|
||||
BraveRewardsHelper.setShowBraveRewardsSettingsOnboardingModal(false);
|
||||
} else if (SharedPreferencesManager.getInstance().readInt(
|
||||
BravePreferenceKeys.BRAVE_APP_OPEN_COUNT)
|
||||
> BraveRewardsHelper.getBraveRewardsAppOpenCount()
|
||||
&& BraveRewardsHelper.shouldShowMiniOnboardingModal()) {
|
||||
if (BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile())) {
|
||||
showBraveRewardsWelcomeLayout(root);
|
||||
} else {
|
||||
showBraveRewardsOptInLayout(root);
|
||||
}
|
||||
BraveRewardsHelper.updateBraveRewardsOpenCount();
|
||||
BraveRewardsHelper.setShowMiniOnboardingModal(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1830,8 +1851,6 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward
|
||||
}
|
||||
}
|
||||
SetVerifyWalletControl(walletStatus);
|
||||
mBraveRewardsNativeWorker.GetRewardsParameters();
|
||||
ShowWebSiteView();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -41,6 +41,7 @@ import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ApplicationLifetime;
|
||||
import org.chromium.chrome.browser.BraveConfig;
|
||||
import org.chromium.chrome.browser.BraveHelper;
|
||||
import org.chromium.chrome.browser.BraveRewardsNativeWorker;
|
||||
import org.chromium.chrome.browser.BraveSyncReflectionUtils;
|
||||
import org.chromium.chrome.browser.ChromeTabbedActivity;
|
||||
import org.chromium.chrome.browser.CrossPromotionalModalDialogFragment;
|
||||
@@ -78,7 +79,6 @@ import org.chromium.chrome.browser.util.BraveReferrer;
|
||||
import org.chromium.chrome.browser.util.PackageUtils;
|
||||
import org.chromium.chrome.browser.widget.crypto.binance.BinanceAccountBalance;
|
||||
import org.chromium.chrome.browser.widget.crypto.binance.BinanceWidgetManager;
|
||||
import org.chromium.chrome.browser.BraveRewardsNativeWorker;
|
||||
import org.chromium.components.bookmarks.BookmarkId;
|
||||
import org.chromium.components.bookmarks.BookmarkType;
|
||||
import org.chromium.components.embedder_support.util.UrlConstants;
|
||||
@@ -98,8 +98,12 @@ public abstract class BraveActivity<C extends ChromeActivityComponent> extends C
|
||||
public static final int USER_WALLET_ACTIVITY_REQUEST_CODE = 35;
|
||||
public static final String ADD_FUNDS_URL = "chrome://rewards/#add-funds";
|
||||
public static final String REWARDS_SETTINGS_URL = "chrome://rewards/";
|
||||
public static final String BRAVE_REWARDS_SETTINGS_URL = "brave://rewards/";
|
||||
public static final String REWARDS_AC_SETTINGS_URL = "chrome://rewards/contribute";
|
||||
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";
|
||||
private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
|
||||
public static final String OPEN_URL = "open_url";
|
||||
|
||||
@@ -215,8 +219,6 @@ public abstract class BraveActivity<C extends ChromeActivityComponent> extends C
|
||||
public void finishNativeInitialization() {
|
||||
super.finishNativeInitialization();
|
||||
|
||||
BraveRewardsNativeWorker.getInstance().StartProcess();
|
||||
|
||||
int appOpenCount = SharedPreferencesManager.getInstance().readInt(BravePreferenceKeys.BRAVE_APP_OPEN_COUNT);
|
||||
SharedPreferencesManager.getInstance().writeInt(BravePreferenceKeys.BRAVE_APP_OPEN_COUNT, appOpenCount + 1);
|
||||
|
||||
|
||||
+2
-2
@@ -93,8 +93,8 @@ public class RetentionNotificationPublisher extends BroadcastReceiver {
|
||||
case RetentionNotificationUtil.DAY_35:
|
||||
// Can't check for rewards code in background
|
||||
if (braveActivity != null
|
||||
&& (ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS) && !UserPrefs.get(Profile.getLastUsedRegularProfile()).getBoolean(BravePref.ENABLED))
|
||||
&& !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile())) {
|
||||
&& !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(
|
||||
Profile.getLastUsedRegularProfile())) {
|
||||
createNotification(context, intent);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -156,9 +156,9 @@ public class NTPUtil {
|
||||
&& ntpImage instanceof Wallpaper
|
||||
&& !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile())) {
|
||||
return SponsoredImageUtil.BR_ON_ADS_OFF ;
|
||||
} else if (!PackageUtils.isFirstInstall(context)
|
||||
&& ntpImage instanceof Wallpaper
|
||||
&& BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile()) ) {
|
||||
} else if (ntpImage instanceof Wallpaper
|
||||
&& BraveAdsNativeHelper.nativeIsBraveAdsEnabled(
|
||||
Profile.getLastUsedRegularProfile())) {
|
||||
return SponsoredImageUtil.BR_ON_ADS_ON;
|
||||
}
|
||||
}
|
||||
@@ -170,11 +170,16 @@ public class NTPUtil {
|
||||
nonDistruptiveBannerLayout.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// clickOnBottomBanner(chromeActivity, ntpType, nonDistruptiveBannerLayout, sponsoredTab, newTabPageListener);
|
||||
if (BraveActivity.getBraveActivity() != null) {
|
||||
nonDistruptiveBannerLayout.setVisibility(View.GONE);
|
||||
BraveRewardsHelper.setShowBraveRewardsOnboarding(true);
|
||||
BraveActivity.getBraveActivity().openRewardsPanel();
|
||||
if (BraveAdsNativeHelper.nativeIsBraveAdsEnabled(
|
||||
Profile.getLastUsedRegularProfile())) {
|
||||
clickOnBottomBanner(chromeActivity, ntpType, nonDistruptiveBannerLayout,
|
||||
sponsoredTab, newTabPageListener);
|
||||
} else {
|
||||
if (BraveActivity.getBraveActivity() != null) {
|
||||
nonDistruptiveBannerLayout.setVisibility(View.GONE);
|
||||
BraveRewardsHelper.setShowBraveRewardsOnboardingModalOnce(true);
|
||||
BraveActivity.getBraveActivity().openRewardsPanel();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -194,7 +194,6 @@ public class OnboardingPrefManager {
|
||||
public boolean showOnboardingForSkip(Context context) {
|
||||
boolean shouldShow = PackageUtils.isFirstInstall(context)
|
||||
&& !hasOnboardingShownForSkip()
|
||||
&& (ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS) && !UserPrefs.get(Profile.getLastUsedRegularProfile()).getBoolean(BravePref.ENABLED))
|
||||
&& !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile())
|
||||
&& (getNextOnboardingDate() > 0 && System.currentTimeMillis() > getNextOnboardingDate());
|
||||
return shouldShow;
|
||||
|
||||
@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.toolbar.top;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
@@ -14,18 +15,28 @@ import android.content.res.Resources;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.text.SpannableString;
|
||||
import android.text.Spanned;
|
||||
import android.text.TextPaint;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
import android.text.style.ClickableSpan;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Pair;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.Window;
|
||||
import android.widget.Button;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.PopupWindow;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.widget.AppCompatImageView;
|
||||
|
||||
import org.chromium.base.ApiCompatibilityUtils;
|
||||
import org.chromium.base.ContextUtils;
|
||||
@@ -37,10 +48,13 @@ import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.BraveAdsNativeHelper;
|
||||
import org.chromium.chrome.browser.BraveFeatureList;
|
||||
import org.chromium.chrome.browser.BraveRelaunchUtils;
|
||||
import org.chromium.chrome.browser.BraveRewardsHelper;
|
||||
import org.chromium.chrome.browser.BraveRewardsNativeWorker;
|
||||
import org.chromium.chrome.browser.BraveRewardsObserver;
|
||||
import org.chromium.chrome.browser.BraveRewardsPanelPopup;
|
||||
import org.chromium.chrome.browser.app.BraveActivity;
|
||||
import org.chromium.chrome.browser.brave_stats.BraveStatsUtil;
|
||||
import org.chromium.chrome.browser.customtabs.CustomTabActivity;
|
||||
import org.chromium.chrome.browser.customtabs.features.toolbar.CustomTabToolbar;
|
||||
import org.chromium.chrome.browser.dialogs.BraveAdsSignupDialog;
|
||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
@@ -340,6 +354,15 @@ public abstract class BraveToolbarLayout extends ToolbarLayout implements OnClic
|
||||
&& !tab.isIncognito()) {
|
||||
mBraveRewardsNativeWorker.OnNotifyFrontTabUrlChanged(tab.getId(), tab.getUrlString());
|
||||
}
|
||||
if (tab.getUrlString() != null
|
||||
&& (tab.getUrlString().equals(BraveActivity.REWARDS_SETTINGS_URL)
|
||||
|| tab.getUrlString().equals(BraveActivity.BRAVE_REWARDS_SETTINGS_URL))
|
||||
&& !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(
|
||||
Profile.getLastUsedRegularProfile())
|
||||
&& BraveRewardsHelper.shouldShowBraveRewardsSettingsOnboardingModal()) {
|
||||
showBraveRewardsOnboardingModal();
|
||||
BraveRewardsHelper.setShowBraveRewardsSettingsOnboardingModal(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -366,6 +389,112 @@ public abstract class BraveToolbarLayout extends ToolbarLayout implements OnClic
|
||||
}
|
||||
}
|
||||
|
||||
private void showBraveRewardsOnboardingModal() {
|
||||
Context context = getContext();
|
||||
final Dialog dialog = new Dialog(context);
|
||||
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
dialog.setCancelable(false);
|
||||
dialog.setContentView(R.layout.brave_rewards_onboarding_modal);
|
||||
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
|
||||
|
||||
View braveRewardsOnboardingModalView =
|
||||
dialog.findViewById(R.id.brave_rewards_onboarding_modal_layout);
|
||||
braveRewardsOnboardingModalView.setBackgroundColor(
|
||||
context.getResources().getColor(android.R.color.white));
|
||||
braveRewardsOnboardingModalView.setVisibility(View.VISIBLE);
|
||||
|
||||
String tosText =
|
||||
String.format(context.getResources().getString(R.string.brave_rewards_tos_text),
|
||||
context.getResources().getString(R.string.terms_of_service),
|
||||
context.getResources().getString(R.string.privacy_policy));
|
||||
int termsOfServiceIndex =
|
||||
tosText.indexOf(context.getResources().getString(R.string.terms_of_service));
|
||||
Spanned tosTextSpanned = BraveRewardsHelper.spannedFromHtmlString(tosText);
|
||||
SpannableString tosTextSS = new SpannableString(tosTextSpanned.toString());
|
||||
|
||||
ClickableSpan tosClickableSpan = new ClickableSpan() {
|
||||
@Override
|
||||
public void onClick(@NonNull View textView) {
|
||||
CustomTabActivity.showInfoPage(context, BraveActivity.BRAVE_TERMS_PAGE);
|
||||
}
|
||||
@Override
|
||||
public void updateDrawState(@NonNull TextPaint ds) {
|
||||
super.updateDrawState(ds);
|
||||
ds.setUnderlineText(false);
|
||||
}
|
||||
};
|
||||
|
||||
tosTextSS.setSpan(tosClickableSpan, termsOfServiceIndex,
|
||||
termsOfServiceIndex
|
||||
+ context.getResources().getString(R.string.terms_of_service).length(),
|
||||
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
tosTextSS.setSpan(new ForegroundColorSpan(context.getResources().getColor(
|
||||
R.color.brave_rewards_modal_theme_color)),
|
||||
termsOfServiceIndex,
|
||||
termsOfServiceIndex
|
||||
+ context.getResources().getString(R.string.terms_of_service).length(),
|
||||
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
|
||||
ClickableSpan privacyProtectionClickableSpan = new ClickableSpan() {
|
||||
@Override
|
||||
public void onClick(@NonNull View textView) {
|
||||
CustomTabActivity.showInfoPage(context, BraveActivity.BRAVE_PRIVACY_POLICY);
|
||||
}
|
||||
@Override
|
||||
public void updateDrawState(@NonNull TextPaint ds) {
|
||||
super.updateDrawState(ds);
|
||||
ds.setUnderlineText(false);
|
||||
}
|
||||
};
|
||||
|
||||
int privacyPolicyIndex =
|
||||
tosText.indexOf(context.getResources().getString(R.string.privacy_policy));
|
||||
tosTextSS.setSpan(privacyProtectionClickableSpan, privacyPolicyIndex,
|
||||
privacyPolicyIndex
|
||||
+ context.getResources().getString(R.string.privacy_policy).length(),
|
||||
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
tosTextSS.setSpan(new ForegroundColorSpan(context.getResources().getColor(
|
||||
R.color.brave_rewards_modal_theme_color)),
|
||||
privacyPolicyIndex,
|
||||
privacyPolicyIndex
|
||||
+ context.getResources().getString(R.string.privacy_policy).length(),
|
||||
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
|
||||
TextView tosAndPpText = braveRewardsOnboardingModalView.findViewById(R.id.tos_pp_text);
|
||||
tosAndPpText.setMovementMethod(LinkMovementMethod.getInstance());
|
||||
tosAndPpText.setText(tosTextSS);
|
||||
|
||||
TextView takeQuickTourButton =
|
||||
braveRewardsOnboardingModalView.findViewById(R.id.take_quick_tour_button);
|
||||
takeQuickTourButton.setOnClickListener((new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
BraveRewardsHelper.setShowBraveRewardsOnboardingOnce(true);
|
||||
BraveActivity.getBraveActivity().openRewardsPanel();
|
||||
dialog.dismiss();
|
||||
}
|
||||
}));
|
||||
Button btnBraveRewards = braveRewardsOnboardingModalView.findViewById(R.id.btn_brave_rewards);
|
||||
btnBraveRewards.setOnClickListener((new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
BraveAdsNativeHelper.nativeSetAdsEnabled(Profile.getLastUsedRegularProfile());
|
||||
BraveRewardsNativeWorker.getInstance().SetAutoContributeEnabled(true);
|
||||
dialog.dismiss();
|
||||
}
|
||||
}));
|
||||
AppCompatImageView modalCloseButton =
|
||||
braveRewardsOnboardingModalView.findViewById(R.id.modal_close);
|
||||
modalCloseButton.setOnClickListener((new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
}));
|
||||
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
private void addSavedBandwidthToDb(long savings) {
|
||||
new AsyncTask<Void>() {
|
||||
@Override
|
||||
@@ -465,7 +594,6 @@ public abstract class BraveToolbarLayout extends ToolbarLayout implements OnClic
|
||||
|
||||
private boolean checkForRewardsOnboarding() {
|
||||
return PackageUtils.isFirstInstall(getContext())
|
||||
&& (ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS) && !UserPrefs.get(Profile.getLastUsedRegularProfile()).getBoolean(BravePref.ENABLED))
|
||||
&& !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile())
|
||||
&& !OnboardingPrefManager.getInstance().isOnboardingShown();
|
||||
}
|
||||
@@ -691,34 +819,33 @@ public abstract class BraveToolbarLayout extends ToolbarLayout implements OnClic
|
||||
|
||||
@Override
|
||||
public void OnNotificationsCount(int count) {
|
||||
boolean rewardsEnabled = UserPrefs.get(Profile.getLastUsedRegularProfile()).getBoolean(BravePref.ENABLED);
|
||||
if (mBraveRewardsNotificationsCount != null && rewardsEnabled) {
|
||||
if (count != 0) {
|
||||
String value = Integer.toString(count);
|
||||
if (count > 99) {
|
||||
mBraveRewardsNotificationsCount.setBackground(
|
||||
getResources().getDrawable(R.drawable.brave_rewards_rectangle));
|
||||
value = "99+";
|
||||
} else {
|
||||
mBraveRewardsNotificationsCount.setBackground(
|
||||
getResources().getDrawable(R.drawable.brave_rewards_circle));
|
||||
}
|
||||
mBraveRewardsNotificationsCount.setText(value);
|
||||
mBraveRewardsNotificationsCount.setVisibility(View.VISIBLE);
|
||||
mIsNotificationPosted = true;
|
||||
} else {
|
||||
mBraveRewardsNotificationsCount.setText("");
|
||||
mBraveRewardsNotificationsCount.setBackgroundResource(0);
|
||||
mBraveRewardsNotificationsCount.setVisibility(View.INVISIBLE);
|
||||
mIsNotificationPosted = false;
|
||||
updateVerifiedPublisherMark();
|
||||
if (mBraveRewardsNotificationsCount != null) {
|
||||
if (count != 0) {
|
||||
String value = Integer.toString(count);
|
||||
if (count > 99) {
|
||||
mBraveRewardsNotificationsCount.setBackground(
|
||||
getResources().getDrawable(R.drawable.brave_rewards_rectangle));
|
||||
value = "99+";
|
||||
} else {
|
||||
mBraveRewardsNotificationsCount.setBackground(
|
||||
getResources().getDrawable(R.drawable.brave_rewards_circle));
|
||||
}
|
||||
mBraveRewardsNotificationsCount.setText(value);
|
||||
mBraveRewardsNotificationsCount.setVisibility(View.VISIBLE);
|
||||
mIsNotificationPosted = true;
|
||||
} else {
|
||||
mBraveRewardsNotificationsCount.setText("");
|
||||
mBraveRewardsNotificationsCount.setBackgroundResource(0);
|
||||
mBraveRewardsNotificationsCount.setVisibility(View.INVISIBLE);
|
||||
mIsNotificationPosted = false;
|
||||
updateVerifiedPublisherMark();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
updateNotificationBadgeForNewInstall(rewardsEnabled);
|
||||
if (!PackageUtils.isFirstInstall(getContext())
|
||||
&& !OnboardingPrefManager.getInstance().isAdsAvailable()) {
|
||||
mayShowBraveAdsOnboardingDialog();
|
||||
updateNotificationBadgeForNewInstall();
|
||||
if (!PackageUtils.isFirstInstall(getContext())
|
||||
&& !OnboardingPrefManager.getInstance().isAdsAvailable()) {
|
||||
mayShowBraveAdsOnboardingDialog();
|
||||
}
|
||||
|
||||
if (checkForRewardsOnboarding()) {
|
||||
@@ -731,19 +858,19 @@ public abstract class BraveToolbarLayout extends ToolbarLayout implements OnClic
|
||||
}
|
||||
}
|
||||
|
||||
private void updateNotificationBadgeForNewInstall(boolean rewardsEnabled) {
|
||||
SharedPreferences sharedPref = ContextUtils.getAppSharedPreferences();
|
||||
boolean shownBefore = sharedPref.getBoolean(BraveRewardsPanelPopup.PREF_WAS_TOOLBAR_BAT_LOGO_BUTTON_PRESSED, false);
|
||||
boolean shouldShow =
|
||||
mBraveRewardsNotificationsCount != null && !shownBefore && !rewardsEnabled;
|
||||
mIsInitialNotificationPosted = shouldShow; // initial notification
|
||||
private void updateNotificationBadgeForNewInstall() {
|
||||
SharedPreferences sharedPref = ContextUtils.getAppSharedPreferences();
|
||||
boolean shownBefore = sharedPref.getBoolean(
|
||||
BraveRewardsPanelPopup.PREF_WAS_TOOLBAR_BAT_LOGO_BUTTON_PRESSED, false);
|
||||
boolean shouldShow = mBraveRewardsNotificationsCount != null && !shownBefore;
|
||||
mIsInitialNotificationPosted = shouldShow; // initial notification
|
||||
|
||||
if (!shouldShow) return;
|
||||
if (!shouldShow) return;
|
||||
|
||||
mBraveRewardsNotificationsCount.setText("");
|
||||
mBraveRewardsNotificationsCount.setBackground(
|
||||
getResources().getDrawable(R.drawable.brave_rewards_circle));
|
||||
mBraveRewardsNotificationsCount.setVisibility(View.VISIBLE);
|
||||
mBraveRewardsNotificationsCount.setText("");
|
||||
mBraveRewardsNotificationsCount.setBackground(
|
||||
getResources().getDrawable(R.drawable.brave_rewards_circle));
|
||||
mBraveRewardsNotificationsCount.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
<androidx.cardview.widget.CardView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/brave_rewards_onboarding_modal_layout"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="4dp"
|
||||
|
||||
@@ -3,16 +3,16 @@
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file. -->
|
||||
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<LinearLayout 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:layout_height="wrap_content"
|
||||
android:background="@drawable/header">
|
||||
|
||||
<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>
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
|
||||
+11
-20
@@ -44,13 +44,10 @@ public class BraveAdsSignupDialog {
|
||||
private static final long MOMENT_LATER = 2_500;
|
||||
|
||||
public static boolean shouldShowNewUserDialog(Context context) {
|
||||
boolean shouldShow =
|
||||
shouldShowOnboardingDialog()
|
||||
&& PackageUtils.isFirstInstall(context)
|
||||
&& !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile())
|
||||
&& !UserPrefs.get(Profile.getLastUsedRegularProfile()).getBoolean(BravePref.ENABLED)
|
||||
&& hasElapsed24Hours(context)
|
||||
&& ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS);
|
||||
boolean shouldShow = shouldShowOnboardingDialog() && PackageUtils.isFirstInstall(context)
|
||||
&& !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(
|
||||
Profile.getLastUsedRegularProfile())
|
||||
&& hasElapsed24Hours(context);
|
||||
|
||||
boolean shouldShowForViewCount = shouldShowForViewCount();
|
||||
if (shouldShow) updateViewCount();
|
||||
@@ -59,12 +56,9 @@ public class BraveAdsSignupDialog {
|
||||
}
|
||||
|
||||
public static boolean shouldShowNewUserDialogIfRewardsIsSwitchedOff(Context context) {
|
||||
boolean shouldShow =
|
||||
shouldShowOnboardingDialog()
|
||||
&& !PackageUtils.isFirstInstall(context)
|
||||
&& !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile())
|
||||
&& !UserPrefs.get(Profile.getLastUsedRegularProfile()).getBoolean(BravePref.ENABLED)
|
||||
&& ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS);
|
||||
boolean shouldShow = shouldShowOnboardingDialog() && !PackageUtils.isFirstInstall(context)
|
||||
&& !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(
|
||||
Profile.getLastUsedRegularProfile());
|
||||
|
||||
boolean shouldShowForViewCount = shouldShowForViewCount();
|
||||
if (shouldShow) updateViewCount();
|
||||
@@ -73,13 +67,10 @@ public class BraveAdsSignupDialog {
|
||||
}
|
||||
|
||||
public static boolean shouldShowExistingUserDialog(Context context) {
|
||||
boolean shouldShow =
|
||||
shouldShowOnboardingDialog()
|
||||
&& !PackageUtils.isFirstInstall(context)
|
||||
&& !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile())
|
||||
&& UserPrefs.get(Profile.getLastUsedRegularProfile()).getBoolean(BravePref.ENABLED)
|
||||
&& BraveAdsNativeHelper.nativeIsLocaleValid(Profile.getLastUsedRegularProfile())
|
||||
&& ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS);
|
||||
boolean shouldShow = shouldShowOnboardingDialog() && !PackageUtils.isFirstInstall(context)
|
||||
&& !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(
|
||||
Profile.getLastUsedRegularProfile())
|
||||
&& BraveAdsNativeHelper.nativeIsLocaleValid(Profile.getLastUsedRegularProfile());
|
||||
|
||||
boolean shouldShowForViewCount = shouldShowForViewCount();
|
||||
if (shouldShow) updateViewCount();
|
||||
|
||||
@@ -273,13 +273,24 @@ void BraveRewardsNativeWorker::FetchGrants(JNIEnv* env,
|
||||
}
|
||||
}
|
||||
|
||||
void BraveRewardsNativeWorker::StartProcess(JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& obj) {
|
||||
void BraveRewardsNativeWorker::StartProcess(
|
||||
JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& obj) {
|
||||
if (brave_rewards_service_) {
|
||||
brave_rewards_service_->StartProcess(base::DoNothing());
|
||||
brave_rewards_service_->StartProcess(
|
||||
base::BindOnce(&BraveRewardsNativeWorker::OnStartProcess,
|
||||
base::Unretained(this), brave_rewards_service_));
|
||||
}
|
||||
}
|
||||
|
||||
void BraveRewardsNativeWorker::OnStartProcess(
|
||||
brave_rewards::RewardsService* rewards_service,
|
||||
const ledger::type::Result result) {
|
||||
JNIEnv* env = base::android::AttachCurrentThread();
|
||||
Java_BraveRewardsNativeWorker_OnStartProcess(
|
||||
env, weak_java_brave_rewards_native_worker_.get(env));
|
||||
}
|
||||
|
||||
void BraveRewardsNativeWorker::GetCurrentBalanceReport(JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& obj) {
|
||||
if (brave_rewards_service_) {
|
||||
|
||||
@@ -250,9 +250,11 @@ class BraveRewardsNativeWorker : public brave_rewards::RewardsServiceObserver,
|
||||
const base::android::JavaParamRef<jobject>& obj,
|
||||
bool isAutoContributeEnabled);
|
||||
void StartProcess(JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& obj);
|
||||
const base::android::JavaParamRef<jobject>& obj);
|
||||
void OnStartProcess(brave_rewards::RewardsService* rewards_service,
|
||||
const ledger::type::Result result);
|
||||
|
||||
private:
|
||||
private:
|
||||
std::string StdStrStrMapToJsonString(
|
||||
const base::flat_map<std::string, std::string>& args);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user