blob: 4613206fb1ab1b6e85b5bf72080986147b2ffec6 [file] [log] [blame]
package com.bumptech.glide.request.target;
import android.graphics.drawable.Drawable;
import com.bumptech.glide.manager.LifecycleListener;
import com.bumptech.glide.request.Request;
import com.bumptech.glide.request.animation.GlideAnimation;
/**
* An interface that Glide can load a resource into and notify of relevant lifecycle events during a load.
*
* <p>
* The lifecycle events in this class are as follows:
* <ul>
* <li>onLoadStarted</li>
* <li>onResourceReady</li>
* <li>onLoadCleared</li>
* <li>onLoadFailed</li>
* </ul>
*
* The typical lifecycle is onLoadStarted -> onResourceReady or onLoadFailed -> onLoadCleared. However, there are no
* guarantees. onLoadStarted may not be called if the resource is in memory or if the load will fail because of a
* null model object. onLoadCleared similarly may never be called if the target is never cleared. See the docs for
* the individual methods for details.
* </p>
*
* @param <R> The type of resource the target can display.
*/
public interface Target<R> extends LifecycleListener {
/**
* A lifecycle callback that is called when a load is started.
*
* <p>
* Note - This may not be called for every load, it is possible for example for loads to fail before the load
* starts (when the model object is null).
* </p>
*
* <p>
* Note - This method may be called multiple times before any other lifecycle method is called. Loads can be
* paused and restarted due to lifecycle or connectivity events and each restart may cause a call here.
* </p>
*
* @param placeholder The placeholder drawable to optionally show, or null.
*/
void onLoadStarted(Drawable placeholder);
/**
* A lifecycle callback that is called when a load fails.
*
* <p>
* Note - This may be called before {@link #onLoadStarted(android.graphics.drawable.Drawable)} if the model
* object is null.
* </p>
*
* @param e The exception causing the load to fail, or null if no exception occurred (usually because a decoder
* simply returned null).
* @param errorDrawable The error drawable to optionally show, or null.
*/
void onLoadFailed(Exception e, Drawable errorDrawable);
/**
* The method that will be called when the resource load has finished.
*
* @param resource the loaded resource.
*/
void onResourceReady(R resource, GlideAnimation<? super R> glideAnimation);
/**
* A lifecycle callback that is called when a load is cancelled and its resources are freed.
*
* @param placeholder The placeholder drawable to optionally show, or null.
*/
void onLoadCleared(Drawable placeholder);
/**
* A method to retrieve the size of this target.
*
* @param cb The callback that must be called when the size of the target has been determined
*/
void getSize(SizeReadyCallback cb);
/**
* Sets the current request for this target to retain, should not be called outside of Glide.
*/
void setRequest(Request request);
/**
* Retrieves the current request for this target, should not be called outside of Glide.
*/
Request getRequest();
}