chromium/ios/chrome/browser/ui/reading_list/reading_list_list_item_factory.h

// Copyright 2018 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_UI_READING_LIST_READING_LIST_LIST_ITEM_FACTORY_H_
#define IOS_CHROME_BROWSER_UI_READING_LIST_READING_LIST_LIST_ITEM_FACTORY_H_

#import <UIKit/UIKit.h>

@class ListItem;
class ReadingListEntry;
@protocol ReadingListListItem;
@protocol ReadingListListItemAccessibilityDelegate;
@protocol ReadingListListItemFactoryDelegate;

// Factory object that produces ListItems for Reading List.
@interface ReadingListListItemFactory : NSObject

// The accessibility delegate to use for the created items.
@property(nonatomic, weak) id<ReadingListListItemAccessibilityDelegate>
    accessibilityDelegate;

// Delegate, for the incognito availability.
@property(nonatomic, weak) id<ReadingListListItemFactoryDelegate> delegate;

// Factory method that provides a ListItem for the reading list.
- (ListItem<ReadingListListItem>*)
    cellItemForReadingListEntry:(const ReadingListEntry*)entry
            needsExplicitUpload:(BOOL)needsExplicitUpload;

@end

#endif  // IOS_CHROME_BROWSER_UI_READING_LIST_READING_LIST_LIST_ITEM_FACTORY_H_