diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/SocialRepositoryImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/SocialRepositoryImpl.kt index 2e127c94e..72c962354 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/SocialRepositoryImpl.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/SocialRepositoryImpl.kt @@ -124,7 +124,7 @@ class SocialRepositoryImpl(localRepository: SocialLocalRepository, apiClient: Ap } override fun retrieveGroup(id: String): Flowable { - return Flowable.zip(apiClient.getGroup(id).doOnNext { localRepository.save(it) }, retrieveGroupChat(id) + return Flowable.zip(apiClient.getGroup(id).doOnNext { localRepository.saveSyncronous(it) }, retrieveGroupChat(id) .toFlowable(), BiFunction, Group> { group, _ -> group 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 7aa6cdd62..cd7f125d6 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 @@ -119,9 +119,9 @@ class TaskRepositoryImpl(localRepository: TaskLocalRepository, apiClient: ApiCli private fun handleTaskResponse(user: User, res: TaskDirectionData, task: Task, up: Boolean, localDelta: Float) { val userID = user.id val taskID = task.id - this.localRepository.executeTransactionAsync { - val bgTask = it.where(Task::class.java).equalTo("id", taskID).findFirst() ?: return@executeTransactionAsync - val bgUser = it.where(User::class.java).equalTo("id", userID).findFirst() ?: return@executeTransactionAsync + this.localRepository.executeTransaction { + val bgTask = it.where(Task::class.java).equalTo("id", taskID).findFirst() ?: return@executeTransaction + val bgUser = it.where(User::class.java).equalTo("id", userID).findFirst() ?: return@executeTransaction if (bgTask.type != "reward" && (bgTask.value - localDelta) + res.delta != bgTask.value) { bgTask.value = (bgTask.value - localDelta) + res.delta if (Task.TYPE_DAILY == bgTask.type || Task.TYPE_TODO == bgTask.type) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmContentLocalRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmContentLocalRepository.kt index 53b1065b6..36665ba91 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmContentLocalRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmContentLocalRepository.kt @@ -12,7 +12,7 @@ import io.realm.Realm open class RealmContentLocalRepository(realm: Realm) : RealmBaseLocalRepository(realm), ContentLocalRepository { override fun saveContent(contentResult: ContentResult) { - realm.executeTransactionAsync { realm1 -> + executeTransactionAsync { realm1 -> contentResult.potion?.let { realm1.insertOrUpdate(it) } contentResult.armoire?.let { realm1.insertOrUpdate(it) } contentResult.gear?.flat?.let { realm1.insertOrUpdate(it) } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmTaskLocalRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmTaskLocalRepository.kt index b68bc336a..4f6b33ed7 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmTaskLocalRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmTaskLocalRepository.kt @@ -53,12 +53,12 @@ class RealmTaskLocalRepository(realm: Realm) : RealmBaseLocalRepository(realm), sortedTasks.forEach { it.reminders?.let { it1 -> allReminders.addAll(it1) } } removeOldReminders(allReminders) - realm.executeTransactionAsync { realm1 -> realm1.insertOrUpdate(sortedTasks) } + executeTransaction { realm1 -> realm1.insertOrUpdate(sortedTasks) } } override fun saveCompletedTodos(userId: String, tasks: MutableCollection) { removeCompletedTodos(userId, tasks) - realm.executeTransactionAsync { realm1 -> realm1.insertOrUpdate(tasks) } + executeTransaction { realm1 -> realm1.insertOrUpdate(tasks) } } private fun sortTasks(taskMap: MutableMap, taskOrder: List): List {