/*
 * Copyright (c) 2015-present, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 */

package com.facebook.drawee.components;

/**
 * Manages retries for an image.
 */
public class RetryManager {
  private static final int MAX_TAP_TO_RETRY_ATTEMPTS = 4;

  private boolean mTapToRetryEnabled;
  private int mMaxTapToRetryAttempts;
  private int mTapToRetryAttempts;

  public RetryManager() {
    init();
  }

  public static RetryManager newInstance() {
    return new RetryManager();
  }

  /**
   * Initializes component to its initial state.
   */
  public void init() {
    mTapToRetryEnabled = false;
    mMaxTapToRetryAttempts = MAX_TAP_TO_RETRY_ATTEMPTS;
    reset();
  }

  /**
   * Resets component.
   * This will reset the number of attempts.
   */
  public void reset() {
    mTapToRetryAttempts = 0;
  }

  public boolean isTapToRetryEnabled() {
    return mTapToRetryEnabled;
  }

  public void setTapToRetryEnabled(boolean tapToRetryEnabled) {
    mTapToRetryEnabled = tapToRetryEnabled;
  }

  public boolean shouldRetryOnTap() {
    return mTapToRetryEnabled && mTapToRetryAttempts < mMaxTapToRetryAttempts;
  }

  public void notifyTapToRetry() {
    mTapToRetryAttempts++;
  }
}

@@ -1217,32 +1217,159 @@
 ryEnabled;%0A  %7D%0A%0A
+  public void setMaxTapToRetryAttemps(int maxTapToRetryAttemps) %7B%0A    this.mMaxTapToRetryAttempts = maxTapToRetryAttemps;%0A  %7D%0A%0A
   public boolean

Allow to change the number of retry in RetryManager