Commit bc9a6641 authored by Yusuke Iwaki's avatar Yusuke Iwaki

modify param for observers to get latest DDPClient even after reconnected.

parent 61284c15
......@@ -7,6 +7,7 @@ import org.json.JSONObject;
import bolts.Task;
import chat.rocket.android.helper.TextUtils;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
/**
* MethodCall for uploading file.
......@@ -16,8 +17,8 @@ public class FileUploadingHelper extends MethodCallHelper {
super(context, hostname);
}
public FileUploadingHelper(RealmHelper realmHelper, DDPClientWrapper ddpClient) {
super(realmHelper, ddpClient);
public FileUploadingHelper(RealmHelper realmHelper, DDPClientRef ddpClientRef) {
super(realmHelper, ddpClientRef);
}
public Task<JSONObject> uploadRequest(String filename, long filesize, String mimeType,
......
......@@ -19,6 +19,7 @@ import chat.rocket.android.model.internal.MethodCall;
import chat.rocket.android.model.internal.Session;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.realm_helper.RealmStore;
import chat.rocket.android.service.DDPClientRef;
import chat.rocket.android_ddp.DDPClientCallback;
import hugo.weaving.DebugLog;
......@@ -36,7 +37,7 @@ public class MethodCallHelper {
task -> Task.forResult(new JSONArray(task.getResult()));
protected final Context context;
protected final RealmHelper realmHelper;
protected final DDPClientWrapper ddpClient;
protected final DDPClientRef ddpClientRef;
/**
* initialize with Context and hostname.
......@@ -44,22 +45,22 @@ public class MethodCallHelper {
public MethodCallHelper(Context context, String hostname) {
this.context = context;
this.realmHelper = RealmStore.get(hostname);
ddpClient = null;
ddpClientRef = null;
}
/**
* initialize with RealmHelper and DDPClient.
*/
public MethodCallHelper(RealmHelper realmHelper, DDPClientWrapper ddpClient) {
public MethodCallHelper(RealmHelper realmHelper, DDPClientRef ddpClientRef) {
this.context = null;
this.realmHelper = realmHelper;
this.ddpClient = ddpClient;
this.ddpClientRef = ddpClientRef;
}
@DebugLog
private Task<String> executeMethodCall(String methodName, String param, long timeout) {
if (ddpClient != null) {
return ddpClient.rpc(UUID.randomUUID().toString(), methodName, param, timeout)
if (ddpClientRef != null) {
return ddpClientRef.get().rpc(UUID.randomUUID().toString(), methodName, param, timeout)
.onSuccessTask(task -> Task.forResult(task.getResult().result));
} else {
return MethodCall.execute(context, realmHelper, methodName, param, timeout);
......
......@@ -8,6 +8,7 @@ import org.json.JSONObject;
import bolts.Task;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
public class RaixPushHelper extends MethodCallHelper {
public RaixPushHelper(Context context, String hostname) {
......@@ -15,8 +16,8 @@ public class RaixPushHelper extends MethodCallHelper {
}
public RaixPushHelper(RealmHelper realmHelper,
DDPClientWrapper ddpClient) {
super(realmHelper, ddpClient);
DDPClientRef ddpClientRef) {
super(realmHelper, ddpClientRef);
}
public Task<Void> pushUpdate(@NonNull String pushId, @NonNull String gcmToken,
......
package chat.rocket.android.service;
import chat.rocket.android.api.DDPClientWrapper;
/**
* reference to get fresh DDPClient instance.
*/
public interface DDPClientRef {
DDPClientWrapper get();
}
......@@ -63,6 +63,12 @@ public class RocketChatWebSocketThread extends HandlerThread {
private final ArrayList<Registrable> listeners = new ArrayList<>();
private DDPClientWrapper ddpClient;
private boolean listenersRegistered;
private final DDPClientRef ddpClientRef = new DDPClientRef() {
@Override
public DDPClientWrapper get() {
return ddpClient;
}
};
private static class KeepAliveTimer {
......@@ -235,6 +241,13 @@ public class RocketChatWebSocketThread extends HandlerThread {
if (sessionObj == null) {
realm.createOrUpdateObjectFromJson(Session.class,
new JSONObject().put(Session.ID, Session.DEFAULT_ID));
} else {
// invalidate login token.
if (!TextUtils.isEmpty(sessionObj.getToken()) && sessionObj.isTokenVerified()) {
sessionObj.setTokenVerified(false);
sessionObj.setError(null);
}
}
return null;
});
......@@ -264,7 +277,7 @@ public class RocketChatWebSocketThread extends HandlerThread {
}
private Task<Void> fetchPublicSettings() {
return new MethodCallHelper(realmHelper, ddpClient).getPublicSettings();
return new MethodCallHelper(realmHelper, ddpClientRef).getPublicSettings();
}
//@DebugLog
......@@ -283,8 +296,8 @@ public class RocketChatWebSocketThread extends HandlerThread {
for (Class clazz : REGISTERABLE_CLASSES) {
try {
Constructor ctor = clazz.getConstructor(Context.class, String.class, RealmHelper.class,
DDPClientWrapper.class);
Object obj = ctor.newInstance(appContext, hostname, realmHelper, ddpClient);
DDPClientRef.class);
Object obj = ctor.newInstance(appContext, hostname, realmHelper, ddpClientRef);
if (obj instanceof Registrable) {
Registrable registrable = (Registrable) obj;
......
......@@ -9,10 +9,10 @@ import org.json.JSONException;
import org.json.JSONObject;
import java.util.Iterator;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.log.RCLog;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
import chat.rocket.android.service.Registrable;
import chat.rocket.android_ddp.DDPSubscription;
import rx.Subscription;
......@@ -21,17 +21,17 @@ public abstract class AbstractDDPDocEventSubscriber implements Registrable {
protected final Context context;
protected final String hostname;
protected final RealmHelper realmHelper;
protected final DDPClientWrapper ddpClient;
protected final DDPClientRef ddpClientRef;
private boolean isUnsubscribed;
private String subscriptionId;
private Subscription rxSubscription;
protected AbstractDDPDocEventSubscriber(Context context, String hostname,
RealmHelper realmHelper, DDPClientWrapper ddpClient) {
RealmHelper realmHelper, DDPClientRef ddpClientRef) {
this.context = context;
this.hostname = hostname;
this.realmHelper = realmHelper;
this.ddpClient = ddpClient;
this.ddpClientRef = ddpClientRef;
}
protected abstract String getSubscriptionName();
......@@ -66,9 +66,9 @@ public abstract class AbstractDDPDocEventSubscriber implements Registrable {
// just ignore.
}
ddpClient.subscribe(getSubscriptionName(), params).onSuccess(task -> {
ddpClientRef.get().subscribe(getSubscriptionName(), params).onSuccess(task -> {
if (isUnsubscribed) {
ddpClient.unsubscribe(task.getResult().id).continueWith(new LogcatIfError());
ddpClientRef.get().unsubscribe(task.getResult().id).continueWith(new LogcatIfError());
} else {
subscriptionId = task.getResult().id;
}
......@@ -95,7 +95,7 @@ public abstract class AbstractDDPDocEventSubscriber implements Registrable {
}
protected Subscription subscribe() {
return ddpClient.getSubscriptionCallback()
return ddpClientRef.get().getSubscriptionCallback()
.filter(event -> event instanceof DDPSubscription.DocEvent)
.cast(DDPSubscription.DocEvent.class)
.filter(event -> isTarget(event.collection))
......@@ -182,7 +182,7 @@ public abstract class AbstractDDPDocEventSubscriber implements Registrable {
rxSubscription.unsubscribe();
}
if (!TextUtils.isEmpty(subscriptionId)) {
ddpClient.unsubscribe(subscriptionId).continueWith(new LogcatIfError());
ddpClientRef.get().unsubscribe(subscriptionId).continueWith(new LogcatIfError());
}
}
}
......@@ -3,14 +3,14 @@ package chat.rocket.android.service.ddp.base;
import android.content.Context;
import org.json.JSONArray;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
import chat.rocket.android.service.ddp.AbstractDDPDocEventSubscriber;
abstract class AbstractBaseSubscriber extends AbstractDDPDocEventSubscriber {
protected AbstractBaseSubscriber(Context context, String hostname, RealmHelper realmHelper,
DDPClientWrapper ddpClient) {
super(context, hostname, realmHelper, ddpClient);
DDPClientRef ddpClientRef) {
super(context, hostname, realmHelper, ddpClientRef);
}
@Override
......
......@@ -2,21 +2,20 @@ package chat.rocket.android.service.ddp.base;
import android.content.Context;
import io.realm.RealmObject;
import org.json.JSONException;
import org.json.JSONObject;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.model.ddp.User;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
/**
* "activeUsers" subscriber.
*/
public class ActiveUsersSubscriber extends AbstractBaseSubscriber {
public ActiveUsersSubscriber(Context context, String hostname, RealmHelper realmHelper,
DDPClientWrapper ddpClient) {
super(context, hostname, realmHelper, ddpClient);
DDPClientRef ddpClientRef) {
super(context, hostname, realmHelper, ddpClientRef);
}
@Override
......
......@@ -3,17 +3,17 @@ package chat.rocket.android.service.ddp.base;
import android.content.Context;
import io.realm.RealmObject;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.model.ddp.MeteorLoginServiceConfiguration;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
/**
* meteor.loginServiceConfiguration subscriber
*/
public class LoginServiceConfigurationSubscriber extends AbstractBaseSubscriber {
public LoginServiceConfigurationSubscriber(Context context, String hostname,
RealmHelper realmHelper, DDPClientWrapper ddpClient) {
super(context, hostname, realmHelper, ddpClient);
RealmHelper realmHelper, DDPClientRef ddpClientRef) {
super(context, hostname, realmHelper, ddpClientRef);
}
@Override
......
......@@ -2,21 +2,20 @@ package chat.rocket.android.service.ddp.base;
import android.content.Context;
import io.realm.RealmObject;
import org.json.JSONException;
import org.json.JSONObject;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.model.ddp.User;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
/**
* "userData" subscriber.
*/
public class UserDataSubscriber extends AbstractBaseSubscriber {
public UserDataSubscriber(Context context, String hostname, RealmHelper realmHelper,
DDPClientWrapper ddpClient) {
super(context, hostname, realmHelper, ddpClient);
DDPClientRef ddpClientRef) {
super(context, hostname, realmHelper, ddpClientRef);
}
@Override
......
......@@ -5,18 +5,18 @@ import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.log.RCLog;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
import chat.rocket.android.service.ddp.AbstractDDPDocEventSubscriber;
import chat.rocket.android_ddp.DDPSubscription;
abstract class AbstractStreamNotifyEventSubscriber extends AbstractDDPDocEventSubscriber {
protected AbstractStreamNotifyEventSubscriber(Context context, String hostname,
RealmHelper realmHelper,
DDPClientWrapper ddpClient) {
super(context, hostname, realmHelper, ddpClient);
DDPClientRef ddpClientRef) {
super(context, hostname, realmHelper, ddpClientRef);
}
@Override
......
......@@ -2,16 +2,16 @@ package chat.rocket.android.service.ddp.stream;
import android.content.Context;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
abstract class AbstractStreamNotifyUserEventSubscriber extends AbstractStreamNotifyEventSubscriber {
protected final String userId;
protected AbstractStreamNotifyUserEventSubscriber(Context context, String hostname,
RealmHelper realmHelper,
DDPClientWrapper ddpClient, String userId) {
super(context, hostname, realmHelper, ddpClient);
DDPClientRef ddpClientRef, String userId) {
super(context, hostname, realmHelper, ddpClientRef);
this.userId = userId;
}
......
......@@ -5,15 +5,15 @@ import io.realm.RealmObject;
import org.json.JSONException;
import org.json.JSONObject;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.model.ddp.RoomSubscription;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
public class StreamNotifyUserSubscriptionsChanged extends AbstractStreamNotifyUserEventSubscriber {
public StreamNotifyUserSubscriptionsChanged(Context context, String hostname,
RealmHelper realmHelper, DDPClientWrapper ddpClient,
RealmHelper realmHelper, DDPClientRef ddpClientRef,
String userId) {
super(context, hostname, realmHelper, ddpClient, userId);
super(context, hostname, realmHelper, ddpClientRef, userId);
}
@Override
......
......@@ -5,9 +5,9 @@ import io.realm.RealmObject;
import org.json.JSONException;
import org.json.JSONObject;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.model.ddp.Message;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
/**
* stream-room-message subscriber.
......@@ -16,8 +16,8 @@ public class StreamRoomMessage extends AbstractStreamNotifyEventSubscriber {
private String roomId;
public StreamRoomMessage(Context context, String hostname,
RealmHelper realmHelper, DDPClientWrapper ddpClient, String roomId) {
super(context, hostname, realmHelper, ddpClient);
RealmHelper realmHelper, DDPClientRef ddpClientRef, String roomId) {
super(context, hostname, realmHelper, ddpClientRef);
this.roomId = roomId;
}
......
......@@ -4,8 +4,8 @@ import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
import chat.rocket.android.service.Registrable;
import chat.rocket.android.service.ddp.stream.StreamRoomMessage;
......@@ -16,17 +16,17 @@ public class StreamRoomMessageManager implements Registrable {
private final Context context;
private final String hostname;
private final RealmHelper realmHelper;
private final DDPClientWrapper ddpClient;
private final DDPClientRef ddpClientRef;
private final AbstractRocketChatCacheObserver cacheObserver;
private final Handler handler;
private StreamRoomMessage streamRoomMessage;
public StreamRoomMessageManager(Context context, String hostname,
RealmHelper realmHelper, DDPClientWrapper ddpClient) {
RealmHelper realmHelper, DDPClientRef ddpClientRef) {
this.context = context;
this.hostname = hostname;
this.realmHelper = realmHelper;
this.ddpClient = ddpClient;
this.ddpClientRef = ddpClientRef;
cacheObserver = new AbstractRocketChatCacheObserver(context, realmHelper) {
@Override
......@@ -40,7 +40,7 @@ public class StreamRoomMessageManager implements Registrable {
private void registerStreamNotifyMessage(String roomId) {
handler.post(() -> {
streamRoomMessage = new StreamRoomMessage(context, hostname, realmHelper, ddpClient, roomId);
streamRoomMessage = new StreamRoomMessage(context, hostname, realmHelper, ddpClientRef, roomId);
streamRoomMessage.register();
});
}
......
......@@ -3,9 +3,9 @@ package chat.rocket.android.service.observer;
import android.content.Context;
import io.realm.RealmObject;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.realm_helper.RealmListObserver;
import chat.rocket.android.service.DDPClientRef;
import chat.rocket.android.service.Registrable;
abstract class AbstractModelObserver<T extends RealmObject>
......@@ -14,15 +14,15 @@ abstract class AbstractModelObserver<T extends RealmObject>
protected final Context context;
protected final String hostname;
protected final RealmHelper realmHelper;
protected final DDPClientWrapper ddpClient;
protected final DDPClientRef ddpClientRef;
private final RealmListObserver observer;
protected AbstractModelObserver(Context context, String hostname,
RealmHelper realmHelper, DDPClientWrapper ddpClient) {
RealmHelper realmHelper, DDPClientRef ddpClientRef) {
this.context = context;
this.hostname = hostname;
this.realmHelper = realmHelper;
this.ddpClient = ddpClient;
this.ddpClientRef = ddpClientRef;
observer = realmHelper.createListObserver(this).setOnUpdateListener(this);
}
......
......@@ -6,11 +6,11 @@ import io.realm.RealmResults;
import java.util.ArrayList;
import java.util.List;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.api.MethodCallHelper;
import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.model.ddp.User;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
import chat.rocket.android.service.Registrable;
import chat.rocket.android.service.ddp.stream.StreamNotifyUserSubscriptionsChanged;
import hugo.weaving.DebugLog;
......@@ -24,9 +24,9 @@ public class CurrentUserObserver extends AbstractModelObserver<User> {
private ArrayList<Registrable> listeners;
public CurrentUserObserver(Context context, String hostname,
RealmHelper realmHelper, DDPClientWrapper ddpClient) {
super(context, hostname, realmHelper, ddpClient);
methodCall = new MethodCallHelper(realmHelper, ddpClient);
RealmHelper realmHelper, DDPClientRef ddpClientRef) {
super(context, hostname, realmHelper, ddpClientRef);
methodCall = new MethodCallHelper(realmHelper, ddpClientRef);
currentUserExists = false;
}
......@@ -62,7 +62,7 @@ public class CurrentUserObserver extends AbstractModelObserver<User> {
methodCall.getRoomSubscriptions().onSuccess(task -> {
if (listeners != null) {
Registrable listener = new StreamNotifyUserSubscriptionsChanged(
context, hostname, realmHelper, ddpClient, userId);
context, hostname, realmHelper, ddpClientRef, userId);
listener.register();
listeners.add(listener);
}
......
......@@ -11,7 +11,6 @@ import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import bolts.Task;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.api.FileUploadingHelper;
import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.helper.OkHttpHelper;
......@@ -19,6 +18,7 @@ import chat.rocket.android.log.RCLog;
import chat.rocket.android.model.SyncState;
import chat.rocket.android.model.internal.FileUploading;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.Request;
......@@ -35,9 +35,9 @@ public class FileUploadingToS3Observer extends AbstractModelObserver<FileUploadi
private FileUploadingHelper methodCall;
public FileUploadingToS3Observer(Context context, String hostname,
RealmHelper realmHelper, DDPClientWrapper ddpClient) {
super(context, hostname, realmHelper, ddpClient);
methodCall = new FileUploadingHelper(realmHelper, ddpClient);
RealmHelper realmHelper, DDPClientRef ddpClientRef) {
super(context, hostname, realmHelper, ddpClientRef);
methodCall = new FileUploadingHelper(realmHelper, ddpClientRef);
realmHelper.executeTransaction(realm -> {
// resume pending operations.
......
......@@ -9,7 +9,6 @@ import org.json.JSONObject;
import java.io.InputStream;
import java.util.List;
import bolts.Task;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.api.FileUploadingHelper;
import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.helper.OkHttpHelper;
......@@ -19,6 +18,7 @@ import chat.rocket.android.model.ddp.User;
import chat.rocket.android.model.internal.FileUploading;
import chat.rocket.android.model.internal.Session;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
import okhttp3.MediaType;
import okhttp3.Request;
import okhttp3.RequestBody;
......@@ -31,9 +31,9 @@ public class FileUploadingWithUfsObserver extends AbstractModelObserver<FileUplo
private FileUploadingHelper methodCall;
public FileUploadingWithUfsObserver(Context context, String hostname,
RealmHelper realmHelper, DDPClientWrapper ddpClient) {
super(context, hostname, realmHelper, ddpClient);
methodCall = new FileUploadingHelper(realmHelper, ddpClient);
RealmHelper realmHelper, DDPClientRef ddpClientRef) {
super(context, hostname, realmHelper, ddpClientRef);
methodCall = new FileUploadingHelper(realmHelper, ddpClientRef);
realmHelper.executeTransaction(realm -> {
// resume pending operations.
......
......@@ -11,7 +11,6 @@ import java.io.IOException;
import java.util.List;
import bolts.Task;
import chat.rocket.android.RocketChatCache;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.api.RaixPushHelper;
import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.model.SyncState;
......@@ -20,6 +19,7 @@ import chat.rocket.android.model.ddp.PublicSettingsConstants;
import chat.rocket.android.model.ddp.User;
import chat.rocket.android.model.internal.GcmPushRegistration;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
/**
* call raix:push-update if needed.
......@@ -27,8 +27,8 @@ import chat.rocket.android.realm_helper.RealmHelper;
public class GcmPushRegistrationObserver extends AbstractModelObserver<GcmPushRegistration> {
public GcmPushRegistrationObserver(Context context, String hostname,
RealmHelper realmHelper,
DDPClientWrapper ddpClient) {
super(context, hostname, realmHelper, ddpClient);
DDPClientRef ddpClientRef) {
super(context, hostname, realmHelper, ddpClientRef);
}
@Override
......@@ -75,7 +75,7 @@ public class GcmPushRegistrationObserver extends AbstractModelObserver<GcmPushRe
final String userId = currentUser != null ? currentUser.getId() : null;
final String pushId = RocketChatCache.getOrCreatePushId(context);
return new RaixPushHelper(realmHelper, ddpClient)
return new RaixPushHelper(realmHelper, ddpClientRef)
.pushUpdate(pushId, gcmToken, userId);
}
......
......@@ -7,12 +7,12 @@ import org.json.JSONObject;
import java.util.List;
import bolts.Task;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.api.MethodCallHelper;
import chat.rocket.android.log.RCLog;
import chat.rocket.android.model.SyncState;
import chat.rocket.android.model.internal.GetUsersOfRoomsProcedure;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
/**
* Model observer for executing getUsersOfRooms.
......@@ -23,9 +23,9 @@ public class GetUsersOfRoomsProcedureObserver
private final MethodCallHelper methodCall;
public GetUsersOfRoomsProcedureObserver(Context context, String hostname,
RealmHelper realmHelper, DDPClientWrapper ddpClient) {
super(context, hostname, realmHelper, ddpClient);
methodCall = new MethodCallHelper(realmHelper, ddpClient);
RealmHelper realmHelper, DDPClientRef ddpClientRef) {
super(context, hostname, realmHelper, ddpClientRef);
methodCall = new MethodCallHelper(realmHelper, ddpClientRef);
}
@Override
......
......@@ -8,13 +8,13 @@ import org.json.JSONObject;
import java.util.List;
import bolts.Task;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.api.MethodCallHelper;
import chat.rocket.android.log.RCLog;
import chat.rocket.android.model.SyncState;
import chat.rocket.android.model.ddp.Message;
import chat.rocket.android.model.internal.LoadMessageProcedure;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
/**
* Background process for loading messages.
......@@ -24,9 +24,9 @@ public class LoadMessageProcedureObserver extends AbstractModelObserver<LoadMess
private final MethodCallHelper methodCall;
public LoadMessageProcedureObserver(Context context, String hostname,
RealmHelper realmHelper, DDPClientWrapper ddpClient) {
super(context, hostname, realmHelper, ddpClient);
methodCall = new MethodCallHelper(realmHelper, ddpClient);
RealmHelper realmHelper, DDPClientRef ddpClientRef) {
super(context, hostname, realmHelper, ddpClientRef);
methodCall = new MethodCallHelper(realmHelper, ddpClientRef);
}
@Override
......
......@@ -6,12 +6,12 @@ import io.realm.RealmResults;
import org.json.JSONObject;
import java.util.List;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.helper.CheckSum;
import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.model.SyncState;
import chat.rocket.android.model.internal.MethodCall;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
import chat.rocket.android_ddp.DDPClientCallback;
/**
......@@ -25,8 +25,8 @@ public class MethodCallObserver extends AbstractModelObserver<MethodCall> {
* constructor.
*/
public MethodCallObserver(Context context, String hostname,
RealmHelper realmHelper, DDPClientWrapper ddpClient) {
super(context, hostname, realmHelper, ddpClient);
RealmHelper realmHelper, DDPClientRef ddpClientRef) {
super(context, hostname, realmHelper, ddpClientRef);
realmHelper.executeTransaction(realm -> {
// resume pending operations.
RealmResults<MethodCall> pendingMethodCalls = realm.where(MethodCall.class)
......@@ -97,7 +97,7 @@ public class MethodCallObserver extends AbstractModelObserver<MethodCall> {
.put(MethodCall.ID, methodCallId)
.put(MethodCall.SYNC_STATE, SyncState.SYNCING))
).onSuccessTask(task ->
ddpClient.rpc(methodCallId, methodName, params, timeout)
ddpClientRef.get().rpc(methodCallId, methodName, params, timeout)
.onSuccessTask(_task -> realmHelper.executeTransaction(realm -> {
String json = _task.getResult().result;
return realm.createOrUpdateObjectFromJson(MethodCall.class, new JSONObject()
......
......@@ -6,13 +6,13 @@ import io.realm.RealmResults;
import org.json.JSONObject;
import java.util.List;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.api.MethodCallHelper;
import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.log.RCLog;
import chat.rocket.android.model.SyncState;
import chat.rocket.android.model.ddp.Message;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
/**
* Observe messages for sending.
......@@ -22,9 +22,9 @@ public class NewMessageObserver extends AbstractModelObserver<Message> {
private final MethodCallHelper methodCall;
public NewMessageObserver(Context context, String hostname,
RealmHelper realmHelper, DDPClientWrapper ddpClient) {
super(context, hostname, realmHelper, ddpClient);
methodCall = new MethodCallHelper(realmHelper, ddpClient);
RealmHelper realmHelper, DDPClientRef ddpClientRef) {
super(context, hostname, realmHelper, ddpClientRef);
methodCall = new MethodCallHelper(realmHelper, ddpClientRef);
realmHelper.executeTransaction(realm -> {
// resume pending operations.
......
......@@ -5,17 +5,17 @@ import io.realm.Realm;
import io.realm.RealmResults;
import java.util.List;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.helper.GcmPushSettingHelper;
import chat.rocket.android.model.ddp.PublicSetting;
import chat.rocket.android.model.internal.GcmPushRegistration;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
public class PushSettingsObserver extends AbstractModelObserver<PublicSetting> {
public PushSettingsObserver(Context context, String hostname,
RealmHelper realmHelper, DDPClientWrapper ddpClient) {
super(context, hostname, realmHelper, ddpClient);
RealmHelper realmHelper, DDPClientRef ddpClientRef) {
super(context, hostname, realmHelper, ddpClientRef);
}
@Override
......
......@@ -6,7 +6,6 @@ import io.realm.RealmResults;
import java.util.List;
import chat.rocket.android.RocketChatCache;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.api.RaixPushHelper;
import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.model.internal.GetUsersOfRoomsProcedure;
......@@ -14,6 +13,7 @@ import chat.rocket.android.model.internal.LoadMessageProcedure;
import chat.rocket.android.model.internal.MethodCall;
import chat.rocket.android.model.internal.Session;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
import chat.rocket.android.service.internal.StreamRoomMessageManager;
import hugo.weaving.DebugLog;
......@@ -29,12 +29,12 @@ public class SessionObserver extends AbstractModelObserver<Session> {
* constructor.
*/
public SessionObserver(Context context, String hostname,
RealmHelper realmHelper, DDPClientWrapper ddpClient) {
super(context, hostname, realmHelper, ddpClient);
RealmHelper realmHelper, DDPClientRef ddpClientRef) {
super(context, hostname, realmHelper, ddpClientRef);
count = 0;
streamNotifyMessage = new StreamRoomMessageManager(context, hostname, realmHelper, ddpClient);
pushHelper = new RaixPushHelper(realmHelper, ddpClient);
streamNotifyMessage = new StreamRoomMessageManager(context, hostname, realmHelper, ddpClientRef);
pushHelper = new RaixPushHelper(realmHelper, ddpClientRef);
}
@Override
......
......@@ -5,20 +5,20 @@ import io.realm.Realm;
import io.realm.RealmResults;
import java.util.List;
import chat.rocket.android.api.DDPClientWrapper;
import chat.rocket.android.api.MethodCallHelper;
import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.model.internal.Session;
import chat.rocket.android.realm_helper.RealmHelper;
import chat.rocket.android.service.DDPClientRef;
public class TokenLoginObserver extends AbstractModelObserver<Session> {
private final MethodCallHelper methodCall;
public TokenLoginObserver(Context context, String hostname,
RealmHelper realmHelper, DDPClientWrapper ddpClient) {
super(context, hostname, realmHelper, ddpClient);
methodCall = new MethodCallHelper(realmHelper, ddpClient);
RealmHelper realmHelper, DDPClientRef ddpClientRef) {
super(context, hostname, realmHelper, ddpClientRef);
methodCall = new MethodCallHelper(realmHelper, ddpClientRef);
}
@Override
......
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