package com.quickblox.q_municate; import android.content.Context; import android.support.multidex.MultiDexApplication; import com.crashlytics.android.Crashlytics; import com.crashlytics.android.core.CrashlyticsCore; import com.digits.sdk.android.Digits; import com.nostra13.universalimageloader.core.ImageLoader; import com.quickblox.chat.QBChatService; import com.quickblox.core.QBSettings; import com.quickblox.q_municate.utils.StringObfuscator; import com.quickblox.q_municate.utils.image.ImageLoaderUtils; import com.quickblox.q_municate.utils.ActivityLifecycleHandler; import com.quickblox.q_municate.utils.helpers.SharedHelper; import com.quickblox.q_municate_db.managers.DataManager; import com.twitter.sdk.android.core.TwitterAuthConfig; import com.twitter.sdk.android.core.TwitterCore; import io.fabric.sdk.android.Fabric; public class App extends MultiDexApplication { private static App instance; private SharedHelper appSharedHelper; public static App getInstance() { return instance; } @Override public void onCreate() { super.onCreate(); initFabric(); initApplication(); registerActivityLifecycleCallbacks(new ActivityLifecycleHandler()); } private void initFabric(){ Crashlytics crashlyticsKit = new Crashlytics.Builder() .core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()) .build(); TwitterAuthConfig authConfig = new TwitterAuthConfig( StringObfuscator.getTwitterConsumerKey(), StringObfuscator.getTwitterConsumerSecret()); Fabric.with(this, crashlyticsKit, new TwitterCore(authConfig), new Digits.Builder().withTheme(R.style.AppTheme).build()); } private void initApplication() { instance = this; initQb(); initDb(); initImageLoader(this); } private void initQb() { QBChatService.setDebugEnabled(StringObfuscator.getDebugEnabled()); QBSettings.getInstance().init(getApplicationContext(), StringObfuscator.getApplicationId(), StringObfuscator.getAuthKey(), StringObfuscator.getAuthSecret()); QBSettings.getInstance().setAccountKey(StringObfuscator.getAccountKey()); } private void initDb() { DataManager.init(this); } private void initImageLoader(Context context) { ImageLoader.getInstance().init(ImageLoaderUtils.getImageLoaderConfiguration(context)); } public synchronized SharedHelper getAppSharedHelper() { return appSharedHelper == null ? appSharedHelper = new SharedHelper(this) : appSharedHelper; } }