| /* |
| * Copyright (C) 2013 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.android.camera.filmstrip; |
| |
| import android.view.View; |
| |
| import com.android.camera.data.FilmstripItem; |
| import com.android.camera.data.FilmstripItem.VideoClickedCallback; |
| |
| /** |
| * An interface which defines the interactions between the |
| * {@link FilmstripItem} and the |
| * {@link com.android.camera.widget.FilmstripView}. |
| */ |
| public interface FilmstripDataAdapter { |
| /** |
| * An interface which defines the update reporter used to return to the |
| * {@link com.android.camera.filmstrip.FilmstripController.FilmstripListener}. |
| */ |
| public interface UpdateReporter { |
| /** Checks if the data of dataID is removed. */ |
| public boolean isDataRemoved(int index); |
| |
| /** Checks if the data of dataID is updated. */ |
| public boolean isDataUpdated(int index); |
| } |
| |
| /** |
| * An interface which defines the listener for data events over |
| * {@link FilmstripItem}. Usually |
| * {@link com.android.camera.widget.FilmstripView} itself. |
| */ |
| public interface Listener { |
| /** |
| * Called when the whole data loading is done. There is not any |
| * assumption on the previous data. |
| */ |
| public void onFilmstripItemLoaded(); |
| |
| /** |
| * Called when some of the data is updated. |
| * |
| * @param reporter Use this reporter to know what happened. |
| */ |
| public void onFilmstripItemUpdated(UpdateReporter reporter); |
| |
| /** |
| * Called when a new data item is inserted. |
| * |
| * @param index The ID of the inserted data. |
| * @param item The inserted data. |
| */ |
| public void onFilmstripItemInserted(int index, FilmstripItem item); |
| |
| /** |
| * Called when a data item is removed. |
| * |
| * @param index The ID of the removed data. |
| * @param item The data. |
| */ |
| public void onFilmstripItemRemoved(int index, FilmstripItem item); |
| } |
| |
| /** Returns the total number of image data. */ |
| public int getTotalNumber(); |
| |
| /** |
| * Returns the view to visually present the image data. |
| * |
| * @param recycled A view that can be reused if one is available, or null. |
| * @param index The ID of the image data to be presented. |
| * @return The view representing the image data. Null if unavailable or |
| * the {@code dataID} is out of range. |
| */ |
| public View getView(View recycled, int index, |
| VideoClickedCallback videoClickedCallback); |
| |
| /** Returns a unique identifier for the view created by this data so that the view |
| * can be reused. |
| * |
| * @see android.widget.BaseAdapter#getItemViewType(int) |
| */ |
| public int getItemViewType(int index); |
| |
| /** |
| * Returns the {@link FilmstripItem} specified by the ID. |
| * |
| * @param index The ID of the {@link FilmstripItem}. |
| * @return The specified {@link FilmstripItem}. Null if not available. |
| */ |
| public FilmstripItem getFilmstripItemAt(int index); |
| |
| /** |
| * Suggests the data adapter the maximum possible size of the layout so |
| * the {@link FilmstripDataAdapter} can optimize the view returned for the |
| * {@link FilmstripItem}. |
| * |
| * @param widthPixels Width in pixels of rendered view. |
| * @param heightPixels Height in pixels of rendered view. |
| */ |
| public void suggestViewSizeBound(int widthPixels, int heightPixels); |
| |
| /** |
| * Sets the listener for data events over the ImageData. Replaces the |
| * previous listener if it exists. |
| * |
| * @param listener The listener to use. |
| */ |
| public void setListener(Listener listener); |
| } |