package androidx.loader.content; import android.os.Binder; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.os.Process; import android.util.Log; import java.util.concurrent.BlockingQueue; import java.util.concurrent.Callable; import java.util.concurrent.CancellationException; import java.util.concurrent.ExecutionException; import java.util.concurrent.Executor; import java.util.concurrent.FutureTask; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; /* loaded from: classes2.dex */ abstract class ModernAsyncTask { private static final int CORE_POOL_SIZE = 5; private static final int KEEP_ALIVE = 1; private static final String LOG_TAG = "AsyncTask"; private static final int MAXIMUM_POOL_SIZE = 128; private static final int MESSAGE_POST_PROGRESS = 2; private static final int MESSAGE_POST_RESULT = 1; public static final Executor THREAD_POOL_EXECUTOR; private static volatile Executor sDefaultExecutor; private static InternalHandler sHandler; private static final BlockingQueue sPoolWorkQueue; private static final ThreadFactory sThreadFactory; private final FutureTask mFuture; private final WorkerRunnable mWorker; private volatile Status mStatus = Status.PENDING; final AtomicBoolean mCancelled = new AtomicBoolean(); final AtomicBoolean mTaskInvoked = new AtomicBoolean(); /* loaded from: classes2.dex */ public enum Status { PENDING, RUNNING, FINISHED } public static void setDefaultExecutor(Executor executor) { sDefaultExecutor = executor; } protected abstract Result doInBackground(Params... paramsArr); public final Status getStatus() { return this.mStatus; } protected void onCancelled() { } protected void onPostExecute(Result result) { } protected void onPreExecute() { } protected void onProgressUpdate(Progress... progressArr) { } static { ThreadFactory threadFactory = new ThreadFactory() { // from class: androidx.loader.content.ModernAsyncTask.1 private final AtomicInteger mCount = new AtomicInteger(1); @Override // java.util.concurrent.ThreadFactory public Thread newThread(Runnable runnable) { return new Thread(runnable, "ModernAsyncTask #" + this.mCount.getAndIncrement()); } }; sThreadFactory = threadFactory; LinkedBlockingQueue linkedBlockingQueue = new LinkedBlockingQueue(10); sPoolWorkQueue = linkedBlockingQueue; ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(5, 128, 1L, TimeUnit.SECONDS, linkedBlockingQueue, threadFactory); THREAD_POOL_EXECUTOR = threadPoolExecutor; sDefaultExecutor = threadPoolExecutor; } private static Handler getHandler() { InternalHandler internalHandler; synchronized (ModernAsyncTask.class) { if (sHandler == null) { sHandler = new InternalHandler(); } internalHandler = sHandler; } return internalHandler; } /* JADX INFO: Access modifiers changed from: package-private */ public ModernAsyncTask() { WorkerRunnable workerRunnable = new WorkerRunnable() { // from class: androidx.loader.content.ModernAsyncTask.2 @Override // java.util.concurrent.Callable public Result call() throws Exception { ModernAsyncTask.this.mTaskInvoked.set(true); Result result = null; try { Process.setThreadPriority(10); result = (Result) ModernAsyncTask.this.doInBackground(this.mParams); Binder.flushPendingCommands(); return result; } finally { } } }; this.mWorker = workerRunnable; this.mFuture = new FutureTask(workerRunnable) { // from class: androidx.loader.content.ModernAsyncTask.3 @Override // java.util.concurrent.FutureTask protected void done() { try { ModernAsyncTask.this.postResultIfNotInvoked(get()); } catch (InterruptedException e) { Log.w(ModernAsyncTask.LOG_TAG, e); } catch (CancellationException unused) { ModernAsyncTask.this.postResultIfNotInvoked(null); } catch (ExecutionException e2) { throw new RuntimeException("An error occurred while executing doInBackground()", e2.getCause()); } catch (Throwable th) { throw new RuntimeException("An error occurred while executing doInBackground()", th); } } }; } void postResultIfNotInvoked(Result result) { if (this.mTaskInvoked.get()) { return; } postResult(result); } Result postResult(Result result) { getHandler().obtainMessage(1, new AsyncTaskResult(this, result)).sendToTarget(); return result; } protected void onCancelled(Result result) { onCancelled(); } public final boolean isCancelled() { return this.mCancelled.get(); } public final boolean cancel(boolean z) { this.mCancelled.set(true); return this.mFuture.cancel(z); } public final Result get() throws InterruptedException, ExecutionException { return this.mFuture.get(); } public final Result get(long j, TimeUnit timeUnit) throws InterruptedException, ExecutionException, TimeoutException { return this.mFuture.get(j, timeUnit); } public final ModernAsyncTask execute(Params... paramsArr) { return executeOnExecutor(sDefaultExecutor, paramsArr); } /* JADX INFO: Access modifiers changed from: package-private */ /* renamed from: androidx.loader.content.ModernAsyncTask$4, reason: invalid class name */ /* loaded from: classes2.dex */ public static /* synthetic */ class AnonymousClass4 { static final /* synthetic */ int[] $SwitchMap$androidx$loader$content$ModernAsyncTask$Status; static { int[] iArr = new int[Status.values().length]; $SwitchMap$androidx$loader$content$ModernAsyncTask$Status = iArr; try { iArr[Status.RUNNING.ordinal()] = 1; } catch (NoSuchFieldError unused) { } try { $SwitchMap$androidx$loader$content$ModernAsyncTask$Status[Status.FINISHED.ordinal()] = 2; } catch (NoSuchFieldError unused2) { } } } public final ModernAsyncTask executeOnExecutor(Executor executor, Params... paramsArr) { if (this.mStatus != Status.PENDING) { int i = AnonymousClass4.$SwitchMap$androidx$loader$content$ModernAsyncTask$Status[this.mStatus.ordinal()]; if (i == 1) { throw new IllegalStateException("Cannot execute task: the task is already running."); } if (i == 2) { throw new IllegalStateException("Cannot execute task: the task has already been executed (a task can be executed only once)"); } throw new IllegalStateException("We should never reach this state"); } this.mStatus = Status.RUNNING; onPreExecute(); this.mWorker.mParams = paramsArr; executor.execute(this.mFuture); return this; } public static void execute(Runnable runnable) { sDefaultExecutor.execute(runnable); } protected final void publishProgress(Progress... progressArr) { if (isCancelled()) { return; } getHandler().obtainMessage(2, new AsyncTaskResult(this, progressArr)).sendToTarget(); } void finish(Result result) { if (isCancelled()) { onCancelled(result); } else { onPostExecute(result); } this.mStatus = Status.FINISHED; } /* JADX INFO: Access modifiers changed from: private */ /* loaded from: classes2.dex */ public static class InternalHandler extends Handler { InternalHandler() { super(Looper.getMainLooper()); } /* JADX WARN: Multi-variable type inference failed */ @Override // android.os.Handler public void handleMessage(Message message) { AsyncTaskResult asyncTaskResult = (AsyncTaskResult) message.obj; int i = message.what; if (i == 1) { asyncTaskResult.mTask.finish(asyncTaskResult.mData[0]); } else { if (i != 2) { return; } asyncTaskResult.mTask.onProgressUpdate(asyncTaskResult.mData); } } } /* JADX INFO: Access modifiers changed from: private */ /* loaded from: classes2.dex */ public static abstract class WorkerRunnable implements Callable { Params[] mParams; WorkerRunnable() { } } /* JADX INFO: Access modifiers changed from: private */ /* loaded from: classes2.dex */ public static class AsyncTaskResult { final Data[] mData; final ModernAsyncTask mTask; AsyncTaskResult(ModernAsyncTask modernAsyncTask, Data... dataArr) { this.mTask = modernAsyncTask; this.mData = dataArr; } } }