Added Android code
[wl-app.git] / Android / app / src / main / java / com / moiseum / wolnelektury / base / WLApplication.java
diff --git a/Android/app/src/main/java/com/moiseum/wolnelektury/base/WLApplication.java b/Android/app/src/main/java/com/moiseum/wolnelektury/base/WLApplication.java
new file mode 100644 (file)
index 0000000..c72915b
--- /dev/null
@@ -0,0 +1,65 @@
+package com.moiseum.wolnelektury.base;
+
+import android.support.multidex.MultiDexApplication;
+
+import com.crashlytics.android.Crashlytics;
+import com.crashlytics.android.core.CrashlyticsCore;
+import com.moiseum.wolnelektury.BuildConfig;
+import com.moiseum.wolnelektury.connection.RestClient;
+import com.moiseum.wolnelektury.storage.BookStorage;
+import com.moiseum.wolnelektury.utils.SharedPreferencesUtils;
+import com.moiseum.wolnelektury.utils.TrackerUtils;
+
+import org.piwik.sdk.Tracker;
+
+import io.fabric.sdk.android.Fabric;
+
+public class WLApplication extends MultiDexApplication {
+
+       private static WLApplication instance;
+       private RestClient restClient;
+       private BookStorage bookStorage;
+       private Tracker tracker;
+       private SharedPreferencesUtils preferences;
+
+       @Override
+       public void onCreate() {
+               super.onCreate();
+               instance = this;
+               bookStorage = new BookStorage(this);
+
+               Crashlytics crashlytics = new Crashlytics.Builder()
+                               .core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
+                               .build();
+               Fabric.with(this, new Crashlytics());
+       }
+
+       public static WLApplication getInstance() {
+               return instance;
+       }
+
+       public RestClient getRestClient() {
+               if (restClient == null) {
+                       restClient = new RestClient(getApplicationContext());
+               }
+               return restClient;
+       }
+
+       public BookStorage getBookStorage() {
+               return bookStorage;
+       }
+
+       public synchronized Tracker getTracker() {
+               if (tracker == null) {
+                       tracker = TrackerUtils.create(this);
+               }
+               return tracker;
+       }
+
+       public SharedPreferencesUtils getPreferences() {
+               if (preferences == null) {
+                       preferences = new SharedPreferencesUtils(this);
+               }
+               return preferences;
+       }
+}