From 725081a58766e695e1e5550ee8775fa7757d1c5e Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Wed, 15 Nov 2017 20:30:51 +0100 Subject: [PATCH] fix minor issues --- .../data/implementation/TaskRepositoryImpl.kt | 3 +++ .../implementation/RealmSocialLocalRepository.java | 2 +- .../implementation/RealmTutorialLocalRepository.kt | 13 ++++++++++++- .../ui/fragments/tasks/TaskRecyclerViewFragment.kt | 2 +- .../habitica/ui/fragments/tasks/TasksFragment.kt | 4 +++- .../habitica/ui/views/tasks/TaskFilterDialog.java | 2 +- 6 files changed, 21 insertions(+), 5 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImpl.kt index 18dbad1f2..d6a811794 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImpl.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImpl.kt @@ -69,6 +69,9 @@ class TaskRepositoryImpl(localRepository: TaskLocalRepository, apiClient: ApiCli result.drop = res._tmp.drop } this.localRepository.executeTransaction { + if (!task.isValid) { + return@executeTransaction + } if (task.type != "reward") { task.value = task.value + res.delta if (Task.TYPE_DAILY == task.type || Task.TYPE_TODO == task.type) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmSocialLocalRepository.java b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmSocialLocalRepository.java index 19aead2e0..227517818 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmSocialLocalRepository.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmSocialLocalRepository.java @@ -161,7 +161,7 @@ public class RealmSocialLocalRepository extends RealmBaseLocalRepository impleme public void saveChatMessages(String groupId, List chatMessages) { realm.executeTransaction(realm1 -> realm.insertOrUpdate(chatMessages)); if (groupId != null) { - List existingMessages = realm.where(ChatMessage.class).equalTo("GroupId", groupId).findAll(); + List existingMessages = realm.where(ChatMessage.class).equalTo("groupId", groupId).findAll(); List messagesToRemove = new ArrayList<>(); for (ChatMessage existingMember : existingMessages) { boolean isStillMember = false; diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmTutorialLocalRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmTutorialLocalRepository.kt index 06399a066..039ced0fd 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmTutorialLocalRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmTutorialLocalRepository.kt @@ -13,7 +13,18 @@ class RealmTutorialLocalRepository(realm: Realm) : RealmBaseLocalRepository(real return realm.where(TutorialStep::class.java).equalTo("identifier", key) .findAllAsync() .asObservable() - .filter { realmObject -> realmObject.isLoaded && realmObject.isValid && !realmObject.isEmpty() } + .filter { realmObject -> realmObject.isLoaded && realmObject.isValid } + .map { steps -> + return@map if (steps.isEmpty()) { + val step = TutorialStep() + step.identifier = key + val list = ArrayList() + list.add(step) + list + } else { + steps + } + } .map { steps -> steps.first() } .cast(TutorialStep::class.java) } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt index 618438952..83a8b86d0 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt @@ -254,7 +254,7 @@ open class TaskRecyclerViewFragment : BaseFragment(), View.OnClickListener, Swip refreshLayout.isRefreshing = true userRepository.retrieveUser(true, true) .doOnTerminate { - refreshLayout.isRefreshing = false + refreshLayout?.isRefreshing = false }.subscribe(Action1 { }, RxErrorHandler.handleEmptyError()) } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.kt index 6b86374a0..95b9d59ab 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.kt @@ -160,7 +160,9 @@ class TasksFragment : BaseMainFragment() { if (activePos < viewPager?.adapter?.count ?: 0 - 1 && viewFragmentsDictionary?.get(activePos + 1) != null && viewFragmentsDictionary?.get(activePos + 1)?.recyclerAdapter != null) { viewFragmentsDictionary?.get(activePos + 1)?.recyclerAdapter?.filter() } - activeFragment?.setActiveFilter(activeTaskFilter) + if (activeTaskFilter != null) { + activeFragment?.setActiveFilter(activeTaskFilter) + } taskFilterHelper.tags = activeTags updateFilterIcon() diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/TaskFilterDialog.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/TaskFilterDialog.java index 7a7b7ead7..4f92f9143 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/TaskFilterDialog.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/TaskFilterDialog.java @@ -427,6 +427,6 @@ public class TaskFilterDialog extends AlertDialog implements RadioGroup.OnChecke public interface OnFilterCompletedListener { - void onFilterCompleted(String activeTaskFilter, List activeTags); + void onFilterCompleted(@Nullable String activeTaskFilter, List activeTags); } }