blob: fe7f9a674e090b90b851aa8de293f7071cfcfc26 [file] [log] [blame]
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.components.browser_ui.widget.image_tiles;
import android.content.Context;
import org.chromium.base.Callback;
import org.chromium.components.browser_ui.widget.image_tiles.ImageTileCoordinator.TileVisualsProvider;
/**
* Factory to create an {@link ImageTileCoordinator} instance.
* The {@link ImageTileCoordinator} is a generic widget that can display a list of images inside a
* carousel. For using this widget,
* - Create a {@link ImageTileCoordinator}.
* - Call {@link ImageTileCoordinator#setTiles(List)} with a list of {@link ImageTile}s to be
* shown.
* - Implement {@link TileVisualsProvider} to provide thumbnails for the images.
* - Define click handlers to be invoked when the tiles are clicked.
*/
public class ImageTileCoordinatorFactory {
/**
* Creates a {@link ImageTileCoordinator}.
* @param context The context associated with the current activity.
* @param tileClickCallback A callback to be invoked when a tile is clicked.
* @return A {@link ImageTileCoordinator}.
*/
public static ImageTileCoordinator create(Context context, TileConfig config,
Callback<ImageTile> tileClickCallback, TileVisualsProvider tileVisualsProvider) {
return new TileCoordinatorImpl(context, config, tileClickCallback, tileVisualsProvider);
}
}