From 0dc55af2086229f8d0bbed694f50c7e236702965 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Tue, 20 Jun 2017 12:51:41 +0200 Subject: [PATCH] fix task creation --- .../habitrpg/android/habitica/api/ApiService.java | 2 +- .../habitrpg/android/habitica/data/ApiClient.java | 2 +- .../data/implementation/ApiClientImpl.java | 4 ++-- .../data/implementation/TaskRepositoryImpl.java | 15 +++++---------- .../implementation/RealmTaskLocalRepository.java | 9 +++++++-- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/api/ApiService.java b/Habitica/src/main/java/com/habitrpg/android/habitica/api/ApiService.java index 9bba677ee..cd31cdf70 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/api/ApiService.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/api/ApiService.java @@ -114,7 +114,7 @@ public interface ApiService { Observable> scoreChecklistItem(@Path("taskId") String taskId, @Path("itemId") String itemId); @POST("tasks/user") - Observable> createItem(@Body Task item); + Observable> createTask(@Body Task item); @POST("tasks/user") Observable>> createTasks(@Body List tasks); diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.java b/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.java index d773478a4..5cad120c8 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.java @@ -87,7 +87,7 @@ public interface ApiClient { Observable scoreChecklistItem(String taskId, String itemId); - Observable createItem(Task item); + Observable createTask(Task item); Observable> createTasks(List tasks); diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.java b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.java index 43941614a..1c6d63fcf 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.java @@ -527,8 +527,8 @@ public class ApiClientImpl implements Action1, ApiClient { } @Override - public Observable createItem(Task item) { - return apiService.createItem(item).compose(configureApiCallObserver()); + public Observable createTask(Task item) { + return apiService.createTask(item).compose(configureApiCallObserver()); } @Override diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImpl.java b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImpl.java index 8fa01ec39..63299e806 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImpl.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImpl.java @@ -3,30 +3,22 @@ package com.habitrpg.android.habitica.data.implementation; import com.habitrpg.android.habitica.data.ApiClient; import com.habitrpg.android.habitica.data.TaskRepository; import com.habitrpg.android.habitica.data.local.TaskLocalRepository; -import com.habitrpg.android.habitica.events.TaskCreatedEvent; -import com.habitrpg.android.habitica.events.TaskUpdatedEvent; import com.habitrpg.android.habitica.helpers.RxErrorHandler; import com.habitrpg.android.habitica.models.responses.TaskDirection; -import com.habitrpg.android.habitica.models.responses.TaskDirectionData; import com.habitrpg.android.habitica.models.responses.TaskScoringResult; -import com.habitrpg.android.habitica.models.tasks.ChecklistItem; import com.habitrpg.android.habitica.models.tasks.RemindersItem; import com.habitrpg.android.habitica.models.tasks.Task; import com.habitrpg.android.habitica.models.tasks.TaskList; -import com.habitrpg.android.habitica.models.tasks.TaskTag; import com.habitrpg.android.habitica.models.tasks.TasksOrder; import com.habitrpg.android.habitica.models.user.Stats; import com.habitrpg.android.habitica.models.user.User; -import org.greenrobot.eventbus.EventBus; - import java.util.Date; import java.util.List; import io.realm.Realm; import io.realm.RealmResults; import rx.Observable; -import rx.functions.Func2; public class TaskRepositoryImpl extends BaseRepositoryImpl implements TaskRepository { @@ -130,8 +122,11 @@ public class TaskRepositoryImpl extends BaseRepositoryImpl return Observable.just(task); } lastTaskAction = now; - return localRepository.getTaskCopy(task.getId()).first() - .flatMap(apiClient::createItem) + return apiClient.createTask(task) + .map(task1 -> { + task1.dateCreated = new Date(); + return task1; + }) .doOnNext(localRepository::saveTask); } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmTaskLocalRepository.java b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmTaskLocalRepository.java index 44fbd66ae..71311f637 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmTaskLocalRepository.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmTaskLocalRepository.java @@ -149,8 +149,13 @@ public class RealmTaskLocalRepository extends RealmBaseLocalRepository implement @Override public Observable getTaskCopy(String taskId) { return getTask(taskId) - .filter(task -> task.isManaged() && task.isValid()) - .map(realm::copyFromRealm); + .map(task -> { + if (task.isManaged() && task.isValid()) { + return realm.copyFromRealm(task); + } else { + return task; + } + }); } @Override