diff --git a/android/java/org/chromium/chrome/browser/appmenu/BraveAppMenuPropertiesDelegateImpl.java b/android/java/org/chromium/chrome/browser/appmenu/BraveAppMenuPropertiesDelegateImpl.java index 9420404c379..007d6002bd9 100644 --- a/android/java/org/chromium/chrome/browser/appmenu/BraveAppMenuPropertiesDelegateImpl.java +++ b/android/java/org/chromium/chrome/browser/appmenu/BraveAppMenuPropertiesDelegateImpl.java @@ -15,10 +15,13 @@ import org.chromium.base.Log; import org.chromium.base.ObservableSupplier; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; +import org.chromium.chrome.browser.BraveFeatureList; import org.chromium.chrome.browser.bookmarks.BookmarkBridge; +import org.chromium.chrome.browser.ChromeFeatureList; import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; import org.chromium.chrome.browser.multiwindow.MultiWindowModeStateDispatcher; import org.chromium.chrome.browser.notifications.BraveSetDefaultBrowserNotificationService; +import org.chromium.chrome.browser.preferences.BravePrefServiceBridge; import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.toolbar.ToolbarManager; @@ -51,7 +54,10 @@ public class BraveAppMenuPropertiesDelegateImpl extends AppMenuPropertiesDelegat menu.findItem(R.id.help_id).setVisible(false).setEnabled(false); menu.add(Menu.NONE, R.id.set_default_browser, 0, R.string.menu_set_default_browser); - menu.add(Menu.NONE, R.id.brave_rewards_id, 0, R.string.menu_brave_rewards); + if (ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS) && + !BravePrefServiceBridge.getInstance().getSafetynetCheckFailed()) { + menu.add(Menu.NONE, R.id.brave_rewards_id, 0, R.string.menu_brave_rewards); + } menu.add(Menu.NONE, R.id.exit_id, 0, R.string.menu_exit); if (BraveSetDefaultBrowserNotificationService.isBraveSetAsDefaultBrowser(mContext)) { diff --git a/android/java/org/chromium/chrome/browser/preferences/BraveMainPreferencesBase.java b/android/java/org/chromium/chrome/browser/preferences/BraveMainPreferencesBase.java index 2fb3d70cd25..363fbb70cc8 100644 --- a/android/java/org/chromium/chrome/browser/preferences/BraveMainPreferencesBase.java +++ b/android/java/org/chromium/chrome/browser/preferences/BraveMainPreferencesBase.java @@ -18,7 +18,10 @@ import android.util.DisplayMetrics; import android.widget.TextView; import org.chromium.chrome.R; +import org.chromium.chrome.browser.BraveFeatureList; +import org.chromium.chrome.browser.ChromeFeatureList; import org.chromium.chrome.browser.onboarding.OnboardingPrefManager; +import org.chromium.chrome.browser.preferences.BravePrefServiceBridge; import org.chromium.chrome.browser.preferences.privacy.BravePrivacyPreferences; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.components.search_engines.TemplateUrl; @@ -83,6 +86,11 @@ public class BraveMainPreferencesBase extends PreferenceFragmentCompat { updateControlSectionPreferences(); rearrangePreferenceOrders(); + + if (!ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS) || + BravePrefServiceBridge.getInstance().getSafetynetCheckFailed()) { + removePreferenceIfPresent(PREF_BRAVE_REWARDS); + } } /** diff --git a/android/java/org/chromium/chrome/browser/preferences/BravePrefServiceBridge.java b/android/java/org/chromium/chrome/browser/preferences/BravePrefServiceBridge.java index b7ac741821c..81d9ec1d889 100644 --- a/android/java/org/chromium/chrome/browser/preferences/BravePrefServiceBridge.java +++ b/android/java/org/chromium/chrome/browser/preferences/BravePrefServiceBridge.java @@ -109,6 +109,10 @@ public class BravePrefServiceBridge { BravePrefServiceBridgeJni.get().setSafetynetCheckFailed(value); } + public boolean getSafetynetCheckFailed() { + return BravePrefServiceBridgeJni.get().getSafetynetCheckFailed(); + } + @NativeMethods interface Natives { void setHTTPSEEnabled(boolean enabled); @@ -137,5 +141,6 @@ public class BravePrefServiceBridge { String getSyncSeed(); void setSafetynetCheckFailed(boolean value); + boolean getSafetynetCheckFailed(); } } diff --git a/browser/android/preferences/brave_pref_service_bridge.cc b/browser/android/preferences/brave_pref_service_bridge.cc index d4f9772e36c..b72ad4edc7d 100644 --- a/browser/android/preferences/brave_pref_service_bridge.cc +++ b/browser/android/preferences/brave_pref_service_bridge.cc @@ -158,5 +158,9 @@ void JNI_BravePrefServiceBridge_SetSafetynetCheckFailed( GetOriginalProfile()->GetPrefs()->SetBoolean(kSafetynetCheckFailed, value); } +jboolean JNI_BravePrefServiceBridge_GetSafetynetCheckFailed(JNIEnv* env) { + return GetOriginalProfile()->GetPrefs()->GetBoolean(kSafetynetCheckFailed); +} + } // namespace android } // namespace chrome diff --git a/browser/ui/webui/brave_web_ui_controller_factory.cc b/browser/ui/webui/brave_web_ui_controller_factory.cc index 1f5e5888d4c..fece057bdaf 100644 --- a/browser/ui/webui/brave_web_ui_controller_factory.cc +++ b/browser/ui/webui/brave_web_ui_controller_factory.cc @@ -7,10 +7,12 @@ #include +#include "base/feature_list.h" #include "base/memory/ptr_util.h" #include "brave/browser/ui/webui/brave_adblock_ui.h" #include "brave/browser/ui/webui/webcompat_reporter_ui.h" #include "brave/browser/ui/webui/brave_new_tab_ui.h" +#include "brave/common/brave_features.h" #include "brave/common/pref_names.h" #include "brave/common/webui_url_constants.h" #include "brave/components/brave_rewards/browser/buildflags/buildflags.h" @@ -130,9 +132,10 @@ WebUI::TypeID BraveWebUIControllerFactory::GetWebUIType( content::BrowserContext* browser_context, const GURL& url) { #if defined(OS_ANDROID) Profile* profile = Profile::FromBrowserContext(browser_context); - if (profile && + if (!base::FeatureList::IsEnabled(features::kBraveRewards) || + (profile && profile->GetPrefs() && - profile->GetPrefs()->GetBoolean(kSafetynetCheckFailed)) { + profile->GetPrefs()->GetBoolean(kSafetynetCheckFailed))) { return WebUI::kNoWebUI; } #endif // defined(OS_ANDROID)