// 
// Decompiled by Procyon v0.6.0
// 

package io.sentry;

import java.util.concurrent.TimeoutException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.ApiStatus;

@ApiStatus.Experimental
public final class NoOpDistributionApi implements IDistributionApi
{
    private static final NoOpDistributionApi instance;
    
    private NoOpDistributionApi() {
    }
    
    public static NoOpDistributionApi getInstance() {
        return NoOpDistributionApi.instance;
    }
    
    @NotNull
    @Override
    public UpdateStatus checkForUpdateBlocking() {
        return UpdateStatus.UpToDate.getInstance();
    }
    
    @NotNull
    @Override
    public Future<UpdateStatus> checkForUpdate() {
        return new CompletedFuture<UpdateStatus>(UpdateStatus.UpToDate.getInstance());
    }
    
    @Override
    public void downloadUpdate(@NotNull final UpdateInfo info) {
    }
    
    @Override
    public boolean isEnabled() {
        return false;
    }
    
    static {
        instance = new NoOpDistributionApi();
    }
    
    private static final class CompletedFuture<T> implements Future<T>
    {
        private final T result;
        
        CompletedFuture(final T result) {
            this.result = result;
        }
        
        @Override
        public boolean cancel(final boolean mayInterruptIfRunning) {
            return false;
        }
        
        @Override
        public boolean isCancelled() {
            return false;
        }
        
        @Override
        public boolean isDone() {
            return true;
        }
        
        @Override
        public T get() throws ExecutionException {
            return this.result;
        }
        
        @Override
        public T get(final long timeout, @NotNull final TimeUnit unit) throws ExecutionException, TimeoutException {
            return this.result;
        }
    }
}
