package com.thefinestartist; import android.content.Context; import android.content.res.AssetManager; import android.content.res.Configuration; import android.content.res.Resources; import android.support.annotation.NonNull; import android.util.DisplayMetrics; /** * Base helps to get {@link Context}, {@link Resources}, {@link AssetManager}, {@link Configuration} and {@link DisplayMetrics} in any class. * * @author Leonardo Taehwan Kim */ public class Base { private static Context context; public static void initialize(@NonNull Context context) { Base.context = context; } public static Context getContext() { synchronized (Base.class) { if (Base.context == null) throw new NullPointerException("Call Base.initialize(context) within your Application onCreate() method."); return Base.context.getApplicationContext(); } } public static Resources getResources() { return Base.getContext().getResources(); } public static Resources.Theme getTheme() { return Base.getContext().getTheme(); } public static AssetManager getAssets() { return Base.getContext().getAssets(); } public static Configuration getConfiguration() { return Base.getResources().getConfiguration(); } public static DisplayMetrics getDisplayMetrics() { return Base.getResources().getDisplayMetrics(); } } // TODO: Thread safety // TODO: ripple, bitmap, time, contact list, picture list, video list, connectivity, wake lock, screen lock/off/on, get attributes, cookie, audio // TODO: keystore // TODO: http://jo.centis1504.net/?p=1189 // TODO: Test codes