chromium/ios/chrome/browser/badges/ui_bundled/badge_consumer.h

// Copyright 2019 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_BADGES_UI_BUNDLED_BADGE_CONSUMER_H_
#define IOS_CHROME_BROWSER_BADGES_UI_BUNDLED_BADGE_CONSUMER_H_

#import <Foundation/Foundation.h>

@protocol BadgeItem;
class InfoBarIOS;

// Consumer protocol for the view controller that displays badges.
@protocol BadgeConsumer <NSObject>
// Notifies the consumer to reset with `displayedBadgeItem` and
// `fullscreenBadgeItem`.
- (void)setupWithDisplayedBadge:(id<BadgeItem>)displayedBadgeItem
                fullScreenBadge:(id<BadgeItem>)fullscreenBadgeItem;
// Notifies the consumer to update its badges with the configurations of
// `displayedBadgeItem` and `fullscreenBadgeItem` with the use of `infoBar`,
// if required.
- (void)updateDisplayedBadge:(id<BadgeItem>)displayedBadgeItem
             fullScreenBadge:(id<BadgeItem>)fullscreenBadgeItem
                     infoBar:(InfoBarIOS*)infoBar;
// Notifies the consumer whether or not there are unread badges. See
// BadgeStateRead for more information.
- (void)markDisplayedBadgeAsRead:(BOOL)read;

@end

#endif  // IOS_CHROME_BROWSER_BADGES_UI_BUNDLED_BADGE_CONSUMER_H_