Commit da5320f3 authored by Tiago Cunha's avatar Tiago Cunha

Fix incorrect behavior

parent 636e137d
...@@ -317,8 +317,17 @@ public class MethodCallHelper { ...@@ -317,8 +317,17 @@ public class MethodCallHelper {
*/ */
private Task<JSONObject> sendMessage(final JSONObject messageJson) { private Task<JSONObject> sendMessage(final JSONObject messageJson) {
return call("sendMessage", TIMEOUT_MS, () -> new JSONArray().put(messageJson)) return call("sendMessage", TIMEOUT_MS, () -> new JSONArray().put(messageJson))
.onSuccessTask(CONVERT_TO_JSON_OBJECT) .onSuccessTask(task -> {
.onSuccessTask(task -> Task.forResult(Message.customizeJson(task.getResult()))); final String result = task.getResult();
if (result.equals("")) {
// valid success result
return Task.forResult(new JSONObject());
}
// should validate any other response
final JSONObject jsonObject = new JSONObject(result);
return Task.forResult(Message.customizeJson(jsonObject));
});
} }
/** /**
......
...@@ -53,7 +53,7 @@ public class NewMessageObserver extends AbstractModelObserver<Message> { ...@@ -53,7 +53,7 @@ public class NewMessageObserver extends AbstractModelObserver<Message> {
return; return;
} }
Message message = results.get(0); final Message message = results.get(0);
final String messageId = message.getId(); final String messageId = message.getId();
final String roomId = message.getRoomId(); final String roomId = message.getRoomId();
final String msg = message.getMessage(); final String msg = message.getMessage();
...@@ -63,13 +63,7 @@ public class NewMessageObserver extends AbstractModelObserver<Message> { ...@@ -63,13 +63,7 @@ public class NewMessageObserver extends AbstractModelObserver<Message> {
.put(Message.ID, messageId) .put(Message.ID, messageId)
.put(Message.SYNC_STATE, SyncState.SYNCING) .put(Message.SYNC_STATE, SyncState.SYNCING)
) )
).onSuccessTask(task -> ).onSuccessTask(task -> methodCall.sendMessage(messageId, roomId, msg)
methodCall.sendMessage(messageId, roomId, msg).onSuccessTask(_task -> {
JSONObject messageJson = _task.getResult();
messageJson.put("syncstate", SyncState.SYNCED);
return realmHelper.executeTransaction(realm ->
realm.createOrUpdateObjectFromJson(Message.class, messageJson));
})
).continueWith(task -> { ).continueWith(task -> {
if (task.isFaulted()) { if (task.isFaulted()) {
RCLog.w(task.getError()); RCLog.w(task.getError());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment