content: /*
   * Copyright (C) 2015 Actor LLC. <https://actor.im>
   */
  
  package im.actor.core.providers;
  
  import com.google.j2objc.annotations.ObjectiveCName;
  
  import java.util.List;
  
  import im.actor.core.Messenger;
  import im.actor.core.entity.Notification;
  
  /**
   * Provider for notifications support
   */
  public interface NotificationProvider {
      /**
       * Called when message arrive when user is in app (used for play in app sound).
       *
       * @param messenger Messenger object
       */
      @ObjectiveCName("onMessageArriveInAppWithMessenger:")
      void onMessageArriveInApp(Messenger messenger);
  
      /**
       * On background notification
       *
       * @param messenger          Messenger object
       * @param topNotifications   top 10 notifications
       * @param messagesCount      total messages count
       * @param conversationsCount total conversations count
       */
      @ObjectiveCName("onNotificationWithMessenger:withTopNotifications:withMessagesCount:withConversationsCount:")
      void onNotification(Messenger messenger, List<Notification> topNotifications, int messagesCount, int conversationsCount);
  
      /**
       * On Notification panel update
       *
       * @param messenger          Messenger object
       * @param topNotifications   top 10 notifications
       * @param messagesCount      total messages count
       * @param conversationsCount total conversations count
       */
      @ObjectiveCName("onUpdateNotificationWithMessenger:withTopNotifications:withMessagesCount:withConversationsCount:")
      void onUpdateNotification(Messenger messenger, List<Notification> topNotifications, int messagesCount,
                                int conversationsCount);
  
      /**
       * Hide all notifications
       */
      @ObjectiveCName("hideAllNotifications")
      void hideAllNotifications();
  }