package info.justaway; import android.app.Application; import android.content.res.Configuration; import android.graphics.Typeface; import android.os.StrictMode; import info.justaway.model.Relationship; import info.justaway.model.UserIconManager; import info.justaway.settings.BasicSettings; import info.justaway.settings.MuteSettings; import info.justaway.util.ImageUtil; public class JustawayApplication extends Application { private static JustawayApplication sApplication; private static Typeface sFontello; @Override public void onCreate() { super.onCreate(); sApplication = this; // Twitter4J の user stream の shutdown() で NetworkOnMainThreadException が発生してしまうことに対する暫定対応 if (!BuildConfig.DEBUG) { StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().permitAll().build()); } /** * 画像のキャッシュや角丸の設定を行う */ ImageUtil.init(); /** * 設定ファイル読み込み */ MuteSettings.init(); BasicSettings.init(); UserIconManager.warmUpUserIconMap(); Relationship.init(); sFontello = Typeface.createFromAsset(getAssets(), "fontello.ttf"); // 例外発生時の処理を指定(スタックトレースを保存) if (BuildConfig.DEBUG) { Thread.setDefaultUncaughtExceptionHandler(new MyUncaughtExceptionHandler(sApplication)); } } /** * 終了時 * * @see android.app.Application#onTerminate() */ @Override public void onTerminate() { super.onTerminate(); } /** * 空きメモリ逼迫時 * * @see android.app.Application#onLowMemory() */ @Override public void onLowMemory() { super.onLowMemory(); } /** * 実行時において変更できるデバイスの設定時 ( 画面のオリエンテーション、キーボードの使用状態、および言語など ) * https://sites.google.com/a/techdoctranslator.com/jp/android/guide/resources/runtime-changes * * @see android.app.Application#onConfigurationChanged(android.content.res.Configuration) */ @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); } public static JustawayApplication getApplication() { return sApplication; } public static Typeface getFontello() { return sFontello; } }