From e93cf6e0444fe09105f93e4bc5000b4a0dcaace5 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Mon, 10 Jul 2017 19:43:15 +0200 Subject: [PATCH] correct challenge sorting --- Habitica/AndroidManifest.xml | 4 ++-- .../implementation/RealmChallengeLocalRepository.java | 4 ++-- .../android/habitica/models/social/Challenge.java | 3 +++ .../android/habitica/utils/ChallengeDeserializer.java | 8 ++++++++ 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Habitica/AndroidManifest.xml b/Habitica/AndroidManifest.xml index 8f583ead6..5c6b423e4 100644 --- a/Habitica/AndroidManifest.xml +++ b/Habitica/AndroidManifest.xml @@ -2,8 +2,8 @@ diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmChallengeLocalRepository.java b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmChallengeLocalRepository.java index 712160189..bb0f9843f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmChallengeLocalRepository.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmChallengeLocalRepository.java @@ -38,7 +38,7 @@ public class RealmChallengeLocalRepository extends RealmBaseLocalRepository impl public Observable> getChallenges() { return realm.where(Challenge.class) .isNotNull("name") - .findAllSortedAsync("memberCount", Sort.DESCENDING) + .findAllSortedAsync("official", Sort.DESCENDING, "createdAt", Sort.DESCENDING) .asObservable() .filter(RealmResults::isLoaded); } @@ -48,7 +48,7 @@ public class RealmChallengeLocalRepository extends RealmBaseLocalRepository impl return realm.where(Challenge.class) .isNotNull("name") .equalTo("isParticipating", true) - .findAllSortedAsync("memberCount", Sort.DESCENDING) + .findAllSortedAsync("official", Sort.DESCENDING, "createdAt", Sort.DESCENDING) .asObservable() .filter(RealmResults::isLoaded); } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/Challenge.java b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/Challenge.java index 56bade7f0..b6511d59d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/Challenge.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/Challenge.java @@ -4,6 +4,7 @@ import com.google.gson.annotations.SerializedName; import com.habitrpg.android.habitica.models.tasks.TasksOrder; import com.habitrpg.android.habitica.models.user.User; +import java.util.Date; import java.util.HashMap; import io.realm.RealmObject; @@ -33,6 +34,8 @@ public class Challenge extends RealmObject { public String habitList; public String dailyList; public String rewardList; + public Date createdAt; + public Date updatedAt; public Group group; diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/ChallengeDeserializer.java b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/ChallengeDeserializer.java index da34468bb..87e52f9d0 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/ChallengeDeserializer.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/ChallengeDeserializer.java @@ -12,6 +12,7 @@ import com.google.gson.JsonSerializer; import com.habitrpg.android.habitica.models.social.Challenge; import java.lang.reflect.Type; +import java.util.Date; public class ChallengeDeserializer implements JsonDeserializer, JsonSerializer { @Override @@ -59,6 +60,13 @@ public class ChallengeDeserializer implements JsonDeserializer, JsonS } } + if (jsonObject.has("createdAt")) { + challenge.createdAt = context.deserialize(jsonObject.get("createdAt"), Date.class); + } + if (jsonObject.has("updatedAt")) { + challenge.updatedAt = context.deserialize(jsonObject.get("updatedAt"), Date.class); + } + JsonElement groupElement = jsonObject.get("group"); if (groupElement != null && !groupElement.isJsonNull()) {