package sjm.xuitls; import android.app.Application; import android.content.Context; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import sjm.xuitls.DbManager; import sjm.xuitls.common.TaskController; import sjm.xuitls.common.task.TaskControllerImpl; import sjm.xuitls.db.DbManagerImpl; import sjm.xuitls.ex.DbException; import sjm.xuitls.http.HttpManagerImpl; import sjm.xuitls.image.ImageManagerImpl; import sjm.xuitls.view.ViewInjectorImpl; public final class x { private x() { } public static boolean isDebug() { return Ext.debug; } public static Application app() { if (Ext.app == null) { try { Application unused = Ext.app = new MockApplication((Context) Class.forName("com.android.layoutlib.bridge.impl.RenderAction").getDeclaredMethod("getCurrentContext", new Class[0]).invoke(null, new Object[0])); } catch (Throwable unused2) { throw new RuntimeException("please invoke x.Ext.init(app) on Application#onCreate() and register your Application in manifest."); } } return Ext.app; } public static TaskController task() { return Ext.taskController; } public static HttpManager http() { if (Ext.httpManager == null) { HttpManagerImpl.registerInstance(); } return Ext.httpManager; } public static ImageManager image() { if (Ext.imageManager == null) { ImageManagerImpl.registerInstance(); } return Ext.imageManager; } public static ViewInjector view() { if (Ext.viewInjector == null) { ViewInjectorImpl.registerInstance(); } return Ext.viewInjector; } public static DbManager getDb(DbManager.DaoConfig daoConfig) throws DbException { return DbManagerImpl.getInstance(daoConfig); } public static class Ext { private static Application app; private static boolean debug; private static HttpManager httpManager; private static ImageManager imageManager; private static TaskController taskController; private static ViewInjector viewInjector; private Ext() { } public static void init(Application application) { TaskControllerImpl.registerInstance(); if (app == null) { app = application; } } public static void setDebug(boolean z) { debug = z; } public static void setTaskController(TaskController taskController2) { if (taskController == null) { taskController = taskController2; } } public static void setHttpManager(HttpManager httpManager2) { httpManager = httpManager2; } public static void setImageManager(ImageManager imageManager2) { imageManager = imageManager2; } public static void setViewInjector(ViewInjector viewInjector2) { viewInjector = viewInjector2; } public static void setDefaultHostnameVerifier(HostnameVerifier hostnameVerifier) { HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier); } } private static class MockApplication extends Application { public MockApplication(Context context) { attachBaseContext(context); } } }