| // 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_VIEW_CONTROLLER_H_ |
| #define IOS_CHROME_BROWSER_BADGES_UI_BUNDLED_BADGE_VIEW_CONTROLLER_H_ |
| |
| #import <UIKit/UIKit.h> |
| |
| #import "ios/chrome/browser/badges/ui_bundled/badge_consumer.h" |
| #import "ios/chrome/browser/fullscreen/ui_bundled/fullscreen_ui_element.h" |
| |
| @class BadgeButtonFactory; |
| @protocol BadgeViewVisibilityDelegate; |
| @class LayoutGuideCenter; |
| |
| // Manages badges to display that are received through BadgeConsumer. Currently |
| // only displays the newest badge. |
| @interface BadgeViewController |
| : UIViewController <BadgeConsumer, FullscreenUIElement> |
| |
| // The layout guide center to use to reference the displayed badge. |
| @property(nonatomic, strong) LayoutGuideCenter* layoutGuideCenter; |
| |
| // The badge view visibility delegate. |
| @property(nonatomic, weak) id<BadgeViewVisibilityDelegate> visibilityDelegate; |
| |
| // `buttonFactory` must be non-nil. |
| - (instancetype)initWithButtonFactory:(BadgeButtonFactory*)buttonFactory |
| NS_DESIGNATED_INITIALIZER; |
| - (instancetype)initWithNibName:(NSString*)nibNameOrNil |
| bundle:(NSBundle*)nibBundleOrNil NS_UNAVAILABLE; |
| - (instancetype)initWithCoder:(NSCoder*)aDecoder NS_UNAVAILABLE; |
| |
| @end |
| |
| #endif // IOS_CHROME_BROWSER_BADGES_UI_BUNDLED_BADGE_VIEW_CONTROLLER_H_ |