granularity level: instruction

		.class public final Lcom/google/android/datatransport/runtime/retries/Retries;
.super Ljava/lang/Object;
.source "Retries.java"




.method private constructor <init>()V
	.locals 0

	invoke-direct {p0}, Ljava/lang/Object;-><init>()V
	return-void
.end method

.method public static retry(ILjava/lang/Object;Lcom/google/android/datatransport/runtime/retries/Function;Lcom/google/android/datatransport/runtime/retries/RetryStrategy;)Ljava/lang/Object;
	.locals 2
	.annotation system Ldalvik/annotation/Throws;
	value = {
	Ljava/lang/Throwable;
	}
	.end annotation
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"<TInput:",
	"Ljava/lang/Object;",
	"TResult:",
	"Ljava/lang/Object;",
	"TException:",
	"Ljava/lang/Throwable;",
	">(ITTInput;",
	"Lcom/google/android/datatransport/runtime/retries/Function<",
	"TTInput;TTResult;TTException;>;",
	"Lcom/google/android/datatransport/runtime/retries/RetryStrategy<",
	"TTInput;TTResult;>;)TTResult;^TTException;"
	}
	.end annotation

	const/4 v0, 0x1
	if-ge p0, v0, :cond_0
	invoke-interface {p2, p1}, Lcom/google/android/datatransport/runtime/retries/Function;->apply(Ljava/lang/Object;)Ljava/lang/Object;
	move-result-object p0
	return-object p0
	:cond_0
	invoke-interface {p2, p1}, Lcom/google/android/datatransport/runtime/retries/Function;->apply(Ljava/lang/Object;)Ljava/lang/Object;
	move-result-object v1
	invoke-interface {p3, p1, v1}, Lcom/google/android/datatransport/runtime/retries/RetryStrategy;->shouldRetry(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
	move-result-object p1
	if-eqz p1, :cond_1
	add-int/lit8 p0, p0, -0x1
	if-ge p0, v0, :cond_0
	:cond_1
	return-object v1
.end method