diff --git a/Habitica/AndroidManifest.xml b/Habitica/AndroidManifest.xml
index 52758b2ef..5c871ba33 100644
--- a/Habitica/AndroidManifest.xml
+++ b/Habitica/AndroidManifest.xml
@@ -162,7 +162,7 @@
android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
-
+
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Habitica/res/layout/skill_task_item_card.xml b/Habitica/res/layout/skill_task_item_card.xml
index 5a7ee1df8..fa3ab126c 100644
--- a/Habitica/res/layout/skill_task_item_card.xml
+++ b/Habitica/res/layout/skill_task_item_card.xml
@@ -1,68 +1,51 @@
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
+
-
+ android:layout_height="wrap_content" />
-
-
-
-
-
-
+
+
+
+
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.java b/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.java
index 65716c89c..0522aba70 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.java
@@ -21,10 +21,11 @@ import com.amplitude.api.Amplitude;
import com.amplitude.api.Identify;
import com.facebook.FacebookSdk;
import com.facebook.drawee.backends.pipeline.Fresco;
+import com.habitrpg.android.habitica.api.HostConfig;
import com.habitrpg.android.habitica.components.AppComponent;
import com.habitrpg.android.habitica.data.ApiClient;
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
-import com.habitrpg.android.habitica.proxy.ifce.CrashlyticsProxy;
+import com.habitrpg.android.habitica.proxy.CrashlyticsProxy;
import com.habitrpg.android.habitica.ui.activities.IntroActivity;
import com.habitrpg.android.habitica.ui.activities.LoginActivity;
import com.squareup.leakcanary.LeakCanary;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaPurchaseVerifier.java b/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaPurchaseVerifier.java
index 6adafef00..66b9e3dfe 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaPurchaseVerifier.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaPurchaseVerifier.java
@@ -11,6 +11,7 @@ import com.habitrpg.android.habitica.helpers.PurchaseTypes;
import com.habitrpg.android.habitica.models.PurchaseValidationRequest;
import com.habitrpg.android.habitica.models.SubscriptionValidationRequest;
import com.habitrpg.android.habitica.models.Transaction;
+import com.habitrpg.android.habitica.models.responses.ErrorResponse;
import com.playseeds.android.sdk.Seeds;
import org.greenrobot.eventbus.EventBus;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/HostConfig.java b/Habitica/src/main/java/com/habitrpg/android/habitica/api/HostConfig.java
similarity index 94%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/HostConfig.java
rename to Habitica/src/main/java/com/habitrpg/android/habitica/api/HostConfig.java
index 66c37f919..e9d810eb3 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/HostConfig.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/api/HostConfig.java
@@ -1,9 +1,12 @@
-package com.habitrpg.android.habitica;
+package com.habitrpg.android.habitica.api;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
+import com.habitrpg.android.habitica.BuildConfig;
+import com.habitrpg.android.habitica.R;
+
/**
* The configuration of the host
* Currently, the Port isn't used at all.
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/components/AppComponent.java b/Habitica/src/main/java/com/habitrpg/android/habitica/components/AppComponent.java
index 9ccf50bc2..e93561973 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/components/AppComponent.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/components/AppComponent.java
@@ -1,7 +1,7 @@
package com.habitrpg.android.habitica.components;
import com.habitrpg.android.habitica.HabiticaBaseApplication;
-import com.habitrpg.android.habitica.NotificationPublisher;
+import com.habitrpg.android.habitica.receivers.NotificationPublisher;
import com.habitrpg.android.habitica.data.ApiClient;
import com.habitrpg.android.habitica.helpers.RemindersManager;
import com.habitrpg.android.habitica.helpers.SoundManager;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.java b/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.java
index 5fe7d8722..6f72720f5 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.java
@@ -2,7 +2,7 @@ package com.habitrpg.android.habitica.data;
import android.support.annotation.Nullable;
-import com.habitrpg.android.habitica.ErrorResponse;
+import com.habitrpg.android.habitica.models.responses.ErrorResponse;
import com.habitrpg.android.habitica.models.AchievementResult;
import com.habitrpg.android.habitica.models.ContentResult;
import com.habitrpg.android.habitica.models.LeaveChallengeBody;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.java b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.java
index f470831ad..1f68e75f4 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.java
@@ -4,16 +4,14 @@ 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.habitrpg.android.habitica.BuildConfig;
-import com.habitrpg.android.habitica.ErrorResponse;
+import com.habitrpg.android.habitica.models.responses.ErrorResponse;
import com.habitrpg.android.habitica.HabiticaApplication;
import com.habitrpg.android.habitica.HabiticaBaseApplication;
-import com.habitrpg.android.habitica.HostConfig;
+import com.habitrpg.android.habitica.api.HostConfig;
import com.habitrpg.android.habitica.R;
import com.habitrpg.android.habitica.data.ApiClient;
import com.habitrpg.android.habitica.database.CheckListItemExcludeStrategy;
@@ -21,7 +19,7 @@ import com.habitrpg.android.habitica.helpers.PopupNotificationsManager;
import com.habitrpg.android.habitica.models.inventory.Equipment;
import com.habitrpg.android.habitica.models.inventory.QuestCollect;
import com.habitrpg.android.habitica.models.user.User;
-import com.habitrpg.android.habitica.proxy.ifce.CrashlyticsProxy;
+import com.habitrpg.android.habitica.proxy.CrashlyticsProxy;
import com.habitrpg.android.habitica.api.ApiService;
import com.habitrpg.android.habitica.api.Server;
import com.habitrpg.android.habitica.models.AchievementResult;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/RemindersManager.java b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/RemindersManager.java
index 1cc0472f5..0ab468eac 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/RemindersManager.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/RemindersManager.java
@@ -14,7 +14,7 @@ import android.widget.TimePicker;
import com.habitrpg.android.habitica.HabiticaBaseApplication;
import com.habitrpg.android.habitica.R;
import com.habitrpg.android.habitica.models.tasks.RemindersItem;
-import com.habitrpg.android.habitica.proxy.ifce.CrashlyticsProxy;
+import com.habitrpg.android.habitica.proxy.CrashlyticsProxy;
import java.text.DateFormat;
import java.text.ParseException;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/RemoteConfigManager.java b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/RemoteConfigManager.java
index 8ca6a7f11..8c50a73fe 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/RemoteConfigManager.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/RemoteConfigManager.java
@@ -2,9 +2,7 @@ package com.habitrpg.android.habitica.helpers;
import android.content.Context;
import android.os.AsyncTask;
-import android.os.Environment;
import android.support.v7.preference.PreferenceManager;
-import android.util.Log;
import org.json.JSONException;
import org.json.JSONObject;
@@ -12,7 +10,6 @@ import org.json.JSONObject;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
@@ -20,8 +17,6 @@ import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
-import bolts.Bolts;
-
/**
* Created by keith holliday on 4/7/2017.
*/
@@ -58,7 +53,7 @@ public class RemoteConfigManager {
}
}
- class DownloadFileFromURL extends AsyncTask {
+ private class DownloadFileFromURL extends AsyncTask {
private String filename = "config.json";
@Override
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskAlarmManager.java b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskAlarmManager.java
index d75335e8c..c70facfe0 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskAlarmManager.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskAlarmManager.java
@@ -9,13 +9,13 @@ import android.os.Build;
import android.support.v7.preference.PreferenceManager;
import com.habitrpg.android.habitica.HabiticaBaseApplication;
-import com.habitrpg.android.habitica.NotificationPublisher;
+import com.habitrpg.android.habitica.receivers.NotificationPublisher;
import com.habitrpg.android.habitica.data.TaskRepository;
import com.habitrpg.android.habitica.events.ReminderDeleteEvent;
import com.habitrpg.android.habitica.models.tasks.RemindersItem;
import com.habitrpg.android.habitica.models.tasks.Task;
import com.habitrpg.android.habitica.modules.AppModule;
-import com.habitrpg.android.habitica.proxy.ifce.CrashlyticsProxy;
+import com.habitrpg.android.habitica.proxy.CrashlyticsProxy;
import com.habitrpg.android.habitica.receivers.TaskReceiver;
import org.greenrobot.eventbus.EventBus;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ErrorResponse.java b/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/ErrorResponse.java
similarity index 90%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/ErrorResponse.java
rename to Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/ErrorResponse.java
index ce03850ee..ab6f9dc34 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ErrorResponse.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/ErrorResponse.java
@@ -1,23 +1,23 @@
-package com.habitrpg.android.habitica;
-
-import com.habitrpg.android.habitica.models.responses.HabiticaError;
-
-import java.util.List;
-
-public class ErrorResponse {
- public String message;
- public List errors;
-
- public String getDisplayMessage() {
- if (errors != null && errors.size() > 0) {
- HabiticaError error = errors.get(0);
- if (error.message != null && error.message.length() > 0) {
- return error.message;
- }
- }
- if (message != null && message.length() > 0) {
- return message;
- }
- return "";
- }
-}
+package com.habitrpg.android.habitica.models.responses;
+
+import com.habitrpg.android.habitica.models.responses.HabiticaError;
+
+import java.util.List;
+
+public class ErrorResponse {
+ public String message;
+ public List errors;
+
+ public String getDisplayMessage() {
+ if (errors != null && errors.size() > 0) {
+ HabiticaError error = errors.get(0);
+ if (error.message != null && error.message.length() > 0) {
+ return error.message;
+ }
+ }
+ if (message != null && message.length() > 0) {
+ return message;
+ }
+ return "";
+ }
+}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/ApiModule.java b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/ApiModule.java
index 5b9160d0c..84bec4fc2 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/ApiModule.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/ApiModule.java
@@ -3,12 +3,12 @@ package com.habitrpg.android.habitica.modules;
import android.content.Context;
import android.content.SharedPreferences;
-import com.habitrpg.android.habitica.HostConfig;
+import com.habitrpg.android.habitica.api.HostConfig;
import com.habitrpg.android.habitica.api.MaintenanceApiService;
import com.habitrpg.android.habitica.data.ApiClient;
import com.habitrpg.android.habitica.data.implementation.ApiClientImpl;
import com.habitrpg.android.habitica.helpers.PopupNotificationsManager;
-import com.habitrpg.android.habitica.proxy.ifce.CrashlyticsProxy;
+import com.habitrpg.android.habitica.proxy.CrashlyticsProxy;
import javax.inject.Singleton;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/DeveloperModule.java b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/DeveloperModule.java
index 696fbe2b0..b3349290a 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/DeveloperModule.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/DeveloperModule.java
@@ -1,8 +1,8 @@
package com.habitrpg.android.habitica.modules;
-import com.habitrpg.android.habitica.proxy.ifce.CrashlyticsProxy;
-import com.habitrpg.android.habitica.proxy.impl.EmptyCrashlyticsProxy;
+import com.habitrpg.android.habitica.proxy.CrashlyticsProxy;
+import com.habitrpg.android.habitica.proxy.implementation.EmptyCrashlyticsProxy;
import javax.inject.Singleton;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/proxy/ifce/CrashlyticsProxy.java b/Habitica/src/main/java/com/habitrpg/android/habitica/proxy/CrashlyticsProxy.java
similarity index 86%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/proxy/ifce/CrashlyticsProxy.java
rename to Habitica/src/main/java/com/habitrpg/android/habitica/proxy/CrashlyticsProxy.java
index febfcea1d..bb4924587 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/proxy/ifce/CrashlyticsProxy.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/proxy/CrashlyticsProxy.java
@@ -1,4 +1,4 @@
-package com.habitrpg.android.habitica.proxy.ifce;
+package com.habitrpg.android.habitica.proxy;
import android.content.Context;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/proxy/impl/EmptyCrashlyticsProxy.java b/Habitica/src/main/java/com/habitrpg/android/habitica/proxy/implementation/EmptyCrashlyticsProxy.java
similarity index 83%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/proxy/impl/EmptyCrashlyticsProxy.java
rename to Habitica/src/main/java/com/habitrpg/android/habitica/proxy/implementation/EmptyCrashlyticsProxy.java
index bf8ac1c82..3e41eae53 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/proxy/impl/EmptyCrashlyticsProxy.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/proxy/implementation/EmptyCrashlyticsProxy.java
@@ -1,9 +1,9 @@
-package com.habitrpg.android.habitica.proxy.impl;
+package com.habitrpg.android.habitica.proxy.implementation;
import android.content.Context;
-import com.habitrpg.android.habitica.proxy.ifce.CrashlyticsProxy;
+import com.habitrpg.android.habitica.proxy.CrashlyticsProxy;
public class EmptyCrashlyticsProxy implements CrashlyticsProxy {
@Override
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/NotificationPublisher.java b/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/NotificationPublisher.java
similarity index 96%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/NotificationPublisher.java
rename to Habitica/src/main/java/com/habitrpg/android/habitica/receivers/NotificationPublisher.java
index 09bdf778c..5890cb29a 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/NotificationPublisher.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/NotificationPublisher.java
@@ -1,103 +1,105 @@
-package com.habitrpg.android.habitica;
-
-import android.annotation.TargetApi;
-import android.app.Notification;
-import android.app.NotificationManager;
-import android.app.PendingIntent;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Build;
-import android.support.v4.content.ContextCompat;
-
-import com.habitrpg.android.habitica.data.TaskRepository;
-import com.habitrpg.android.habitica.helpers.RxErrorHandler;
-import com.habitrpg.android.habitica.helpers.TaskAlarmManager;
-import com.habitrpg.android.habitica.models.tasks.Task;
-import com.habitrpg.android.habitica.modules.AppModule;
-import com.habitrpg.android.habitica.ui.activities.MainActivity;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-
-
-//https://gist.github.com/BrandonSmith/6679223
-public class NotificationPublisher extends BroadcastReceiver {
-
- @Inject
- TaskRepository taskRepository;
- @Inject
- @Named(AppModule.NAMED_USER_ID)
- String userId;
-
- public static String NOTIFICATION_ID = "notification-id";
- public static String CHECK_DAILIES = "check-dailies";
- private Context context;
-
- public void onReceive(Context context, Intent intent) {
- this.context = context;
- if (taskRepository == null) {
- HabiticaApplication.getComponent().inject(this);
- }
-
- boolean check_dailies = intent.getBooleanExtra(CHECK_DAILIES, false);
- Notification notification = getNotification();
- if (check_dailies) {
- taskRepository.getTasks(Task.TYPE_DAILY, userId).subscribe(dailies -> {
- boolean showNotifications = false;
- for (Task task : dailies) {
- if (task.checkIfDue(0)) {
- showNotifications = true;
- break;
- }
- }
- TaskAlarmManager.scheduleDailyReminder(context);
- if (showNotifications) {
- NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
-
- int id = intent.getIntExtra(NOTIFICATION_ID, 0);
- notificationManager.notify(id, notification);
- }
- }, RxErrorHandler.handleEmptyError());
-
- } else {
- NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
-
- int id = intent.getIntExtra(NOTIFICATION_ID, 0);
- notificationManager.notify(id, notification);
- }
- }
-
- @TargetApi(21)
- private Notification getNotification() {
- int currentapiVersion = android.os.Build.VERSION.SDK_INT;
-
- Notification notification;
- Notification.Builder builder = new Notification.Builder(context);
- builder.setContentTitle(context.getString(R.string.app_name));
- builder.setContentText(context.getString(R.string.reminder_title));
- builder.setSmallIcon(R.drawable.ic_gryphon_white);
- Intent notificationIntent = new Intent(context, MainActivity.class);
-
- notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
- | Intent.FLAG_ACTIVITY_SINGLE_TOP);
-
- PendingIntent intent = PendingIntent.getActivity(context, 0,
- notificationIntent, 0);
- builder.setContentIntent(intent);
-
- if (currentapiVersion >= Build.VERSION_CODES.LOLLIPOP) {
- builder.setColor(ContextCompat.getColor(context, R.color.brand_300));
- }
-
- if (currentapiVersion >= Build.VERSION_CODES.JELLY_BEAN) {
- notification = builder.build();
- } else {
- notification = builder.getNotification();
- }
- notification.defaults |= Notification.DEFAULT_LIGHTS;
-
- notification.flags |= Notification.FLAG_AUTO_CANCEL | Notification.FLAG_SHOW_LIGHTS;
- return notification;
- }
-}
+package com.habitrpg.android.habitica.receivers;
+
+import android.annotation.TargetApi;
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Build;
+import android.support.v4.content.ContextCompat;
+
+import com.habitrpg.android.habitica.HabiticaApplication;
+import com.habitrpg.android.habitica.R;
+import com.habitrpg.android.habitica.data.TaskRepository;
+import com.habitrpg.android.habitica.helpers.RxErrorHandler;
+import com.habitrpg.android.habitica.helpers.TaskAlarmManager;
+import com.habitrpg.android.habitica.models.tasks.Task;
+import com.habitrpg.android.habitica.modules.AppModule;
+import com.habitrpg.android.habitica.ui.activities.MainActivity;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+
+//https://gist.github.com/BrandonSmith/6679223
+public class NotificationPublisher extends BroadcastReceiver {
+
+ @Inject
+ TaskRepository taskRepository;
+ @Inject
+ @Named(AppModule.NAMED_USER_ID)
+ String userId;
+
+ public static String NOTIFICATION_ID = "notification-id";
+ public static String CHECK_DAILIES = "check-dailies";
+ private Context context;
+
+ public void onReceive(Context context, Intent intent) {
+ this.context = context;
+ if (taskRepository == null) {
+ HabiticaApplication.getComponent().inject(this);
+ }
+
+ boolean check_dailies = intent.getBooleanExtra(CHECK_DAILIES, false);
+ Notification notification = getNotification();
+ if (check_dailies) {
+ taskRepository.getTasks(Task.TYPE_DAILY, userId).subscribe(dailies -> {
+ boolean showNotifications = false;
+ for (Task task : dailies) {
+ if (task.checkIfDue(0)) {
+ showNotifications = true;
+ break;
+ }
+ }
+ TaskAlarmManager.scheduleDailyReminder(context);
+ if (showNotifications) {
+ NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
+
+ int id = intent.getIntExtra(NOTIFICATION_ID, 0);
+ notificationManager.notify(id, notification);
+ }
+ }, RxErrorHandler.handleEmptyError());
+
+ } else {
+ NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
+
+ int id = intent.getIntExtra(NOTIFICATION_ID, 0);
+ notificationManager.notify(id, notification);
+ }
+ }
+
+ @TargetApi(21)
+ private Notification getNotification() {
+ int currentapiVersion = android.os.Build.VERSION.SDK_INT;
+
+ Notification notification;
+ Notification.Builder builder = new Notification.Builder(context);
+ builder.setContentTitle(context.getString(R.string.app_name));
+ builder.setContentText(context.getString(R.string.reminder_title));
+ builder.setSmallIcon(R.drawable.ic_gryphon_white);
+ Intent notificationIntent = new Intent(context, MainActivity.class);
+
+ notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
+ | Intent.FLAG_ACTIVITY_SINGLE_TOP);
+
+ PendingIntent intent = PendingIntent.getActivity(context, 0,
+ notificationIntent, 0);
+ builder.setContentIntent(intent);
+
+ if (currentapiVersion >= Build.VERSION_CODES.LOLLIPOP) {
+ builder.setColor(ContextCompat.getColor(context, R.color.brand_300));
+ }
+
+ if (currentapiVersion >= Build.VERSION_CODES.JELLY_BEAN) {
+ notification = builder.build();
+ } else {
+ notification = builder.getNotification();
+ }
+ notification.defaults |= Notification.DEFAULT_LIGHTS;
+
+ notification.flags |= Notification.FLAG_AUTO_CANCEL | Notification.FLAG_SHOW_LIGHTS;
+ return notification;
+ }
+}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GemPurchaseActivity.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GemPurchaseActivity.java
index 6372c2a1d..5e9a17a64 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GemPurchaseActivity.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GemPurchaseActivity.java
@@ -15,7 +15,7 @@ import com.habitrpg.android.habitica.HabiticaApplication;
import com.habitrpg.android.habitica.R;
import com.habitrpg.android.habitica.components.AppComponent;
import com.habitrpg.android.habitica.helpers.PurchaseTypes;
-import com.habitrpg.android.habitica.proxy.ifce.CrashlyticsProxy;
+import com.habitrpg.android.habitica.proxy.CrashlyticsProxy;
import com.habitrpg.android.habitica.ui.fragments.GemsPurchaseFragment;
import com.habitrpg.android.habitica.ui.fragments.SubscriptionFragment;
import com.playseeds.android.sdk.Seeds;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/LoginActivity.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/LoginActivity.java
index 2f9511bc3..ef5c45a24 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/LoginActivity.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/LoginActivity.java
@@ -50,7 +50,7 @@ import com.google.android.gms.common.AccountPicker;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.common.Scopes;
import com.habitrpg.android.habitica.BuildConfig;
-import com.habitrpg.android.habitica.HostConfig;
+import com.habitrpg.android.habitica.api.HostConfig;
import com.habitrpg.android.habitica.R;
import com.habitrpg.android.habitica.components.AppComponent;
import com.habitrpg.android.habitica.data.ApiClient;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java
index 92c4a1740..176de02e5 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java
@@ -36,7 +36,7 @@ import android.widget.FrameLayout;
import com.facebook.drawee.view.SimpleDraweeView;
import com.habitrpg.android.habitica.HabiticaApplication;
-import com.habitrpg.android.habitica.HostConfig;
+import com.habitrpg.android.habitica.api.HostConfig;
import com.habitrpg.android.habitica.R;
import com.habitrpg.android.habitica.api.MaintenanceApiService;
import com.habitrpg.android.habitica.components.AppComponent;
@@ -85,7 +85,7 @@ import com.habitrpg.android.habitica.models.tasks.Task;
import com.habitrpg.android.habitica.models.user.Preferences;
import com.habitrpg.android.habitica.models.user.SpecialItems;
import com.habitrpg.android.habitica.models.user.User;
-import com.habitrpg.android.habitica.proxy.ifce.CrashlyticsProxy;
+import com.habitrpg.android.habitica.proxy.CrashlyticsProxy;
import com.habitrpg.android.habitica.ui.AvatarView;
import com.habitrpg.android.habitica.ui.AvatarWithBarsViewModel;
import com.habitrpg.android.habitica.ui.TutorialView;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/PrefsActivity.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/PrefsActivity.java
index acfa2e026..88e4b6399 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/PrefsActivity.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/PrefsActivity.java
@@ -9,7 +9,7 @@ import android.support.v7.preference.PreferenceScreen;
import android.support.v7.widget.Toolbar;
import com.habitrpg.android.habitica.BuildConfig;
-import com.habitrpg.android.habitica.HostConfig;
+import com.habitrpg.android.habitica.api.HostConfig;
import com.habitrpg.android.habitica.R;
import com.habitrpg.android.habitica.components.AppComponent;
import com.habitrpg.android.habitica.ui.fragments.preferences.AccountDetailsFragment;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.java
index 5ebe050ad..5a8618215 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.java
@@ -17,7 +17,7 @@ import android.view.View;
import android.view.Window;
import android.widget.Button;
-import com.habitrpg.android.habitica.HostConfig;
+import com.habitrpg.android.habitica.api.HostConfig;
import com.habitrpg.android.habitica.R;
import com.habitrpg.android.habitica.components.AppComponent;
import com.habitrpg.android.habitica.data.ApiClient;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/BaseTasksRecyclerViewAdapter.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/BaseTasksRecyclerViewAdapter.java
index ff414df98..da74e1f88 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/BaseTasksRecyclerViewAdapter.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/BaseTasksRecyclerViewAdapter.java
@@ -13,7 +13,7 @@ import com.habitrpg.android.habitica.components.AppComponent;
import com.habitrpg.android.habitica.data.TaskRepository;
import com.habitrpg.android.habitica.helpers.TaskFilterHelper;
import com.habitrpg.android.habitica.models.tasks.Task;
-import com.habitrpg.android.habitica.proxy.ifce.CrashlyticsProxy;
+import com.habitrpg.android.habitica.proxy.CrashlyticsProxy;
import com.habitrpg.android.habitica.ui.viewHolders.tasks.BaseTaskViewHolder;
import java.util.ArrayList;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/GemsPurchaseFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/GemsPurchaseFragment.java
index 59bb44ee5..18660865f 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/GemsPurchaseFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/GemsPurchaseFragment.java
@@ -11,7 +11,7 @@ import android.view.ViewGroup;
import com.habitrpg.android.habitica.R;
import com.habitrpg.android.habitica.components.AppComponent;
import com.habitrpg.android.habitica.helpers.PurchaseTypes;
-import com.habitrpg.android.habitica.proxy.ifce.CrashlyticsProxy;
+import com.habitrpg.android.habitica.proxy.CrashlyticsProxy;
import com.habitrpg.android.habitica.ui.GemPurchaseOptionsView;
import com.habitrpg.android.habitica.ui.activities.GemPurchaseActivity;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/SubscriptionFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/SubscriptionFragment.java
index 484c07985..5bdc41c62 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/SubscriptionFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/SubscriptionFragment.java
@@ -18,7 +18,7 @@ import com.habitrpg.android.habitica.events.UserSubscribedEvent;
import com.habitrpg.android.habitica.helpers.PurchaseTypes;
import com.habitrpg.android.habitica.models.user.User;
import com.habitrpg.android.habitica.models.user.SubscriptionPlan;
-import com.habitrpg.android.habitica.proxy.ifce.CrashlyticsProxy;
+import com.habitrpg.android.habitica.proxy.CrashlyticsProxy;
import com.habitrpg.android.habitica.ui.activities.GemPurchaseActivity;
import com.habitrpg.android.habitica.ui.views.subscriptions.SubscriptionDetailsView;
import com.habitrpg.android.habitica.ui.views.subscriptions.SubscriptionOptionView;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarOverviewFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarOverviewFragment.java
index c32340aa5..f64211ee1 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarOverviewFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarOverviewFragment.java
@@ -27,8 +27,6 @@ public class AvatarOverviewFragment extends BaseMainFragment implements AdapterV
@Inject
UserRepository userRepository;
- FragmentAvatarOverviewBinding viewBinding;
-
@BindView(R.id.avatar_size_spinner)
Spinner avatarSizeSpinner;
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/DailiesWidgetProvider.java b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/DailiesWidgetProvider.java
index d52a5be0f..8ec003266 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/DailiesWidgetProvider.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/DailiesWidgetProvider.java
@@ -4,7 +4,7 @@ import android.content.Context;
import com.habitrpg.android.habitica.HabiticaApplication;
import com.habitrpg.android.habitica.HabiticaBaseApplication;
-import com.habitrpg.android.habitica.HostConfig;
+import com.habitrpg.android.habitica.api.HostConfig;
import com.habitrpg.android.habitica.R;
import com.habitrpg.android.habitica.data.ApiClient;
diff --git a/Habitica/src/test/java/com/habitrpg/android/habitica/api/BaseAPITests.java b/Habitica/src/test/java/com/habitrpg/android/habitica/api/BaseAPITests.java
index 937332638..52029d14b 100644
--- a/Habitica/src/test/java/com/habitrpg/android/habitica/api/BaseAPITests.java
+++ b/Habitica/src/test/java/com/habitrpg/android/habitica/api/BaseAPITests.java
@@ -3,10 +3,9 @@ package com.habitrpg.android.habitica.api;
import com.habitrpg.android.habitica.data.implementation.ApiClientImpl;
import com.habitrpg.android.habitica.helpers.PopupNotificationsManager;
-import com.habitrpg.android.habitica.proxy.impl.EmptyCrashlyticsProxy;
+import com.habitrpg.android.habitica.proxy.implementation.EmptyCrashlyticsProxy;
import com.habitrpg.android.habitica.data.ApiClient;
import com.habitrpg.android.habitica.BuildConfig;
-import com.habitrpg.android.habitica.HostConfig;
import com.habitrpg.android.habitica.models.user.User;
import com.habitrpg.android.habitica.models.auth.UserAuthResponse;
diff --git a/Habitica/src/test/java/com/habitrpg/android/habitica/helpers/PopupNotificationsManagerTest.java b/Habitica/src/test/java/com/habitrpg/android/habitica/helpers/PopupNotificationsManagerTest.java
index a3b598fbc..ec1a55cb7 100644
--- a/Habitica/src/test/java/com/habitrpg/android/habitica/helpers/PopupNotificationsManagerTest.java
+++ b/Habitica/src/test/java/com/habitrpg/android/habitica/helpers/PopupNotificationsManagerTest.java
@@ -3,8 +3,8 @@ package com.habitrpg.android.habitica.helpers;
import com.habitrpg.android.habitica.data.implementation.ApiClientImpl;
import com.habitrpg.android.habitica.BuildConfig;
import com.habitrpg.android.habitica.HabiticaApplication;
-import com.habitrpg.android.habitica.HostConfig;
-import com.habitrpg.android.habitica.proxy.impl.EmptyCrashlyticsProxy;
+import com.habitrpg.android.habitica.api.HostConfig;
+import com.habitrpg.android.habitica.proxy.implementation.EmptyCrashlyticsProxy;
import com.habitrpg.android.habitica.data.ApiClient;
import com.habitrpg.android.habitica.models.Notification;
import com.habitrpg.android.habitica.models.notifications.NotificationData;
diff --git a/build.gradle b/build.gradle
index d6dc07752..9703a2dc9 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:2.3.1'
+ classpath 'com.android.tools.build:gradle:2.3.2'
classpath 'com.android.databinding:dataBinder:1.0-rc4'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
classpath 'com.google.gms:google-services:3.0.0'