break dependency between JSPackagerClient.RequestHandler and WebSocketListener

Reviewed By: amnn

Differential Revision: D4810406

fbshipit-source-id: a447bc15c6619921edd7adf0b3d1d93ae04e2e43
This commit is contained in:
Charles Dick
2017-03-31 11:02:07 -07:00
committed by Facebook Github Bot
parent ec68c97d72
commit 175e77d004
9 changed files with 125 additions and 69 deletions
@@ -8,9 +8,6 @@
package com.facebook.react.packagerconnection;
import javax.annotation.Nullable;
import java.util.HashMap;
import java.util.Map;
import android.net.Uri;
@@ -32,10 +29,10 @@ final public class JSPackagerClient implements ReconnectingWebSocket.MessageCall
private static final String PACKAGER_CONNECTION_URL_FORMAT = "ws://%s/message?device=%s&app=%s&context=%s";
private static final int PROTOCOL_VERSION = 2;
public class Responder {
private class ResponderImpl implements Responder {
private Object mId;
public Responder(Object id) {
public ResponderImpl(Object id) {
mId = id;
}
@@ -64,26 +61,6 @@ final public class JSPackagerClient implements ReconnectingWebSocket.MessageCall
}
}
public interface RequestHandler {
public void onRequest(@Nullable Object params, Responder responder);
public void onNotification(@Nullable Object params);
}
public static abstract class NotificationOnlyHandler implements RequestHandler {
final public void onRequest(@Nullable Object params, Responder responder) {
responder.error("Request is not supported");
FLog.e(TAG, "Request is not supported");
}
abstract public void onNotification(@Nullable Object params);
}
public static abstract class RequestOnlyHandler implements RequestHandler {
abstract public void onRequest(@Nullable Object params, Responder responder);
final public void onNotification(@Nullable Object params) {
FLog.e(TAG, "Notification is not supported");
}
}
private ReconnectingWebSocket mWebSocket;
private Map<String, RequestHandler> mRequestHandlers;
@@ -149,7 +126,7 @@ final public class JSPackagerClient implements ReconnectingWebSocket.MessageCall
if (id == null) {
handler.onNotification(params);
} else {
handler.onRequest(params, new Responder(id));
handler.onRequest(params, new ResponderImpl(id));
}
} catch (Exception e) {
FLog.e(TAG, "Handling the message failed", e);
@@ -160,7 +137,7 @@ final public class JSPackagerClient implements ReconnectingWebSocket.MessageCall
private void abortOnMessage(Object id, String reason) {
if (id != null) {
(new Responder(id)).error(reason);
(new ResponderImpl(id)).error(reason);
}
FLog.e(TAG, "Handling the message failed with reason: " + reason);