From 30a88aa09d43cbbfbb454339bf0e61f56e53488c Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Mon, 30 Jan 2017 14:13:29 +0100 Subject: [PATCH] fix challenge leaving --- .../habitrpg/android/habitica/HabitDatabase.java | 2 +- .../social/challenges/ChallengeListFragment.java | 5 +++++ .../habitrpgwrapper/lib/models/HabitRPGUser.java | 13 +++++++++---- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/HabitDatabase.java b/Habitica/src/main/java/com/habitrpg/android/habitica/HabitDatabase.java index 6382f94d3..5c5ee61a4 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/HabitDatabase.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/HabitDatabase.java @@ -7,5 +7,5 @@ public class HabitDatabase { public static final String NAME = "Habitica"; - public static final int VERSION = 31; + public static final int VERSION = 32; } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeListFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeListFragment.java index 1965df1c0..eae9104d5 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeListFragment.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeListFragment.java @@ -68,6 +68,8 @@ public class ChallengeListFragment extends BaseMainFragment implements SwipeRefr if (userChallengesHash.contains(challenge.id) && challenge.name != null && !challenge.name.isEmpty()) { challenge.user_id = this.user.getId(); userChallenges.add(challenge); + } else { + challenge.user_id = null; } challenge.async().save(); @@ -153,6 +155,9 @@ public class ChallengeListFragment extends BaseMainFragment implements SwipeRefr } private void setChallengeEntries(List challenges) { + if (swipeRefreshEmptyLayout == null || swipeRefreshLayout == null) { + return; + } if (viewUserChallengesOnly && challenges.size() == 0) { swipeRefreshEmptyLayout.setVisibility(View.VISIBLE); swipeRefreshLayout.setVisibility(View.GONE); diff --git a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/HabitRPGUser.java b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/HabitRPGUser.java index 1b3dc5b86..6d9e56c48 100644 --- a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/HabitRPGUser.java +++ b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/HabitRPGUser.java @@ -17,6 +17,7 @@ import com.raizlabs.android.dbflow.sql.builder.Condition; import com.raizlabs.android.dbflow.sql.language.Select; import com.raizlabs.android.dbflow.structure.BaseModel; +import android.database.sqlite.SQLiteException; import android.text.TextUtils; import java.util.ArrayList; @@ -118,10 +119,14 @@ public class HabitRPGUser extends BaseModel { @OneToMany(methods = {OneToMany.Method.SAVE, OneToMany.Method.DELETE}, variableName = "challengeList") public List getChallengeList() { if (challengeList == null) { - challengeList = new Select() - .from(Challenge.class) - .where(Condition.column("user_id").eq(this.id)) - .queryList(); + try { + challengeList = new Select() + .from(Challenge.class) + .where(Condition.column("user_id").eq(this.id)) + .queryList(); + } catch (SQLiteException exception) { + challengeList = new ArrayList<>(); + } } return challengeList; }