// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_PROXIMITY_AUTH_NOTIFICATION_CONTROLLER_H
#define COMPONENTS_PROXIMITY_AUTH_NOTIFICATION_CONTROLLER_H

#include <string>

namespace proximity_auth {

// Responsible for displaying all notifications for EasyUnlock.
class NotificationController {
 public:
  NotificationController() {}
  virtual ~NotificationController() {}

  // Shows the notification when EasyUnlock is synced to a new Chromebook.
  virtual void ShowChromebookAddedNotification() = 0;

  // Shows the notification when EasyUnlock is already enabled on a Chromebook,
  // but a different phone is synced as the unlock key.
  virtual void ShowPairingChangeNotification() = 0;

  // Shows the notification after password reauth confirming that the new phone
  // should be used for EasyUnlock from now on.
  virtual void ShowPairingChangeAppliedNotification(
      const std::string& phone_name) = 0;

  // Shows the notification to promote EasyUnlock to the user.
  virtual void ShowPromotionNotification() = 0;
};

}  // namespace proximity_auth

#endif  // COMPONENTS_PROXIMITY_AUTH_NOTIFICATION_CONTROLLER_H
