diff --git a/android/brave_java_resources.gni b/android/brave_java_resources.gni
index ca7de4f7a2f1..53578e60e441 100644
--- a/android/brave_java_resources.gni
+++ b/android/brave_java_resources.gni
@@ -76,6 +76,7 @@ brave_java_resources = [
"java/res/drawable/brave_stats_radio_button_selected.xml",
"java/res/drawable/brave_stats_radio_group_bg.xml",
"java/res/drawable/ic_phone.xml",
+ "java/res/drawable/ic_help_filled.xml",
"java/res/drawable-hdpi/check.png",
"java/res/drawable-hdpi/btn_bookmark.png",
"java/res/drawable-hdpi/arrow_forward.png",
diff --git a/android/java/org/chromium/chrome/browser/BraveActivity.java b/android/java/org/chromium/chrome/browser/BraveActivity.java
index 5fdcf2d13a53..d091c6c3f7cd 100644
--- a/android/java/org/chromium/chrome/browser/BraveActivity.java
+++ b/android/java/org/chromium/chrome/browser/BraveActivity.java
@@ -331,6 +331,14 @@ public void showOnboarding() {
transaction.commit();
}
+ public void hideRewardsOnboardingIcon() {
+ BraveToolbarLayout layout = (BraveToolbarLayout)findViewById(R.id.toolbar);
+ assert layout != null;
+ if (layout != null) {
+ layout.hideRewardsOnboardingIcon();
+ }
+ }
+
private void createNotificationChannel() {
Context context = ContextUtils.getApplicationContext();
// Create the NotificationChannel, but only on API 26+ because
diff --git a/android/java/org/chromium/chrome/browser/notifications/BraveOnboardingNotification.java b/android/java/org/chromium/chrome/browser/notifications/BraveOnboardingNotification.java
index 2add1c5ce90c..bdca4a893f8f 100644
--- a/android/java/org/chromium/chrome/browser/notifications/BraveOnboardingNotification.java
+++ b/android/java/org/chromium/chrome/browser/notifications/BraveOnboardingNotification.java
@@ -18,10 +18,13 @@
import org.chromium.chrome.browser.notifications.BraveAdsNotificationBuilder;
import org.chromium.chrome.browser.notifications.NotificationBuilderBase;
import org.chromium.chrome.browser.notifications.NotificationUmaTracker;
+import org.chromium.chrome.browser.notifications.retention.RetentionNotificationUtil;
+import org.chromium.chrome.browser.notifications.retention.RetentionNotificationPublisher;
import org.chromium.components.browser_ui.notifications.ChromeNotification;
import org.chromium.components.browser_ui.notifications.NotificationManagerProxyImpl;
import org.chromium.components.browser_ui.notifications.NotificationMetadata;
import org.chromium.components.browser_ui.notifications.PendingIntentProvider;
+import org.chromium.chrome.browser.BraveActivity;
import java.util.Locale;
@@ -74,13 +77,19 @@ private static PendingIntentProvider getDeepLinkIntent(Context context) {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
+ BraveActivity braveActivity = BraveActivity.getBraveActivity();
if (action != null && action.equals(DEEP_LINK)) {
- Intent webIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(getNotificationUrl()));
- webIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- webIntent.setPackage(context.getPackageName());
- context.startActivity(webIntent);
+ if (braveActivity != null) {
+ braveActivity.openRewardsPanel();
+ } else {
+ intent.putExtra(RetentionNotificationUtil.NOTIFICATION_TYPE, RetentionNotificationUtil.DAY_10);
+ RetentionNotificationPublisher.backgroundNotificationAction(context, intent);
+ }
} else {
showOnboardingNotification(context);
+ if (braveActivity != null) {
+ braveActivity.hideRewardsOnboardingIcon();
+ }
}
}
diff --git a/android/java/org/chromium/chrome/browser/notifications/retention/RetentionNotificationPublisher.java b/android/java/org/chromium/chrome/browser/notifications/retention/RetentionNotificationPublisher.java
index 2ebc0fc8d536..c2876f8ff1a1 100644
--- a/android/java/org/chromium/chrome/browser/notifications/retention/RetentionNotificationPublisher.java
+++ b/android/java/org/chromium/chrome/browser/notifications/retention/RetentionNotificationPublisher.java
@@ -77,7 +77,7 @@ private void createNotification(Context context, Intent intent) {
notificationManager.notify(retentionNotification.getNotificationId(), notification);
}
- private void backgroundNotificationAction(Context context, Intent intent) {
+ public static void backgroundNotificationAction(Context context, Intent intent) {
String notificationType = intent.getStringExtra(RetentionNotificationUtil.NOTIFICATION_TYPE);
if (ApplicationStatus.hasVisibleActivities()) {
return;
diff --git a/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java b/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java
index bff1ff13f362..5d0ac671cb14 100644
--- a/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java
+++ b/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java
@@ -20,6 +20,7 @@
import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.TextView;
+import android.widget.ImageView;
import android.widget.PopupWindow;
import android.util.Pair;
@@ -108,6 +109,7 @@ public abstract class BraveToolbarLayout extends ToolbarLayout implements OnClic
private BraveShieldsContentSettings mBraveShieldsContentSettings;
private BraveShieldsContentSettingsObserver mBraveShieldsContentSettingsObserver;
private TextView mBraveRewardsNotificationsCount;
+ private ImageView mBraveRewardsOnboardingIcon;
private boolean mShieldsLayoutIsColorBackground;
private int mCurrentToolbarColor;
@@ -149,6 +151,7 @@ protected void onFinishInflate() {
mShieldsLayout = (FrameLayout) findViewById(R.id.brave_shields_button_layout);
mRewardsLayout = (FrameLayout) findViewById(R.id.brave_rewards_button_layout);
mBraveRewardsNotificationsCount = (TextView) findViewById(R.id.br_notifications_count);
+ mBraveRewardsOnboardingIcon = findViewById(R.id.br_rewards_onboarding_icon);
mBraveShieldsButton = (ImageButton) findViewById(R.id.brave_shields_button);
mBraveRewardsButton = (ImageButton) findViewById(R.id.brave_rewards_button);
mHomeButton = (HomeButton) findViewById(R.id.home_button);
@@ -390,6 +393,19 @@ protected void onPostExecute(Void result) {
} .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
+ public void hideRewardsOnboardingIcon() {
+ if (mBraveRewardsOnboardingIcon != null) {
+ mBraveRewardsOnboardingIcon.setVisibility(View.GONE);
+ }
+ if (mBraveRewardsNotificationsCount != null) {
+ mBraveRewardsNotificationsCount.setVisibility(View.GONE);
+ }
+ SharedPreferences sharedPref = ContextUtils.getAppSharedPreferences();
+ SharedPreferences.Editor editor = sharedPref.edit();
+ editor.putBoolean(BraveRewardsPanelPopup.PREF_WAS_TOOLBAR_BAT_LOGO_BUTTON_PRESSED, true);
+ editor.apply();
+ }
+
@Override
public void onClick(View v) {
if (mBraveShieldsHandler == null) {
@@ -400,10 +416,9 @@ public void onClick(View v) {
showShieldsMenu(mBraveShieldsButton);
} else if (mBraveRewardsButton == v && mBraveRewardsButton != null) {
Context context = getContext();
- if ((PackageUtils.isFirstInstall(context)
- || (!PackageUtils.isFirstInstall(context) && !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile())))
- && !OnboardingPrefManager.getInstance().isOnboardingShown()) {
+ if (checkForRewardsOnboarding()) {
OnboardingPrefManager.getInstance().showOnboarding(context);
+ hideRewardsOnboardingIcon();
} else {
if (null != mRewardsPopup) {
return;
@@ -422,6 +437,14 @@ public void onClick(View v) {
}
}
+
+
+ private boolean checkForRewardsOnboarding() {
+ return (ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS) && !BravePrefServiceBridge.getInstance().getBoolean(BravePref.BRAVE_REWARDS_ENABLED))
+ && !BraveAdsNativeHelper.nativeIsBraveAdsEnabled(Profile.getLastUsedRegularProfile())
+ && !OnboardingPrefManager.getInstance().isOnboardingShown();
+ }
+
private void showShieldsMenu(View mBraveShieldsButton) {
Tab currentTab = getToolbarDataProvider().getTab();
if (currentTab == null) {
@@ -719,6 +742,11 @@ public void OnNotificationsCount(int count) {
&& !OnboardingPrefManager.getInstance().isAdsAvailable()) {
mayShowBraveAdsOnboardingDialog();
}
+
+ if (checkForRewardsOnboarding()) {
+ mBraveRewardsOnboardingIcon.setVisibility(View.VISIBLE);
+ mBraveRewardsNotificationsCount.setVisibility(View.GONE);
+ }
}
@Override
diff --git a/android/java/res/drawable/ic_help_filled.xml b/android/java/res/drawable/ic_help_filled.xml
new file mode 100644
index 000000000000..5ab1ddccc5a1
--- /dev/null
+++ b/android/java/res/drawable/ic_help_filled.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/android/java/res/layout/brave_toolbar.xml b/android/java/res/layout/brave_toolbar.xml
index 8b637ac02b4d..802973b7f6fd 100644
--- a/android/java/res/layout/brave_toolbar.xml
+++ b/android/java/res/layout/brave_toolbar.xml
@@ -70,6 +70,18 @@
android:layout_gravity="center"
android:contentDescription="@string/accessibility_toolbar_btn_brave_rewards" />
+
+