package com.ogaclejapan.qiitanium; import android.graphics.Typeface; import android.support.annotation.StringRes; import com.crashlytics.android.Crashlytics; import com.norbsoft.typefacehelper.TypefaceCollection; import com.norbsoft.typefacehelper.TypefaceHelper; import com.ogaclejapan.qiitanium.util.CrashlyticsTree; import com.squareup.leakcanary.LeakCanary; import io.fabric.sdk.android.Fabric; import timber.log.Timber; public class AppLifecycleCallbacks implements Qiitanium.LifecycleCallbacks { protected final Qiitanium app; public AppLifecycleCallbacks(Qiitanium app) { this.app = app; } @Override public void onCreate() { setupLeakCanary(); setupFabric(); setupLogger(); setupTypeFace(); } @Override public void onTerminate() { // Do nothing. } protected void setupLeakCanary() { LeakCanary.install(app); } protected void setupFabric() { Fabric.with(app, new Crashlytics()); } protected void setupLogger() { Timber.plant(new CrashlyticsTree()); } protected void setupTypeFace() { TypefaceHelper.init(new TypefaceCollection.Builder() .set(Typeface.NORMAL, createTypefaceFromAsset(R.string.font_ubuntu_regular)) .set(Typeface.BOLD, createTypefaceFromAsset(R.string.font_ubuntu_bold)) .set(Typeface.ITALIC, createTypefaceFromAsset(R.string.font_ubuntu_regular_italic)) .set(Typeface.BOLD_ITALIC, createTypefaceFromAsset(R.string.font_ubuntu_bold_italic)) .create()); } protected Typeface createTypefaceFromAsset(@StringRes int resId) { return Typeface.createFromAsset(app.getAssets(), app.getString(resId)); } }