package com.facebook.react.jstasks; public class LinearCountingRetryPolicy implements HeadlessJsTaskRetryPolicy { private final int mRetryAttempts; private final int mDelayBetweenAttemptsInMs; public LinearCountingRetryPolicy(int retryAttempts, int delayBetweenAttemptsInMs) { mRetryAttempts = retryAttempts; mDelayBetweenAttemptsInMs = delayBetweenAttemptsInMs; } @Override public boolean canRetry() { return mRetryAttempts > 0; } @Override public int getDelay() { return mDelayBetweenAttemptsInMs; } @Override public HeadlessJsTaskRetryPolicy update() { final int remainingRetryAttempts = mRetryAttempts - 1; if (remainingRetryAttempts > 0) { return new LinearCountingRetryPolicy(remainingRetryAttempts, mDelayBetweenAttemptsInMs); } else { return NoRetryPolicy.INSTANCE; } } @Override public HeadlessJsTaskRetryPolicy copy() { return new LinearCountingRetryPolicy(mRetryAttempts, mDelayBetweenAttemptsInMs); } }