From 93e6b3483eedd8e766a7cf181bdff6c37a2675f9 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Thu, 25 Apr 2024 10:52:03 +0200 Subject: [PATCH] fixes --- .gitignore | 1 + .../implementation/ChallengeRepositoryImpl.kt | 24 ++++++++++++------- version.properties | 2 +- wearos/build.gradle | 1 + 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 8198d0fe3..b8dd120d4 100644 --- a/.gitignore +++ b/.gitignore @@ -71,3 +71,4 @@ fastlane/metadata/android/*/changelogs/ /Habitica/alpha output-metadata.json /Habitica/jacoco.exec +*.dm diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ChallengeRepositoryImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ChallengeRepositoryImpl.kt index 9b859f43d..905c216e9 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ChallengeRepositoryImpl.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ChallengeRepositoryImpl.kt @@ -87,19 +87,24 @@ class ChallengeRepositoryImpl( challenge: Challenge, addedTaskList: List, ) { - when { + val savedTasks: List? = when { addedTaskList.count() == 1 -> - apiClient.createChallengeTask( + listOf(apiClient.createChallengeTask( challenge.id ?: "", addedTaskList[0], - ) - - addedTaskList.count() > 1 -> + )).filterNotNull() + else -> apiClient.createChallengeTasks( challenge.id ?: "", addedTaskList, ) } + if (savedTasks != null) { + savedTasks.forEach { + it.ownerID = challenge.id ?: "" + } + localRepository.save(savedTasks) + } } override suspend fun createChallenge( @@ -122,11 +127,14 @@ class ChallengeRepositoryImpl( updatedTaskList: List, removedTaskList: List, ): Challenge? { - updatedTaskList - .map { localRepository.getUnmanagedCopy(it) } - .forEach { task -> + val savedTasks = updatedTaskList + .map { localRepository.getUnmanagedCopy(it) }.mapNotNull { task -> apiClient.updateTask(task.id ?: "", task) } + if (savedTasks.isNotEmpty()) { + savedTasks.forEach { it.ownerID = challenge.id ?: "" } + localRepository.save(savedTasks) + } removedTaskList.forEach { task -> apiClient.deleteTask(task) diff --git a/version.properties b/version.properties index b7158f88c..da7503cd0 100644 --- a/version.properties +++ b/version.properties @@ -1,2 +1,2 @@ NAME=4.3.7 -CODE=7221 +CODE=7571 \ No newline at end of file diff --git a/wearos/build.gradle b/wearos/build.gradle index 2a949d6d7..98c6172a9 100644 --- a/wearos/build.gradle +++ b/wearos/build.gradle @@ -113,6 +113,7 @@ android { buildFeatures { viewBinding true + buildConfig true } namespace 'com.habitrpg.android.habitica' }