Skip to content

Commit

Permalink
Merge pull request #15446 from brave/maxk-rewards-ofac
Browse files Browse the repository at this point in the history
Disable Rewards for users in OFAC regions.
  • Loading branch information
mkarolin authored Oct 26, 2022
2 parents 7203ae4 + 110f757 commit 140ab5d
Show file tree
Hide file tree
Showing 61 changed files with 810 additions and 113 deletions.
2 changes: 1 addition & 1 deletion android/android_browser_tests.gni
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ android_test_exception_sources = [
android_test_exception_deps = [
"//brave/browser/autoplay:browser_tests",
"//brave/browser/brave_news:browser_tests",
"//brave/browser/brave_rewards:browser_tests",
"//brave/browser/brave_rewards/test:browser_tests",
"//brave/browser/browsing_data:browser_tests",
"//brave/browser/decentralized_dns/test:browser_tests",
"//brave/browser/extensions",
Expand Down
1 change: 0 additions & 1 deletion android/java/org/chromium/base/BraveFeatureList.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
package org.chromium.base;

public abstract class BraveFeatureList {
public static final String BRAVE_REWARDS = "BraveRewards";
public static final String NATIVE_BRAVE_WALLET = "NativeBraveWallet";
public static final String BRAVE_NEWS = "BraveNews";
public static final String USE_DEV_UPDATER_URL = "UseDevUpdaterUrl";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,12 @@

import androidx.annotation.Nullable;

import org.chromium.base.BraveFeatureList;
import org.chromium.base.ContextUtils;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.BraveRewardsNativeWorker;
import org.chromium.chrome.browser.ChromeTabbedActivity;
import org.chromium.chrome.browser.app.BraveActivity;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.preferences.BravePreferenceKeys;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.profiles.Profile;
Expand Down Expand Up @@ -119,11 +118,12 @@ public static boolean hasRewardsOnboardingModalShown() {
}

public static boolean shouldShowRewardsOnboardingModalOnDay4() {
BraveRewardsNativeWorker braveRewardsNativeWorker = BraveRewardsNativeWorker.getInstance();
if (!hasRewardsOnboardingModalShown()
&& (getNextRewardsOnboardingModalDate() > 0
&& System.currentTimeMillis() > getNextRewardsOnboardingModalDate())
&& shouldShowBraveRewardsOnboardingModal()
&& ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS)) {
&& shouldShowBraveRewardsOnboardingModal() && braveRewardsNativeWorker != null
&& braveRewardsNativeWorker.IsSupported()) {
if (BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile())) {
setRewardsOnboardingModalShown(true);
return false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,19 @@ public boolean IsGrantClaimInProcess() {
}
}

public boolean IsSupported() {
synchronized (lock) {
return BraveRewardsNativeWorkerJni.get().isSupported(mNativeBraveRewardsNativeWorker);
}
}

public boolean IsSupportedSkipRegionCheck() {
synchronized (lock) {
return BraveRewardsNativeWorkerJni.get().isSupportedSkipRegionCheck(
mNativeBraveRewardsNativeWorker);
}
}

public void CreateRewardsWallet(String countryCode) {
synchronized (lock) {
BraveRewardsNativeWorkerJni.get().createRewardsWallet(
Expand Down Expand Up @@ -706,6 +719,8 @@ public void onPublisherBanner(String jsonBannerInfo) {
interface Natives {
void init(BraveRewardsNativeWorker caller);
void destroy(long nativeBraveRewardsNativeWorker);
boolean isSupported(long nativeBraveRewardsNativeWorker);
boolean isSupportedSkipRegionCheck(long nativeBraveRewardsNativeWorker);
String getWalletBalance(long nativeBraveRewardsNativeWorker);
String getExternalWalletType(long nativeBraveRewardsNativeWorker);
void GetPublisherBanner(long nativeBraveRewardsNativeWorker, String publisher_key);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.BraveConfig;
import org.chromium.chrome.browser.BraveRewardsNativeWorker;
import org.chromium.chrome.browser.app.appmenu.AppMenuIconRowFooter;
import org.chromium.chrome.browser.bookmarks.BookmarkBridge;
import org.chromium.chrome.browser.feed.webfeed.WebFeedBridge;
Expand Down Expand Up @@ -121,7 +122,9 @@ public void prepareMenu(Menu menu, AppMenuHandler handler) {
AppCompatResources.getDrawable(mContext, R.drawable.brave_menu_set_as_default));
}

if (ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS)
BraveRewardsNativeWorker braveRewardsNativeWorker = BraveRewardsNativeWorker.getInstance();
if (braveRewardsNativeWorker != null
&& braveRewardsNativeWorker.IsSupportedSkipRegionCheck()
&& !BravePrefServiceBridge.getInstance().getSafetynetCheckFailed()) {
MenuItem rewards =
menu.add(Menu.NONE, R.id.brave_rewards_id, 0, R.string.menu_brave_rewards);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,13 @@
import android.net.Uri;

import org.chromium.base.ApplicationStatus;
import org.chromium.base.BraveFeatureList;
import org.chromium.base.Log;
import org.chromium.base.ThreadUtils;
import org.chromium.base.task.AsyncTask;
import org.chromium.chrome.browser.BraveAdsNativeHelper;
import org.chromium.chrome.browser.BraveRewardsNativeWorker;
import org.chromium.chrome.browser.app.BraveActivity;
import org.chromium.chrome.browser.brave_stats.BraveStatsUtil;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.notifications.retention.RetentionNotificationUtil;
import org.chromium.chrome.browser.onboarding.OnboardingPrefManager;
import org.chromium.chrome.browser.preferences.BravePref;
Expand Down Expand Up @@ -116,7 +115,8 @@ public void onReceive(Context context, Intent intent) {
if (braveActivity != null
&& !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(
Profile.getLastUsedRegularProfile())
&& ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS)) {
&& BraveRewardsNativeWorker.getInstance() != null
&& BraveRewardsNativeWorker.getInstance().IsSupported()) {
createNotification(context, intent);
}
} catch (IllegalStateException exc) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,11 @@

import androidx.annotation.Nullable;

import org.chromium.base.BraveFeatureList;
import org.chromium.base.ObserverList;
import org.chromium.base.ThreadUtils;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.NativeMethods;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.BraveRewardsNativeWorker;
import org.chromium.chrome.browser.ntp_background_images.model.BackgroundImage;
import org.chromium.chrome.browser.ntp_background_images.model.ImageCredit;
import org.chromium.chrome.browser.ntp_background_images.model.NTPImage;
Expand Down Expand Up @@ -70,8 +69,9 @@ public void removeObserver(NTPBackgroundImageServiceObserver observer) {
}

static public boolean enableSponsoredImages() {
return ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS)
&& !BravePrefServiceBridge.getInstance().getSafetynetCheckFailed();
BraveRewardsNativeWorker braveRewardsNativeWorker = BraveRewardsNativeWorker.getInstance();
return braveRewardsNativeWorker != null && braveRewardsNativeWorker.IsSupported()
&& !BravePrefServiceBridge.getInstance().getSafetynetCheckFailed();
}

static public NTPBackgroundImagesBridge getInstance(Profile profile) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@

import org.json.JSONException;

import org.chromium.base.BraveFeatureList;
import org.chromium.base.BraveReflectionUtil;
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
Expand All @@ -90,7 +89,6 @@
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.flags.ChromeFeatureList;
import org.chromium.chrome.browser.night_mode.GlobalNightModeStateProviderHolder;
import org.chromium.chrome.browser.preferences.BravePref;
import org.chromium.chrome.browser.preferences.BravePreferenceKeys;
Expand Down Expand Up @@ -773,22 +771,22 @@ public void showLikePopDownMenu() {
String rewardsCountryCode = UserPrefs.get(Profile.getLastUsedRegularProfile())
.getString(BravePref.DECLARED_GEO);
if (mPopupView != null && PackageUtils.isFirstInstall(mActivity)
&& ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS)
&& mBraveRewardsNativeWorker.IsSupported()
&& BraveRewardsHelper.shouldShowBraveRewardsOnboardingModal()
&& !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(
Profile.getLastUsedRegularProfile())) {
showBraveRewardsOnboardingModal();
BraveRewardsHelper.updateBraveRewardsAppOpenCount();
} else if (mPopupView != null && !PackageUtils.isFirstInstall(mActivity)
&& ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS)
&& mBraveRewardsNativeWorker.IsSupported()
&& BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile())
&& TextUtils.isEmpty(rewardsCountryCode)) {
mBraveRewardsNativeWorker.getAvailableCountries();
}
}

private void checkForRewardsOnboarding() {
if (mPopupView != null && ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS)
if (mPopupView != null && mBraveRewardsNativeWorker.IsSupported()
&& (BraveRewardsHelper.shouldShowBraveRewardsOnboardingOnce()
|| BraveRewardsHelper.shouldShowDeclareGeoModal())) {
if (BraveRewardsHelper.shouldShowBraveRewardsOnboardingOnce()) {
Expand Down Expand Up @@ -1154,8 +1152,7 @@ public void onClick(View view) {
if (mBraveRewardsOnboardingView != null) {
mBraveRewardsOnboardingView.setVisibility(View.GONE);

if (mPopupView != null
&& ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS)
if (mPopupView != null && mBraveRewardsNativeWorker.IsSupported()
&& BraveRewardsHelper.shouldShowBraveRewardsOnboardingModal()
&& !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(
Profile.getLastUsedRegularProfile())) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,8 @@ public void onCreate(Bundle savedInstanceState) {
removePreferenceIfPresent(PREF_UI_THEME);
}

if (!ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS)) {
mBraveRewardsNativeWorker = BraveRewardsNativeWorker.getInstance();
if (mBraveRewardsNativeWorker == null || !mBraveRewardsNativeWorker.IsSupported()) {
removePreferenceIfPresent(PREF_SHOW_BRAVE_REWARDS_ICON);
}
}
Expand Down Expand Up @@ -129,7 +130,6 @@ public void onActivityCreated(Bundle savedInstanceState) {

@Override
public void onStart() {
mBraveRewardsNativeWorker = BraveRewardsNativeWorker.getInstance();
if (mBraveRewardsNativeWorker != null) {
mBraveRewardsNativeWorker.AddObserver(this);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import org.chromium.chrome.browser.BraveConfig;
import org.chromium.chrome.browser.BraveFeatureUtil;
import org.chromium.chrome.browser.BraveRelaunchUtils;
import org.chromium.chrome.browser.BraveRewardsNativeWorker;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.homepage.settings.BraveHomepageSettings;
import org.chromium.chrome.browser.ntp_background_images.NTPBackgroundImagesBridge;
Expand Down Expand Up @@ -148,8 +149,9 @@ private void updateBravePreferences() {
// rearanges programmatically the order for the prefs from Brave and Chromium
rearrangePreferenceOrders();

if (!ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS) ||
BravePrefServiceBridge.getInstance().getSafetynetCheckFailed()) {
BraveRewardsNativeWorker braveRewardsNativeWorker = BraveRewardsNativeWorker.getInstance();
if (braveRewardsNativeWorker == null || !braveRewardsNativeWorker.IsSupported()
|| BravePrefServiceBridge.getInstance().getSafetynetCheckFailed()) {
removePreferenceIfPresent(PREF_BRAVE_REWARDS);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,10 @@
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;

import org.chromium.base.BraveFeatureList;
import org.chromium.base.ContextUtils;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.BraveRewardsNativeWorker;
import org.chromium.chrome.browser.ChromeTabbedActivity;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.preferences.BravePrefServiceBridge;
import org.chromium.chrome.browser.settings.developer.BraveRewardsDebugPreferences;

Expand Down Expand Up @@ -53,7 +52,8 @@ public void onCreatePreferences(Bundle bundle, String s) {
@Override
public void onResume() {
super.onResume();
if (!ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS)
BraveRewardsNativeWorker braveRewardsNativeWorker = BraveRewardsNativeWorker.getInstance();
if (braveRewardsNativeWorker == null || !braveRewardsNativeWorker.IsSupported()
|| BravePrefServiceBridge.getInstance().getSafetynetCheckFailed()) {
if (getPreferenceScreen() == null) return;
Preference braveRewardsDebugPreference =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@
import androidx.core.content.res.ResourcesCompat;

import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.BraveFeatureList;
import org.chromium.base.BraveReflectionUtil;
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
Expand All @@ -75,7 +74,6 @@
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;
import org.chromium.chrome.browser.lifecycle.ConfigurationChangedObserver;
import org.chromium.chrome.browser.local_database.BraveStatsTable;
import org.chromium.chrome.browser.local_database.DatabaseHelper;
Expand Down Expand Up @@ -375,7 +373,8 @@ protected void onNativeLibraryReady() {
mBraveShieldsContentSettings.addObserver(mBraveShieldsContentSettingsObserver);

SharedPreferences sharedPreferences = ContextUtils.getAppSharedPreferences();
if (ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS)
mBraveRewardsNativeWorker = BraveRewardsNativeWorker.getInstance();
if (mBraveRewardsNativeWorker != null && mBraveRewardsNativeWorker.IsSupported()
&& !BravePrefServiceBridge.getInstance().getSafetynetCheckFailed()
&& sharedPreferences.getBoolean(
AppearancePreferences.PREF_SHOW_BRAVE_REWARDS_ICON, true)
Expand All @@ -387,7 +386,6 @@ protected void onNativeLibraryReady() {
!(mRewardsLayout != null && mRewardsLayout.getVisibility() == View.VISIBLE));
mShieldsLayout.setVisibility(View.VISIBLE);
}
mBraveRewardsNativeWorker = BraveRewardsNativeWorker.getInstance();
if (mBraveRewardsNativeWorker != null) {
mBraveRewardsNativeWorker.AddObserver(this);
mBraveRewardsNativeWorker.AddPublisherObserver(this);
Expand Down Expand Up @@ -482,7 +480,8 @@ public void onDidFinishNavigationInPrimaryMainFrame(
&& !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(
Profile.getLastUsedRegularProfile())
&& BraveRewardsHelper.shouldShowBraveRewardsOnboardingModal()
&& ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS)) {
&& mBraveRewardsNativeWorker != null
&& mBraveRewardsNativeWorker.IsSupported()) {
showBraveRewardsOnboardingModal();
BraveRewardsHelper.updateBraveRewardsAppOpenCount();
}
Expand Down Expand Up @@ -980,7 +979,7 @@ private boolean checkForRewardsOnboarding() {
return PackageUtils.isFirstInstall(getContext())
&& !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(
Profile.getLastUsedRegularProfile())
&& ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS)
&& mBraveRewardsNativeWorker != null && mBraveRewardsNativeWorker.IsSupported()
&& !OnboardingPrefManager.getInstance().isOnboardingShown();
}

Expand Down Expand Up @@ -1126,8 +1125,8 @@ private void updateBraveShieldsButtonState(Tab tab) {
if (isIncognito()) {
mRewardsLayout.setVisibility(View.GONE);
updateShieldsLayoutBackground(true);
} else if (isNativeLibraryReady()
&& ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS)
} else if (isNativeLibraryReady() && mBraveRewardsNativeWorker != null
&& mBraveRewardsNativeWorker.IsSupported()
&& !BravePrefServiceBridge.getInstance().getSafetynetCheckFailed()
&& sharedPreferences.getBoolean(
AppearancePreferences.PREF_SHOW_BRAVE_REWARDS_ICON, true)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,10 @@

import androidx.annotation.NonNull;

import org.chromium.base.BraveFeatureList;
import org.chromium.base.Callback;
import org.chromium.base.Log;
import org.chromium.base.task.PostTask;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.BraveRewardsNativeWorker;
import org.chromium.chrome.browser.preferences.BravePrefServiceBridge;
import org.chromium.chrome.browser.util.SafetyNetCheck;
import org.chromium.chrome.browser.util.TabUtils;
Expand Down Expand Up @@ -42,7 +41,10 @@ protected void onHandleWork(@NonNull Intent intent) {
new BrowserStartupController.StartupCallback() {
@Override
public void onSuccess() {
if (ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS)
BraveRewardsNativeWorker braveRewardsNativeWorker =
BraveRewardsNativeWorker.getInstance();
if (braveRewardsNativeWorker != null
&& braveRewardsNativeWorker.IsSupported()
&& BravePrefServiceBridge.getInstance()
.getSafetynetCheckFailed()) {
Callback<Boolean> callback = value -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,8 @@
import com.android.billingclient.api.SkuDetails;
import com.android.billingclient.api.SkuDetailsParams;

import org.chromium.base.BraveFeatureList;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.BraveRewardsNativeWorker;
import org.chromium.chrome.browser.vpn.utils.BraveVpnPrefUtils;
import org.chromium.chrome.browser.vpn.utils.BraveVpnUtils;
import org.chromium.ui.widget.Toast;
Expand Down Expand Up @@ -98,8 +97,10 @@ public boolean isSubscriptionSupported() {
if (mBillingClient != null) {
BillingResult result =
mBillingClient.isFeatureSupported(BillingClient.FeatureType.SUBSCRIPTIONS);
BraveRewardsNativeWorker braveRewardsNativeWorker =
BraveRewardsNativeWorker.getInstance();
return (result.getResponseCode() == BillingClient.BillingResponseCode.OK
&& ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS));
&& braveRewardsNativeWorker != null && braveRewardsNativeWorker.IsSupported());
}
return false;
}
Expand Down
Loading

0 comments on commit 140ab5d

Please sign in to comment.