what-the-bank/sources/com/airbnb/lottie/LottieTask.java

166 lines
5.6 KiB
Java
Raw Permalink Normal View History

2024-07-27 18:17:47 +07:00
package com.airbnb.lottie;
import android.os.Handler;
import android.os.Looper;
import com.airbnb.lottie.utils.Logger;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.util.concurrent.FutureTask;
/* loaded from: classes.dex */
public class LottieTask<T> {
public static Executor EXECUTOR = Executors.newCachedThreadPool();
private final Set<LottieListener<Throwable>> failureListeners;
private final Handler handler;
private volatile LottieResult<T> result;
private final Set<LottieListener<T>> successListeners;
public LottieTask(Callable<LottieResult<T>> callable) {
this(callable, false);
}
/* JADX INFO: Access modifiers changed from: package-private */
public LottieTask(Callable<LottieResult<T>> callable, boolean z) {
this.successListeners = new LinkedHashSet(1);
this.failureListeners = new LinkedHashSet(1);
this.handler = new Handler(Looper.getMainLooper());
this.result = null;
if (z) {
try {
setResult(callable.call());
return;
} catch (Throwable th) {
setResult(new LottieResult<>(th));
return;
}
}
EXECUTOR.execute(new LottieFutureTask(this, callable));
}
/* JADX INFO: Access modifiers changed from: private */
public void setResult(LottieResult<T> lottieResult) {
if (this.result != null) {
throw new IllegalStateException("A task may only be set once.");
}
this.result = lottieResult;
notifyListeners();
}
public LottieTask<T> addListener(LottieListener<T> lottieListener) {
synchronized (this) {
LottieResult<T> lottieResult = this.result;
if (lottieResult != null && lottieResult.getValue() != null) {
lottieListener.onResult(lottieResult.getValue());
}
this.successListeners.add(lottieListener);
}
return this;
}
public LottieTask<T> removeListener(LottieListener<T> lottieListener) {
synchronized (this) {
this.successListeners.remove(lottieListener);
}
return this;
}
public LottieTask<T> addFailureListener(LottieListener<Throwable> lottieListener) {
synchronized (this) {
LottieResult<T> lottieResult = this.result;
if (lottieResult != null && lottieResult.getException() != null) {
lottieListener.onResult(lottieResult.getException());
}
this.failureListeners.add(lottieListener);
}
return this;
}
public LottieTask<T> removeFailureListener(LottieListener<Throwable> lottieListener) {
synchronized (this) {
this.failureListeners.remove(lottieListener);
}
return this;
}
private void notifyListeners() {
this.handler.post(new Runnable(this) { // from class: com.airbnb.lottie.LottieTask$$ExternalSyntheticLambda0
public final LottieTask f$0;
@Override // java.lang.Runnable
public final void run() {
this.f$0.m36lambda$notifyListeners$0$comairbnblottieLottieTask();
}
{
this.f$0 = this;
}
});
}
/* JADX INFO: Access modifiers changed from: package-private */
/* renamed from: lambda$notifyListeners$0$com-airbnb-lottie-LottieTask, reason: not valid java name */
public /* synthetic */ void m36lambda$notifyListeners$0$comairbnblottieLottieTask() {
LottieResult<T> lottieResult = this.result;
if (lottieResult == null) {
return;
}
if (lottieResult.getValue() != null) {
notifySuccessListeners(lottieResult.getValue());
} else {
notifyFailureListeners(lottieResult.getException());
}
}
private void notifySuccessListeners(T t) {
synchronized (this) {
Iterator it = new ArrayList(this.successListeners).iterator();
while (it.hasNext()) {
((LottieListener) it.next()).onResult(t);
}
}
}
private void notifyFailureListeners(Throwable th) {
synchronized (this) {
ArrayList arrayList = new ArrayList(this.failureListeners);
if (arrayList.isEmpty()) {
Logger.warning("Lottie encountered an error but no failure listener was added:", th);
return;
}
Iterator it = arrayList.iterator();
while (it.hasNext()) {
((LottieListener) it.next()).onResult(th);
}
}
}
/* loaded from: classes.dex */
class LottieFutureTask extends FutureTask<LottieResult<T>> {
final LottieTask this$0;
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
LottieFutureTask(LottieTask lottieTask, Callable<LottieResult<T>> callable) {
super(callable);
this.this$0 = lottieTask;
}
@Override // java.util.concurrent.FutureTask
protected void done() {
if (isCancelled()) {
return;
}
try {
this.this$0.setResult(get());
} catch (InterruptedException | ExecutionException e) {
this.this$0.setResult(new LottieResult(e));
}
}
}
}