/*
* 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++;
}
}