x.java

/*
 * Decompiled with CFR 0_132.
 * 
 * Could not load the following classes:
 *  android.app.Application
 *  android.content.Context
 */
package org.xutils;

import android.app.Application;
import android.content.Context;
import java.lang.reflect.Method;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import org.xutils.DbManager;
import org.xutils.HttpManager;
import org.xutils.ImageManager;
import org.xutils.ViewInjector;
import org.xutils.common.TaskController;
import org.xutils.common.task.TaskControllerImpl;
import org.xutils.db.DbManagerImpl;
import org.xutils.http.HttpManagerImpl;
import org.xutils.image.ImageManagerImpl;
import org.xutils.view.ViewInjectorImpl;

public final class x {
    private x() {
    }

    public static boolean isDebug() {
        return debug;
    }

    public static Application app() {
        if (app == null) {
            try {
                Class<?> renderActionClass = Class.forName("com.android.layoutlib.bridge.impl.RenderAction");
                Method method = renderActionClass.getDeclaredMethod("getCurrentContext", new Class[0]);
                Context context = (Context)method.invoke(null, new Object[0]);
                app = new MockApplication(context);
            }
            catch (Throwable ignored) {
                throw new RuntimeException("please invoke x.Ext.init(app) on Application#onCreate() and register your Application in manifest.");
            }
        }
        return app;
    }

    public static TaskController task() {
        return taskController;
    }

    public static HttpManager http() {
        if (httpManager == null) {
            HttpManagerImpl.registerInstance();
        }
        return httpManager;
    }

    public static ImageManager image() {
        if (imageManager == null) {
            ImageManagerImpl.registerInstance();
        }
        return imageManager;
    }

    public static ViewInjector view() {
        if (viewInjector == null) {
            ViewInjectorImpl.registerInstance();
        }
        return viewInjector;
    }

    public static DbManager getDb(DbManager.DaoConfig daoConfig) {
        return DbManagerImpl.getInstance(daoConfig);
    }

    private static class MockApplication
    extends Application {
        public MockApplication(Context baseContext) {
            this.attachBaseContext(baseContext);
        }
    }

    public static class Ext {
        private static boolean debug;
        private static Application app;
        private static TaskController taskController;
        private static HttpManager httpManager;
        private static ImageManager imageManager;
        private static ViewInjector viewInjector;

        private Ext() {
        }

        public static void init(Application app) {
            TaskControllerImpl.registerInstance();
            if (Ext.app == null) {
                Ext.app = app;
            }
        }

        public static void setDebug(boolean debug) {
            Ext.debug = debug;
        }

        public static void setTaskController(TaskController taskController) {
            if (Ext.taskController == null) {
                Ext.taskController = taskController;
            }
        }

        public static void setHttpManager(HttpManager httpManager) {
            Ext.httpManager = httpManager;
        }

        public static void setImageManager(ImageManager imageManager) {
            Ext.imageManager = imageManager;
        }

        public static void setViewInjector(ViewInjector viewInjector) {
            Ext.viewInjector = viewInjector;
        }

        public static void setDefaultHostnameVerifier(HostnameVerifier hostnameVerifier) {
            HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier);
        }
    }

}