From 37e315901174882565aeb0841feaffa909336b10 Mon Sep 17 00:00:00 2001 From: Sujit Acharya Date: Thu, 19 Jan 2023 18:24:59 +0530 Subject: [PATCH] Brave notification permission issue fix --- .../BraveStatsBottomSheetDialogFragment.java | 14 +++++++------ .../BraveNotificationWarningDialog.java | 4 ++-- .../browser/rewards/BraveRewardsPanel.java | 21 ++++++++++--------- .../android/strings/android_brave_strings.grd | 2 +- 4 files changed, 22 insertions(+), 19 deletions(-) diff --git a/android/java/org/chromium/chrome/browser/brave_stats/BraveStatsBottomSheetDialogFragment.java b/android/java/org/chromium/chrome/browser/brave_stats/BraveStatsBottomSheetDialogFragment.java index 1c620977a9c3..2aba1a39449e 100644 --- a/android/java/org/chromium/chrome/browser/brave_stats/BraveStatsBottomSheetDialogFragment.java +++ b/android/java/org/chromium/chrome/browser/brave_stats/BraveStatsBottomSheetDialogFragment.java @@ -211,11 +211,12 @@ public void onRequestPermissionsResult( @Override public void onResume() { super.onResume(); - if (BravePermissionUtils.hasPermission( - getContext(), PermissionConstants.NOTIFICATION_PERMISSION)) { - statsNotificationView.setVisibility(View.GONE); - } else { + if (!BravePermissionUtils.hasPermission( + getContext(), PermissionConstants.NOTIFICATION_PERMISSION) + || BravePermissionUtils.isGeneralNotificationPermissionBlocked(getActivity())) { statsNotificationView.setVisibility(View.VISIBLE); + } else { + statsNotificationView.setVisibility(View.GONE); } } @@ -224,8 +225,9 @@ private void updateNotificationView(View view) { btnDismiss.setOnClickListener(v -> { statsNotificationView.setVisibility(View.GONE); }); View notificationOnButton = view.findViewById(R.id.notification_on_button); notificationOnButton.setOnClickListener(v -> { - if (getActivity().shouldShowRequestPermissionRationale( - PermissionConstants.NOTIFICATION_PERMISSION) + if (BravePermissionUtils.isGeneralNotificationPermissionBlocked(getActivity()) + || getActivity().shouldShowRequestPermissionRationale( + PermissionConstants.NOTIFICATION_PERMISSION) || (!BuildInfo.isAtLeastT() || !BuildInfo.targetsAtLeastT())) { // other than android 13 redirect to // setting page and for android 13 Last time don't allow selected in permission diff --git a/android/java/org/chromium/chrome/browser/notifications/BraveNotificationWarningDialog.java b/android/java/org/chromium/chrome/browser/notifications/BraveNotificationWarningDialog.java index 75063f17741d..39b1bfa21369 100644 --- a/android/java/org/chromium/chrome/browser/notifications/BraveNotificationWarningDialog.java +++ b/android/java/org/chromium/chrome/browser/notifications/BraveNotificationWarningDialog.java @@ -90,12 +90,12 @@ public static boolean shouldShowNotificationWarningDialog(Context context) { return false; } - private static boolean shouldShowRewardWarningDialog(Context context) { + public static boolean shouldShowRewardWarningDialog(Context context) { return BravePermissionUtils.isBraveAdsNotificationPermissionBlocked(context) && isBraveRewardsEnabled(); } - private static boolean shouldShowPrivacyWarningDialog(Context context) { + public static boolean shouldShowPrivacyWarningDialog(Context context) { return BravePermissionUtils.isGeneralNotificationPermissionBlocked(context) && isPrivacyReportsEnabled(); } diff --git a/android/java/org/chromium/chrome/browser/rewards/BraveRewardsPanel.java b/android/java/org/chromium/chrome/browser/rewards/BraveRewardsPanel.java index f26e5d7a89e4..9f71ff6ac122 100644 --- a/android/java/org/chromium/chrome/browser/rewards/BraveRewardsPanel.java +++ b/android/java/org/chromium/chrome/browser/rewards/BraveRewardsPanel.java @@ -947,8 +947,9 @@ public void OnGetCurrentBalanceReport(double[] report) { } private void requestNotificationPermission() { - if (mActivity.shouldShowRequestPermissionRationale( - PermissionConstants.NOTIFICATION_PERMISSION) + if (BravePermissionUtils.isBraveAdsNotificationPermissionBlocked(mAnchorView.getContext()) + || mActivity.shouldShowRequestPermissionRationale( + PermissionConstants.NOTIFICATION_PERMISSION) || (!BuildInfo.isAtLeastT() || !BuildInfo.targetsAtLeastT())) { // other than android 13 redirect to // setting page and for android 13 Last time don't allow selected in permission @@ -1586,16 +1587,16 @@ public void onNothingSelected(AdapterView arg0) {} btnContinue.setOnClickListener((new View.OnClickListener() { @Override public void onClick(View v) { - if (BravePermissionUtils.hasPermission(mAnchorView.getContext(), - PermissionConstants.NOTIFICATION_PERMISSION)) { - if (countrySpinner != null) { - mBraveRewardsNativeWorker.CreateRewardsWallet(sortedCountryMap.get( - countrySpinner.getSelectedItem().toString())); - } - } else { - // else request notification permission + if (!BravePermissionUtils.hasPermission(mAnchorView.getContext(), + PermissionConstants.NOTIFICATION_PERMISSION) + || BravePermissionUtils.isBraveAdsNotificationPermissionBlocked( + mAnchorView.getContext())) { requestNotificationPermission(); } + if (countrySpinner != null) { + mBraveRewardsNativeWorker.CreateRewardsWallet( + sortedCountryMap.get(countrySpinner.getSelectedItem().toString())); + } } })); } diff --git a/browser/ui/android/strings/android_brave_strings.grd b/browser/ui/android/strings/android_brave_strings.grd index a6783a1e3a6d..61b0a18dcfd4 100644 --- a/browser/ui/android/strings/android_brave_strings.grd +++ b/browser/ui/android/strings/android_brave_strings.grd @@ -204,7 +204,7 @@ This file contains all "about" strings. It is set to NOT be translated, in tran Turn notifications back on if you'd like to keep earning BAT and receiving weekly privacy reports. - Turn notifications back on if you'd like to keep earning BAT + Turn notifications back on if you'd like to keep earning BAT. Turn notifications back on if you'd like to keep receiving weekly privacy reports.