Class ThumbnailRequestCoordinator

  • All Implemented Interfaces:
    Request, RequestCoordinator

    public class ThumbnailRequestCoordinator
    extends java.lang.Object
    implements RequestCoordinator, Request
    A coordinator that coordinates two individual Requests that load a small thumbnail version of an image and the full size version of the image at the same time.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void begin()
      Starts first the thumb request and then the full request.
      boolean canNotifyCleared​(Request request)
      Returns true if the Request can clear the Target.
      boolean canNotifyStatusChanged​(Request request)
      Returns true if the request is the request loading the full size image and if neither the full nor the thumbnail image have completed successfully.
      boolean canSetImage​(Request request)
      Returns true if the request is either the request loading the full size image or if the request loading the full size image has not yet completed.
      void clear()
      Prevents any bitmaps being loaded from previous requests, releases any resources held by this request, displays the current placeholder if one was provided, and marks the request as having been cancelled.
      RequestCoordinator getRoot()
      Returns the top most parent RequestCoordinator.
      boolean isAnyResourceSet()
      Returns true if any coordinated Request has successfully completed.
      boolean isCleared()
      Returns true if the request has been cleared.
      boolean isComplete()
      Returns true if the request has completed successfully.
      boolean isEquivalentTo​(Request o)
      Returns true if this Request is equivalent to the given Request (has all of the same options and sizes).
      boolean isRunning()
      Returns true if this request is running and has not completed or failed.
      void onRequestFailed​(Request request)
      Must be called when a Request coordinated by this object fails.
      void onRequestSuccess​(Request request)
      Must be called when a Request coordinated by this object completes successfully.
      void pause()
      Similar to Request.clear() for in progress requests (or portions of a request), but does nothing if the request is already complete.
      void setRequests​(Request full, Request thumb)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ThumbnailRequestCoordinator

        public ThumbnailRequestCoordinator​(java.lang.Object requestLock,
                                           @Nullable
                                           RequestCoordinator parent)
    • Method Detail

      • setRequests

        public void setRequests​(Request full,
                                Request thumb)
      • canSetImage

        public boolean canSetImage​(Request request)
        Returns true if the request is either the request loading the full size image or if the request loading the full size image has not yet completed.
        Specified by:
        canSetImage in interface RequestCoordinator
        Parameters:
        request - The Request requesting permission to display a bitmap.
      • canNotifyStatusChanged

        public boolean canNotifyStatusChanged​(Request request)
        Returns true if the request is the request loading the full size image and if neither the full nor the thumbnail image have completed successfully.
        Specified by:
        canNotifyStatusChanged in interface RequestCoordinator
        Parameters:
        request - The Request requesting permission to display a placeholder..
      • begin

        public void begin()
        Starts first the thumb request and then the full request.
        Specified by:
        begin in interface Request
      • clear

        public void clear()
        Description copied from interface: Request
        Prevents any bitmaps being loaded from previous requests, releases any resources held by this request, displays the current placeholder if one was provided, and marks the request as having been cancelled.
        Specified by:
        clear in interface Request
      • pause

        public void pause()
        Description copied from interface: Request
        Similar to Request.clear() for in progress requests (or portions of a request), but does nothing if the request is already complete.

        Unlike Request.clear(), this method allows implementations to act differently on subparts of a request. For example if a Request has both a thumbnail and a primary request and the thumbnail portion of the request is complete, this method allows only the primary portion of the request to be paused without clearing the previously completed thumbnail portion.

        Specified by:
        pause in interface Request
      • isRunning

        public boolean isRunning()
        Description copied from interface: Request
        Returns true if this request is running and has not completed or failed.
        Specified by:
        isRunning in interface Request
      • isComplete

        public boolean isComplete()
        Description copied from interface: Request
        Returns true if the request has completed successfully.
        Specified by:
        isComplete in interface Request
      • isCleared

        public boolean isCleared()
        Description copied from interface: Request
        Returns true if the request has been cleared.
        Specified by:
        isCleared in interface Request
      • isEquivalentTo

        public boolean isEquivalentTo​(Request o)
        Description copied from interface: Request
        Returns true if this Request is equivalent to the given Request (has all of the same options and sizes).

        This method is identical to Object.equals(Object) except that it's specific to Request subclasses. We do not use Object.equals(Object) directly because we track Requests in collections like Set and it's perfectly legitimate to have two different Request objects for two different Targets (for example). Using a similar but different method let's us selectively compare Request objects to each other when it's useful in specific scenarios.

        Specified by:
        isEquivalentTo in interface Request