package com.v7lin.android.env; import java.lang.ref.WeakReference; import java.util.HashMap; import java.util.Map; import com.v7lin.android.env.font.FontFamily; import com.v7lin.android.env.skin.SkinFamily; /** * * * @author v7lin E-mail:v7lin@qq.com */ class EnvResourcesCache { private final Map<String, WeakReference<SkinFamily>> mActiveSkinFamily = new HashMap<String, WeakReference<SkinFamily>>(); private final Map<String, WeakReference<FontFamily>> mActiveFontFamily = new HashMap<String, WeakReference<FontFamily>>(); private EnvResourcesCache() { super(); } public SkinFamily getActiveSkinFamily(String key) { WeakReference<SkinFamily> wr = mActiveSkinFamily.get(key); return wr != null ? wr.get() : null; } public void putActiveSkinFamily(String key, SkinFamily family) { mActiveSkinFamily.put(key, new WeakReference<SkinFamily>(family)); } public void removeActiveSkinFamily(String key) { mActiveSkinFamily.remove(key); } public FontFamily getActiveFontFamily(String key) { WeakReference<FontFamily> wr = mActiveFontFamily.get(key); return wr != null ? wr.get() : null; } public void putActiveFontFamily(String key, FontFamily family) { mActiveFontFamily.put(key, new WeakReference<FontFamily>(family)); } public void removeActiveFontFamily(String key) { mActiveFontFamily.remove(key); } private static class EnvResourcesCacheHolder { public static final EnvResourcesCache INSTANCE = new EnvResourcesCache(); } public static EnvResourcesCache getInstance() { return EnvResourcesCacheHolder.INSTANCE; } }