Commit da5320f3 authored by Tiago Cunha's avatar Tiago Cunha

Fix incorrect behavior

parent 636e137d
......@@ -317,8 +317,17 @@ public class MethodCallHelper {
*/
private Task<JSONObject> sendMessage(final JSONObject messageJson) {
return call("sendMessage", TIMEOUT_MS, () -> new JSONArray().put(messageJson))
.onSuccessTask(CONVERT_TO_JSON_OBJECT)
.onSuccessTask(task -> Task.forResult(Message.customizeJson(task.getResult())));
.onSuccessTask(task -> {
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> {
return;
}
Message message = results.get(0);
final Message message = results.get(0);
final String messageId = message.getId();
final String roomId = message.getRoomId();
final String msg = message.getMessage();
......@@ -63,13 +63,7 @@ public class NewMessageObserver extends AbstractModelObserver<Message> {
.put(Message.ID, messageId)
.put(Message.SYNC_STATE, SyncState.SYNCING)
)
).onSuccessTask(task ->
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));
})
).onSuccessTask(task -> methodCall.sendMessage(messageId, roomId, msg)
).continueWith(task -> {
if (task.isFaulted()) {
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