| // Copyright 2025 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef IOS_CHROME_BROWSER_TIPS_NOTIFICATIONS_MODEL_TIPS_NOTIFICATION_PRESENTER_H_ |
| #define IOS_CHROME_BROWSER_TIPS_NOTIFICATIONS_MODEL_TIPS_NOTIFICATION_PRESENTER_H_ |
| |
| #import "base/memory/weak_ptr.h" |
| |
| class Browser; |
| enum class TipsNotificationType; |
| |
| // A class that handles presenting the UI for a Tips Notification. |
| class TipsNotificationPresenter { |
| public: |
| // Presents the UI asynchronously for the given notification `type` using the |
| // given `browser`, after closing other modals and opening an NTP. |
| static void Present(base::WeakPtr<Browser> browser, |
| TipsNotificationType type); |
| |
| private: |
| // Initializes an instance in order to present tips notification UI. |
| explicit TipsNotificationPresenter(Browser* browser); |
| |
| // Presents the UI immediately for the given notification `type` using the |
| // given `browser. |
| static void PresentInternal(base::WeakPtr<Browser> browser, |
| TipsNotificationType type); |
| |
| // Presents the UI immediately for the given notification `type`. |
| void Present(TipsNotificationType type); |
| |
| // Shows the Default Browser promo. |
| void ShowDefaultBrowserPromo(); |
| |
| // Shows the What's New view. |
| void ShowWhatsNew(); |
| |
| // Starts the sign-in flow. |
| void ShowSignin(); |
| |
| // Shows the Set Up List "See More" view. |
| void ShowSetUpListContinuation(); |
| |
| // Shows the Docking promo. |
| void ShowDocking(); |
| |
| // Shows the Omnibox Position promo. |
| void ShowOmniboxPosition(); |
| |
| // Shows the Lens promo. |
| void ShowLensPromo(); |
| |
| // Shows the Enhanced Safe Browsing promo. |
| void ShowEnhancedSafeBrowsingPromo(); |
| |
| // Shows the CPE promo. |
| void ShowCPEPromo(); |
| |
| // Shows the Lens Overlay promo. |
| void ShowLensOverlayPromo(); |
| |
| // Returns true if there are any identities on the device. |
| bool HasIdentitiesOnDevice(); |
| |
| // Starts the trusted Vault key retrieval flow. |
| void StartTrustedVaultKeyRetrievalFlow(); |
| |
| // Contains a non-weak pointer to the browser. |
| raw_ptr<Browser> browser_; |
| }; |
| |
| #endif // IOS_CHROME_BROWSER_TIPS_NOTIFICATIONS_MODEL_TIPS_NOTIFICATION_PRESENTER_H_ |