package com.malmstein.yahnac;
import android.app.Application;
import android.content.Context;
import android.os.AsyncTask;
import android.os.StrictMode;
import com.firebase.client.Firebase;
import com.malmstein.yahnac.injection.DefaultDependenciesFactory;
import com.malmstein.yahnac.injection.Inject;
import com.novoda.notils.logger.simple.Log;
import com.novoda.simplechromecustomtabs.SimpleChromeCustomTabs;
public class HNewsApplication extends Application {
private static final String LOG_TAG = "Yahnac";
private static Context context;
public static Context context() {
return context;
}
private static StrictMode.VmPolicy.Builder newVmPolicyBuilder() {
return new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
.detectLeakedRegistrationObjects()
.penaltyLog();
}
private static StrictMode.ThreadPolicy.Builder newThreadPolicyBuilder() {
return new StrictMode.ThreadPolicy.Builder()
.detectCustomSlowCalls()
.penaltyLog();
}
@Override
public void onCreate() {
super.onCreate();
context = this;
Firebase.setAndroidContext(this);
SimpleChromeCustomTabs.initialize(this);
Inject.using(new DefaultDependenciesFactory(this));
startup();
}
private void startup() {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
Log.SHOW_LOGS = BuildConfig.DEBUG;
Log.TAG = LOG_TAG;
Log.STACK_DEPTH = 6;
StrictModeManager.initializeStrictMode(newVmPolicyBuilder(), newThreadPolicyBuilder());
if (BuildConfig.ENABLE_USAGE_ANALYTICS) {
Inject.usageAnalytics().initTracker(getApplicationContext());
}
return null;
}
}.execute();
}
}