Rabbit-R1/switch port/java/sources/com/airbnb/lottie/LottieTask.java

156 lines
5.4 KiB
Java
Raw Normal View History

2024-05-21 16:08:36 -05: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: classes2.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 LottieResult<T> getResult() {
return this.result;
}
public LottieTask(Callable<LottieResult<T>> callable) {
this(callable, false);
}
public LottieTask(T t) {
this.successListeners = new LinkedHashSet(1);
this.failureListeners = new LinkedHashSet(1);
this.handler = new Handler(Looper.getMainLooper());
this.result = null;
setResult(new LottieResult<>(t));
}
/* 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(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 synchronized LottieTask<T> addListener(LottieListener<T> lottieListener) {
LottieResult<T> lottieResult = this.result;
if (lottieResult != null && lottieResult.getValue() != null) {
lottieListener.onResult(lottieResult.getValue());
}
this.successListeners.add(lottieListener);
return this;
}
public synchronized LottieTask<T> removeListener(LottieListener<T> lottieListener) {
this.successListeners.remove(lottieListener);
return this;
}
public synchronized LottieTask<T> addFailureListener(LottieListener<Throwable> lottieListener) {
LottieResult<T> lottieResult = this.result;
if (lottieResult != null && lottieResult.getException() != null) {
lottieListener.onResult(lottieResult.getException());
}
this.failureListeners.add(lottieListener);
return this;
}
public synchronized LottieTask<T> removeFailureListener(LottieListener<Throwable> lottieListener) {
this.failureListeners.remove(lottieListener);
return this;
}
private void notifyListeners() {
this.handler.post(new Runnable() { // from class: com.airbnb.lottie.LottieTask$$ExternalSyntheticLambda0
@Override // java.lang.Runnable
public final void run() {
LottieTask.this.m5362lambda$notifyListeners$0$comairbnblottieLottieTask();
}
});
}
/* 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 m5362lambda$notifyListeners$0$comairbnblottieLottieTask() {
LottieResult<T> lottieResult = this.result;
if (lottieResult == null) {
return;
}
if (lottieResult.getValue() != null) {
notifySuccessListeners(lottieResult.getValue());
} else {
notifyFailureListeners(lottieResult.getException());
}
}
private synchronized void notifySuccessListeners(T t) {
Iterator it = new ArrayList(this.successListeners).iterator();
while (it.hasNext()) {
((LottieListener) it.next()).onResult(t);
}
}
private synchronized void notifyFailureListeners(Throwable th) {
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: classes2.dex */
private class LottieFutureTask extends FutureTask<LottieResult<T>> {
LottieFutureTask(Callable<LottieResult<T>> callable) {
super(callable);
}
@Override // java.util.concurrent.FutureTask
protected void done() {
if (isCancelled()) {
return;
}
try {
LottieTask.this.setResult(get());
} catch (InterruptedException | ExecutionException e) {
LottieTask.this.setResult(new LottieResult(e));
}
}
}
}