mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2024-12-25 00:22:50 -06:00
156 lines
5.4 KiB
Java
156 lines
5.4 KiB
Java
|
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));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|