package support.ui.app; import android.app.Application; import android.content.Context; import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.os.Handler; import android.support.annotation.ColorRes; import android.support.annotation.DimenRes; import android.support.annotation.DrawableRes; import android.support.v4.content.ContextCompat; import starter.kit.util.PreferencesHelper; import support.ui.utilities.AppInfo; /** * Created by YuGang Yang on 04 07, 2016. * Copyright 2015-2016 qiji.tech. All rights reserved. */ public class SupportApp extends Application { private static volatile Context sAppContext; private static volatile SupportApp mInstance; private static volatile Handler sAppHandler; private static volatile AppInfo mAppInfo; @Override public void onCreate() { super.onCreate(); initialize(); } @Override public void onTerminate() { super.onTerminate(); sAppContext = null; mInstance = null; sAppHandler = null; mAppInfo = null; } /** * @return applicaton info */ public static AppInfo appInfo() { if (mAppInfo == null) { mAppInfo = new AppInfo(appContext()); } return mAppInfo; } /** * @return application context */ public static Context appContext() { return sAppContext; } /** * @return application resource */ public static Resources appResources() { return appContext().getResources(); } /** * @return Resource dimension value multiplied by the appropriate metric. */ public static float dimen(@DimenRes int dimenRes) { return appResources().getDimension(dimenRes); } public static int color(@ColorRes int colorRes) { return ContextCompat.getColor(appContext(), colorRes); } public static Drawable drawable(@DrawableRes int drawableRes) { return ContextCompat.getDrawable(appContext(), drawableRes); } /** * @return application handler */ public static Handler appHandler() { return sAppHandler; } /** * @return current application instance */ public static SupportApp getInstance() { return mInstance; } private void initialize() { mInstance = this; sAppContext = getApplicationContext(); sAppHandler = new Handler(sAppContext.getMainLooper()); } /** * 更新本地versionCode */ public static void enterApp() { PreferencesHelper.INSTANCE.setVersionCode(appInfo().versionCode); } /** * 是否有版本更新显示引导页 */ public static boolean shouldEnterApp() { return appInfo().versionCode > PreferencesHelper.INSTANCE.getVersionCode(); } }