Wolves Themes v1.0版本的 MD5 值为:cddc92b47f6b7c4a195c9625507eb51c

以下内容为反编译后的 AvidLoader.java 源代码,内容仅作参考


package com.integralads.avid.library.inmobi;

import android.content.Context;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Handler;
import android.support.annotation.VisibleForTesting;
import com.integralads.avid.library.inmobi.DownloadAvidTask;
import com.integralads.avid.library.inmobi.utils.NetworkUtils;
public class AvidLoader implements DownloadAvidTask.DownloadAvidTaskListener {
    private static final String AVID_URL = "https://mobile-static.adsafeprotected.com/avid-v2.js";
    private static final int DOWNLOAD_ATTEMPT_PERIOD = 2000;
    private static AvidLoader avidLoader = new AvidLoader();
    private DownloadAvidTask activeTask;
    private Context context;
    private AvidLoaderListener listener;
    private TaskRepeater taskRepeater;
    private TaskExecutor taskExecutor = new TaskExecutor();
    private final Runnable avidDownloadRunnable = new Runnable() {
        @Override
        public void run() {
            if (AvidLoader.this.context == null || !NetworkUtils.isNetworkAvailable(AvidLoader.this.context)) {
                AvidLoader.this.repeatLoading();
            } else {
                AvidLoader.this.loadAvidJSFromUrl();
            }
        }
    };

    public interface AvidLoaderListener {
        void onAvidLoaded();
    }

    public static AvidLoader getInstance() {
        return avidLoader;
    }

    public void registerAvidLoader(Context context) {
        this.context = context;
        this.taskRepeater = new TaskRepeater();
        loadAvidJSFromUrl();
    }

    public void unregisterAvidLoader() {
        if (this.taskRepeater != null) {
            this.taskRepeater.cleanup();
            this.taskRepeater = null;
        }
        this.listener = null;
        this.context = null;
    }

    public void setListener(AvidLoaderListener avidLoaderListener) {
        this.listener = avidLoaderListener;
    }

    public AvidLoaderListener getListener() {
        return this.listener;
    }

    public void loadAvidJSFromUrl() {
        if (AvidBridge.isAvidJsReady() || this.activeTask != null) {
            return;
        }
        this.activeTask = new DownloadAvidTask();
        this.activeTask.setListener(this);
        this.taskExecutor.executeTask(this.activeTask);
    }

    public void repeatLoading() {
        if (this.taskRepeater != null) {
            this.taskRepeater.repeatLoading();
        }
    }

    @Override
    public void onLoadAvid(String str) {
        this.activeTask = null;
        AvidBridge.setAvidJs(str);
        if (this.listener != null) {
            this.listener.onAvidLoaded();
        }
    }

    @Override
    public void failedToLoadAvid() {
        this.activeTask = null;
        repeatLoading();
    }

    @VisibleForTesting
    DownloadAvidTask getAsyncTask() {
        return this.activeTask;
    }

    @VisibleForTesting
    TaskRepeater getTaskRepeater() {
        return this.taskRepeater;
    }

    @VisibleForTesting
    void setTaskRepeater(TaskRepeater taskRepeater) {
        this.taskRepeater = taskRepeater;
    }

    @VisibleForTesting
    void setTaskExecutor(TaskExecutor taskExecutor) {
        this.taskExecutor = taskExecutor;
    }

    @VisibleForTesting
    static void setAvidLoaderInstance(AvidLoader avidLoader2) {
        avidLoader = avidLoader2;
    }

    public class TaskExecutor {
        public TaskExecutor() {
        }

        public void executeTask(DownloadAvidTask downloadAvidTask) {
            if (Build.VERSION.SDK_INT >= 11) {
                AvidLoader.this.activeTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, AvidLoader.AVID_URL);
            } else {
                AvidLoader.this.activeTask.execute(AvidLoader.AVID_URL);
            }
        }
    }

    public class TaskRepeater {
        private Handler handler = new Handler();

        public TaskRepeater() {
        }

        public void repeatLoading() {
            this.handler.postDelayed(AvidLoader.this.avidDownloadRunnable, 2000L);
        }

        public void cleanup() {
            this.handler.removeCallbacks(AvidLoader.this.avidDownloadRunnable);
        }
    }
}