diff --git a/Habitica/config/checkstyle.xml b/Habitica/config/checkstyle.xml
index cd58f6806..1e8975579 100644
--- a/Habitica/config/checkstyle.xml
+++ b/Habitica/config/checkstyle.xml
@@ -237,7 +237,6 @@ Severity: EASY
-
diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml
index b97a3cf53..60c82f274 100644
--- a/Habitica/res/values/strings.xml
+++ b/Habitica/res/values/strings.xml
@@ -491,7 +491,7 @@
by %s
Challenge Details
Leave Challenge
- Are you sure you want to leave the Challenge ā%sā?
+ Are you sure you want to leave the Challenge ā%sā?
Remove tasks
Do you want to remove the tasks?
Remove
diff --git a/Habitica/src/debug/java/com/habitrpg/android/habitica/HabiticaApplication.java b/Habitica/src/debug/java/com/habitrpg/android/habitica/HabiticaApplication.java
index 00537bda4..e6f196d0c 100644
--- a/Habitica/src/debug/java/com/habitrpg/android/habitica/HabiticaApplication.java
+++ b/Habitica/src/debug/java/com/habitrpg/android/habitica/HabiticaApplication.java
@@ -4,8 +4,6 @@ import com.habitrpg.android.habitica.components.AppComponent;
import com.habitrpg.android.habitica.components.DaggerAppComponent;
import com.habitrpg.android.habitica.modules.AppModule;
-import android.content.Context;
-
public class HabiticaApplication extends HabiticaBaseApplication {
@Override
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ApiClientImpl.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ApiClientImpl.java
index 8f09d5547..a01d208ad 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ApiClientImpl.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ApiClientImpl.java
@@ -1,17 +1,19 @@
package com.habitrpg.android.habitica;
+import android.content.Context;
+import android.support.v7.app.AlertDialog;
+
+import com.amplitude.api.Amplitude;
import com.google.gson.ExclusionStrategy;
import com.google.gson.FieldAttributes;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
-
-import com.amplitude.api.Amplitude;
import com.habitrpg.android.habitica.database.CheckListItemExcludeStrategy;
import com.habitrpg.android.habitica.helpers.PopupNotificationsManager;
import com.habitrpg.android.habitica.proxy.ifce.CrashlyticsProxy;
-import com.magicmicky.habitrpgwrapper.lib.api.ApiService;
import com.magicmicky.habitrpgwrapper.lib.api.ApiClient;
+import com.magicmicky.habitrpgwrapper.lib.api.ApiService;
import com.magicmicky.habitrpgwrapper.lib.api.Server;
import com.magicmicky.habitrpgwrapper.lib.models.AchievementResult;
import com.magicmicky.habitrpgwrapper.lib.models.Challenge;
@@ -26,16 +28,14 @@ import com.magicmicky.habitrpgwrapper.lib.models.LeaveChallengeBody;
import com.magicmicky.habitrpgwrapper.lib.models.PostChatMessageResult;
import com.magicmicky.habitrpgwrapper.lib.models.PurchaseValidationRequest;
import com.magicmicky.habitrpgwrapper.lib.models.PurchaseValidationResult;
+import com.magicmicky.habitrpgwrapper.lib.models.Purchases;
import com.magicmicky.habitrpgwrapper.lib.models.Quest;
import com.magicmicky.habitrpgwrapper.lib.models.Shop;
+import com.magicmicky.habitrpgwrapper.lib.models.Skill;
import com.magicmicky.habitrpgwrapper.lib.models.Status;
import com.magicmicky.habitrpgwrapper.lib.models.SubscriptionValidationRequest;
import com.magicmicky.habitrpgwrapper.lib.models.Tag;
import com.magicmicky.habitrpgwrapper.lib.models.TaskDirectionData;
-import com.magicmicky.habitrpgwrapper.lib.models.responses.BuyResponse;
-import com.magicmicky.habitrpgwrapper.lib.models.responses.HabitResponse;
-import com.magicmicky.habitrpgwrapper.lib.models.Purchases;
-import com.magicmicky.habitrpgwrapper.lib.models.Skill;
import com.magicmicky.habitrpgwrapper.lib.models.TutorialStep;
import com.magicmicky.habitrpgwrapper.lib.models.UserAuth;
import com.magicmicky.habitrpgwrapper.lib.models.UserAuthResponse;
@@ -47,7 +47,9 @@ import com.magicmicky.habitrpgwrapper.lib.models.inventory.HatchingPotion;
import com.magicmicky.habitrpgwrapper.lib.models.inventory.Mount;
import com.magicmicky.habitrpgwrapper.lib.models.inventory.Pet;
import com.magicmicky.habitrpgwrapper.lib.models.inventory.QuestContent;
+import com.magicmicky.habitrpgwrapper.lib.models.responses.BuyResponse;
import com.magicmicky.habitrpgwrapper.lib.models.responses.FeedResponse;
+import com.magicmicky.habitrpgwrapper.lib.models.responses.HabitResponse;
import com.magicmicky.habitrpgwrapper.lib.models.responses.SkillResponse;
import com.magicmicky.habitrpgwrapper.lib.models.responses.UnlockResponse;
import com.magicmicky.habitrpgwrapper.lib.models.tasks.ChecklistItem;
@@ -82,10 +84,6 @@ import com.magicmicky.habitrpgwrapper.lib.utils.TaskTagDeserializer;
import com.magicmicky.habitrpgwrapper.lib.utils.TutorialStepListDeserializer;
import com.raizlabs.android.dbflow.structure.ModelAdapter;
-import android.app.Activity;
-import android.content.Context;
-import android.support.v7.app.AlertDialog;
-
import java.io.IOException;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
@@ -94,7 +92,6 @@ import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Date;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -120,6 +117,7 @@ public class ApiClientImpl implements Action1, ApiClient {
private final GsonConverterFactory gsonConverter;
private final HostConfig hostConfig;
private final Retrofit retrofitAdapter;
+ private final PopupNotificationsManager popupNotificationsManager;
private CrashlyticsProxy crashlyticsProxy;
private Context context;
@@ -127,13 +125,12 @@ public class ApiClientImpl implements Action1, ApiClient {
// I think we don't need the ApiClientImpl anymore we could just use ApiService
private final ApiService apiService;
- final Observable.Transformer apiCallTransformer =
+ private final Observable.Transformer apiCallTransformer =
observable -> ((Observable) observable)
.map(new Func1() {
@Override
public Object call(HabitResponse habitResponse) {
if (habitResponse.notifications != null) {
- PopupNotificationsManager popupNotificationsManager = PopupNotificationsManager.getInstance(com.habitrpg.android.habitica.ApiClientImpl.this, context);
popupNotificationsManager.showNotificationDialog(habitResponse.notifications);
}
return habitResponse.getData();
@@ -147,10 +144,12 @@ public class ApiClientImpl implements Action1, ApiClient {
//private OnHabitsAPIResult mResultListener;
//private HostConfig mConfig;
- public ApiClientImpl(GsonConverterFactory gsonConverter, HostConfig hostConfig, CrashlyticsProxy crashlyticsProxy, Context context) {
+ public ApiClientImpl(GsonConverterFactory gsonConverter, HostConfig hostConfig, CrashlyticsProxy crashlyticsProxy, PopupNotificationsManager popupNotificationsManager, Context context) {
this.gsonConverter = gsonConverter;
this.hostConfig = hostConfig;
this.context = context;
+ this.crashlyticsProxy = crashlyticsProxy;
+ this.popupNotificationsManager = popupNotificationsManager;
HabiticaBaseApplication.getComponent().inject(this);
crashlyticsProxy.setUserIdentifier(this.hostConfig.getUser());
@@ -217,9 +216,9 @@ public class ApiClientImpl implements Action1, ApiClient {
}.getType();
Type questContentListType = new TypeToken>() {
}.getType();
- Type petListType = new TypeToken>() {
+ Type petListType = new TypeToken