| // Copyright 2021 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef ASH_QUICK_PAIR_UI_FAST_PAIR_FAST_PAIR_PRESENTER_H_ |
| #define ASH_QUICK_PAIR_UI_FAST_PAIR_FAST_PAIR_PRESENTER_H_ |
| |
| #include "ash/quick_pair/ui/actions.h" |
| #include "base/functional/callback.h" |
| |
| namespace message_center { |
| class MessageCenter; |
| } // namespace message_center |
| |
| namespace ash { |
| namespace quick_pair { |
| |
| class Device; |
| class DeviceMetadata; |
| |
| using DiscoveryCallback = base::RepeatingCallback<void(DiscoveryAction)>; |
| using PairingFailedCallback = |
| base::RepeatingCallback<void(PairingFailedAction)>; |
| using AssociateAccountCallback = |
| base::RepeatingCallback<void(AssociateAccountAction)>; |
| using CompanionAppCallback = base::RepeatingCallback<void(CompanionAppAction)>; |
| |
| class FastPairPresenter { |
| public: |
| virtual void ShowDiscovery(scoped_refptr<Device> device, |
| DiscoveryCallback callback) = 0; |
| virtual void ShowPairing(scoped_refptr<Device> device) = 0; |
| virtual void ShowPairingFailed(scoped_refptr<Device> device, |
| PairingFailedCallback callback) = 0; |
| virtual void ShowAssociateAccount(scoped_refptr<Device> device, |
| AssociateAccountCallback callback) = 0; |
| virtual void ShowInstallCompanionApp(scoped_refptr<Device> device, |
| CompanionAppCallback callback) = 0; |
| virtual void ShowLaunchCompanionApp(scoped_refptr<Device> device, |
| CompanionAppCallback callback) = 0; |
| virtual void RemoveNotifications() = 0; |
| virtual void ExtendNotification() = 0; |
| |
| virtual ~FastPairPresenter() = default; |
| }; |
| |
| } // namespace quick_pair |
| } // namespace ash |
| |
| #endif // ASH_QUICK_PAIR_UI_FAST_PAIR_FAST_PAIR_PRESENTER_H_ |