This commit is contained in:
Phillip Thelen 2024-04-25 10:52:03 +02:00
parent 22ac1e9a28
commit 93e6b3483e
4 changed files with 19 additions and 9 deletions

1
.gitignore vendored
View file

@ -71,3 +71,4 @@ fastlane/metadata/android/*/changelogs/
/Habitica/alpha
output-metadata.json
/Habitica/jacoco.exec
*.dm

View file

@ -87,19 +87,24 @@ class ChallengeRepositoryImpl(
challenge: Challenge,
addedTaskList: List<Task>,
) {
when {
val savedTasks: List<Task>? = 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<Task>,
removedTaskList: List<String>,
): 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)

View file

@ -1,2 +1,2 @@
NAME=4.3.7
CODE=7221
CODE=7571

View file

@ -113,6 +113,7 @@ android {
buildFeatures {
viewBinding true
buildConfig true
}
namespace 'com.habitrpg.android.habitica'
}