/*
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

package com.facebook.drawee.interfaces;

import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import javax.annotation.concurrent.ThreadSafe;

/**
 * Interface that represents a Drawee hierarchy.
 *
 * <p>A hierarchy assembles a tree of Drawables in order to form a dynamically changeable display.
 * This is much more lightweight than the traditional Android way of nesting View objects.
 *
 * <p>Hierarchy details are hidden for the outside world. All that's visible is the top level
 * drawable, which can be put into a view.
 *
 * <p>Example hierarchy:
 *
 * <p>o FadeDrawable (top level drawable) | +--o ScaleTypeDrawable | | | +--o BitmapDrawable | +--o
 * ScaleTypeDrawable | +--o BitmapDrawable
 */
@ThreadSafe
public interface DraweeHierarchy {

  /**
   * Returns the top level drawable in the corresponding hierarchy. Hierarchy should always have the
   * same instance of its top level drawable.
   *
   * @return top level drawable
   */
  Drawable getTopLevelDrawable();

  /** @return bounds of the top drawable */
  Rect getBounds();
}

@@ -766,17 +766,25 @@
  *%0A * %3Cp
-%3E
+re%3E%0A *   
 o FadeDr
@@ -810,18 +810,28 @@
 rawable)
+%0A *   %7C%0A * 
  
-%7C
  +--o Sc
@@ -849,14 +849,26 @@
 able
- %7C %7C
+%0A *   %7C  %7C%0A *  
  %7C
+ 
  +--
@@ -887,18 +887,25 @@
 able
+%0A *   %7C%0A * 
  
-%7C
  +--o
-%0A *
  Sca
@@ -918,18 +918,34 @@
 Drawable
+%0A *      %7C%0A *    
  
-%7C
  +--o Bi
@@ -957,16 +957,26 @@
 rawable%0A
+ * %3C/pre%3E%0A
  */%0A@Thr

fix DraweeHierarchy's java doc