package androidx.core.os; import android.os.Handler; import androidx.annotation.NonNull; import androidx.core.util.Preconditions; import java.util.concurrent.Executor; import java.util.concurrent.RejectedExecutionException; public final class ExecutorCompat { public static class HandlerExecutor implements Executor { private final Handler mHandler; public HandlerExecutor(@NonNull Handler handler) { this.mHandler = (Handler) Preconditions.checkNotNull(handler); } @Override // java.util.concurrent.Executor public void execute(@NonNull Runnable runnable) { if (!this.mHandler.post((Runnable) Preconditions.checkNotNull(runnable))) { throw new RejectedExecutionException(this.mHandler + " is shutting down"); } } } private ExecutorCompat() { } @NonNull public static Executor create(@NonNull Handler handler) { return new HandlerExecutor(handler); } }