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. * *

* The lifecycle events in this class are as follows: *

* * 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. *

* * @param The type of resource the target can display. */ public interface Target extends LifecycleListener { /** * A lifecycle callback that is called when a load is started. * *

* 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). *

* *

* 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. *

* * @param placeholder The placeholder drawable to optionally show, or null. */ void onLoadStarted(Drawable placeholder); /** * A lifecycle callback that is called when a load fails. * *

* Note - This may be called before {@link #onLoadStarted(android.graphics.drawable.Drawable)} if the model * object is null. *

* * @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 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(); }