chromium/ios/chrome/browser/bring_android_tabs/ui_bundled/tab_list_from_android_table_view_item.h

// Copyright 2023 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_BRING_ANDROID_TABS_UI_BUNDLED_TAB_LIST_FROM_ANDROID_TABLE_VIEW_ITEM_H_
#define IOS_CHROME_BROWSER_BRING_ANDROID_TABS_UI_BUNDLED_TAB_LIST_FROM_ANDROID_TABLE_VIEW_ITEM_H_

#import <UIKit/UIKit.h>

#import "ios/chrome/browser/shared/ui/table_view/cells/table_view_cell.h"
#import "ios/chrome/browser/shared/ui/table_view/cells/table_view_item.h"

@class CrURL;
@class FaviconView;

// TabListFromAndroidTableViewItem contains the model data for a
// TabListFromAndroidTableViewCell.
@interface TabListFromAndroidTableViewItem : TableViewItem

// The title of the page at `URL`.
@property(nonatomic, readwrite, copy) NSString* title;

// CrURL from which the cell will retrieve a favicon and display the host name.
@property(nonatomic, readwrite, strong) CrURL* URL;

// Identifier to match a TabListFromAndroidTableViewItem with its
// TabListFromAndroidTableViewCell.
@property(nonatomic, readonly) NSString* uniqueIdentifier;

@end

// TabListFromAndroidTableViewCell is used in the Bring Android Tabs prompt.
// Contains a favicon, title, and URL.
@interface TabListFromAndroidTableViewCell : TableViewCell

// The imageview that is displayed on the leading edge of the cell.  This
// contains a favicon composited on top of an off-white background.
@property(nonatomic, readwrite, strong) FaviconView* faviconView;

// The cell title.
@property(nonatomic, readonly, strong) UILabel* titleLabel;

// The host URL associated with this cell.
@property(nonatomic, readonly, strong) UILabel* URLLabel;

// Unique identifier that matches with one TabListFromAndroidTableViewItem.
@property(nonatomic, strong) NSString* cellUniqueIdentifier;

@end

#endif  // IOS_CHROME_BROWSER_BRING_ANDROID_TABS_UI_BUNDLED_TAB_LIST_FROM_ANDROID_TABLE_VIEW_ITEM_H_