diff --git a/BraveShared/Preferences.swift b/BraveShared/Preferences.swift index 81f57f992..c887d7551 100644 --- a/BraveShared/Preferences.swift +++ b/BraveShared/Preferences.swift @@ -91,6 +91,7 @@ extension Preferences { public final class Rewards { public static let myFirstAdShown = Option(key: "rewards.ads.my-first-ad-shown", default: false) public static let hideRewardsIcon = Option(key: "rewards.hide-rewards-icon", default: false) + public static let panelOpened = Option(key: "rewards.rewards-panel-opened", default: false) public enum EnvironmentOverride: Int, CaseIterable { case none diff --git a/Client/Frontend/Browser/BrowserViewController/BVC+Rewards.swift b/Client/Frontend/Browser/BrowserViewController/BVC+Rewards.swift index fc72601b1..190f2314e 100644 --- a/Client/Frontend/Browser/BrowserViewController/BVC+Rewards.swift +++ b/Client/Frontend/Browser/BrowserViewController/BVC+Rewards.swift @@ -57,9 +57,13 @@ extension BrowserViewController { let isVerifiedBadgeVisible = self.publisher?.status == .verified || self.publisher?.status == .connected self.topToolbar.locationView.rewardsButton.isVerified = isVerifiedBadgeVisible self.topToolbar.locationView.rewardsButton.notificationCount = self.rewards?.ledger.notifications.count ?? 0 + self.topToolbar.locationView.rewardsButton.forceShowBadge = !Preferences.Rewards.panelOpened.value } func showBraveRewardsPanel() { + Preferences.Rewards.panelOpened.value = true + updateRewardsButtonState() + if UIDevice.current.userInterfaceIdiom != .pad && UIApplication.shared.statusBarOrientation.isLandscape { let value = UIInterfaceOrientation.portrait.rawValue UIDevice.current.setValue(value, forKey: "orientation") diff --git a/Client/Frontend/Browser/Toolbars/UrlBar/RewardsButton.swift b/Client/Frontend/Browser/Toolbars/UrlBar/RewardsButton.swift index 73b10418b..3fbd6daaa 100644 --- a/Client/Frontend/Browser/Toolbars/UrlBar/RewardsButton.swift +++ b/Client/Frontend/Browser/Toolbars/UrlBar/RewardsButton.swift @@ -16,6 +16,10 @@ class RewardsButton: UIButton { didSet { updateView() } } + var forceShowBadge = false { + didSet { updateView() } + } + private let notificationsBadgeView = UIView().then { $0.backgroundColor = BraveUX.BraveOrange $0.frame = CGRect(x: 19, y: 5, width: 12, height: 12) @@ -49,7 +53,7 @@ class RewardsButton: UIButton { setImage(#imageLiteral(resourceName: "brave_rewards_button_enabled"), for: .normal) - if notificationCount > 0 { + if notificationCount > 0 || forceShowBadge { notificationsBadgeView.isHidden = false } else if isVerified { checkmarkView.isHidden = false