Skip to content

Instantly share code, notes, and snippets.

@mayuroks
Last active July 9, 2018 18:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mayuroks/c8423ae23934d953cdf418ef3a9c6ebb to your computer and use it in GitHub Desktop.
Save mayuroks/c8423ae23934d953cdf418ef3a9c6ebb to your computer and use it in GitHub Desktop.
/**
* Remote data source.
*
*/
public class RemoteDataSource implements DataSource {
private static RemoteDataSource INSTANCE;
private static EventService mEventService = EventServiceImpl.getInstance();
private EventListener mRepoEventListener;
private RemoteDataSource() {
mEventService.setEventListener(this);
}
public static RemoteDataSource getInstance() {
if (INSTANCE == null) {
INSTANCE = new RemoteDataSource();
}
return INSTANCE;
}
@Override
public void setEventListener(EventListener eventListener) {
mRepoEventListener = eventListener;
}
@Override
public void connect(String username) throws URISyntaxException {
mEventService.connect(username);
}
@Override
public void disconnect() {
mEventService.disconnect();
}
@Override
public void onConnect(Object... args) {
if (mRepoEventListener != null)
mRepoEventListener.onConnect(args);
}
@Override
public void onDisconnect(Object... args) {
if (mRepoEventListener != null)
mRepoEventListener.onDisconnect(args);
}
@Override
public void onNewMessage(Object... args) {
if (mRepoEventListener != null)
mRepoEventListener.onNewMessage(args);
}
@Override
public Flowable<ChatMessage> sendMessage(ChatMessage chatMessage) {
return mEventService.sendMessage(chatMessage);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment