From deeed81e794f37a610a97b18e4c990d9547df4ae Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Mon, 22 Apr 2024 12:17:19 +0200 Subject: [PATCH] Fix changing cds --- .../com/habitrpg/android/habitica/api/ApiService.kt | 2 +- .../com/habitrpg/android/habitica/data/ApiClient.kt | 2 +- .../habitica/data/implementation/ApiClientImpl.kt | 2 +- .../habitica/data/implementation/UserRepositoryImpl.kt | 10 ++++++++-- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/api/ApiService.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/api/ApiService.kt index b52019d3e..551510ae4 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/api/ApiService.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/api/ApiService.kt @@ -320,7 +320,7 @@ interface ApiService { suspend fun validateNoRenewSubscription(@Body request: PurchaseValidationRequest): HabitResponse @POST("user/custom-day-start") - suspend fun changeCustomDayStart(@Body updateObject: Map): HabitResponse + suspend fun changeCustomDayStart(@Body updateObject: Map): HabitResponse // Members URL @GET("members/{mid}") diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.kt index dd456b7bc..567a1a9c1 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.kt @@ -189,7 +189,7 @@ interface ApiClient { suspend fun validatePurchase(request: PurchaseValidationRequest): PurchaseValidationResult? - suspend fun changeCustomDayStart(updateObject: Map): User? + suspend fun changeCustomDayStart(updateObject: Map): Void? // Members URL suspend fun getMember(memberId: String): Member? diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt index e7bf61107..3ed819c06 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt @@ -735,7 +735,7 @@ class ApiClientImpl( } } - override suspend fun changeCustomDayStart(updateObject: Map): User? { + override suspend fun changeCustomDayStart(updateObject: Map): Void? { return process { apiService.changeCustomDayStart(updateObject) } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.kt index 8eeeb9209..dab1acfd0 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.kt @@ -230,8 +230,14 @@ class UserRepositoryImpl( override suspend fun changeCustomDayStart(dayStartTime: Int): User? { val updateObject = HashMap() updateObject["dayStart"] = dayStartTime - val newUser = apiClient.changeCustomDayStart(updateObject) - return mergeWithExistingUser(newUser) + apiClient.changeCustomDayStart(updateObject) + val liveUser = getLiveUser() + if (liveUser != null) { + localRepository.executeTransaction { + liveUser.preferences?.dayStart = dayStartTime + } + } + return liveUser } override suspend fun updateLanguage(languageCode: String): User? {