mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-25 14:40:41 +01:00
Spotbugs: NPE deference, NPE-equals, unused variable, make vars final, reformat code for line-length 120 chars
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
This commit is contained in:
parent
a33f3fe400
commit
8b9996814f
@ -4,4 +4,5 @@ public class Globals {
|
|||||||
public static final String ROOM_TOKEN = "roomToken";
|
public static final String ROOM_TOKEN = "roomToken";
|
||||||
|
|
||||||
public static final String TARGET_PARTICIPANTS = "participants";
|
public static final String TARGET_PARTICIPANTS = "participants";
|
||||||
|
public static final String TARGET_ROOM = "room";
|
||||||
}
|
}
|
||||||
|
@ -67,12 +67,12 @@ import static com.nextcloud.talk.models.json.participants.Participant.ActorType.
|
|||||||
import static com.nextcloud.talk.models.json.participants.Participant.ActorType.USERS;
|
import static com.nextcloud.talk.models.json.participants.Participant.ActorType.USERS;
|
||||||
import static com.nextcloud.talk.webrtc.Globals.ROOM_TOKEN;
|
import static com.nextcloud.talk.webrtc.Globals.ROOM_TOKEN;
|
||||||
import static com.nextcloud.talk.webrtc.Globals.TARGET_PARTICIPANTS;
|
import static com.nextcloud.talk.webrtc.Globals.TARGET_PARTICIPANTS;
|
||||||
|
import static com.nextcloud.talk.webrtc.Globals.TARGET_ROOM;
|
||||||
|
|
||||||
@AutoInjector(NextcloudTalkApplication.class)
|
@AutoInjector(NextcloudTalkApplication.class)
|
||||||
public class MagicWebSocketInstance extends WebSocketListener {
|
public class MagicWebSocketInstance extends WebSocketListener {
|
||||||
private static final String TAG = "MagicWebSocketInstance";
|
private static final String TAG = "MagicWebSocketInstance";
|
||||||
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
OkHttpClient okHttpClient;
|
OkHttpClient okHttpClient;
|
||||||
|
|
||||||
@ -82,18 +82,17 @@ public class MagicWebSocketInstance extends WebSocketListener {
|
|||||||
@Inject
|
@Inject
|
||||||
Context context;
|
Context context;
|
||||||
|
|
||||||
private User conversationUser;
|
private final User conversationUser;
|
||||||
private String webSocketTicket;
|
private final String webSocketTicket;
|
||||||
private String resumeId;
|
private String resumeId;
|
||||||
private String sessionId;
|
private String sessionId;
|
||||||
private boolean hasMCU;
|
private boolean hasMCU;
|
||||||
private boolean connected;
|
private boolean connected;
|
||||||
private WebSocketConnectionHelper webSocketConnectionHelper;
|
private final WebSocketConnectionHelper webSocketConnectionHelper;
|
||||||
private WebSocket internalWebSocket;
|
private WebSocket internalWebSocket;
|
||||||
private String connectionUrl;
|
private final String connectionUrl;
|
||||||
|
|
||||||
private String currentRoomToken;
|
private String currentRoomToken;
|
||||||
private int restartCount = 0;
|
|
||||||
private boolean reconnecting = false;
|
private boolean reconnecting = false;
|
||||||
|
|
||||||
private HashMap<String, Participant> usersHashMap;
|
private HashMap<String, Participant> usersHashMap;
|
||||||
@ -122,9 +121,13 @@ public class MagicWebSocketInstance extends WebSocketListener {
|
|||||||
private void sendHello() {
|
private void sendHello() {
|
||||||
try {
|
try {
|
||||||
if (TextUtils.isEmpty(resumeId)) {
|
if (TextUtils.isEmpty(resumeId)) {
|
||||||
internalWebSocket.send(LoganSquare.serialize(webSocketConnectionHelper.getAssembledHelloModel(conversationUser, webSocketTicket)));
|
internalWebSocket.send(
|
||||||
|
LoganSquare.serialize(webSocketConnectionHelper
|
||||||
|
.getAssembledHelloModel(conversationUser, webSocketTicket)));
|
||||||
} else {
|
} else {
|
||||||
internalWebSocket.send(LoganSquare.serialize(webSocketConnectionHelper.getAssembledHelloModelForResume(resumeId)));
|
internalWebSocket.send(
|
||||||
|
LoganSquare.serialize(webSocketConnectionHelper
|
||||||
|
.getAssembledHelloModelForResume(resumeId)));
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
Log.e(TAG, "Failed to serialize hello model");
|
Log.e(TAG, "Failed to serialize hello model");
|
||||||
@ -160,7 +163,6 @@ public class MagicWebSocketInstance extends WebSocketListener {
|
|||||||
Log.d(TAG, "restartWebSocket: " + connectionUrl);
|
Log.d(TAG, "restartWebSocket: " + connectionUrl);
|
||||||
Request request = new Request.Builder().url(connectionUrl).build();
|
Request request = new Request.Builder().url(connectionUrl).build();
|
||||||
okHttpClient.newWebSocket(request, this);
|
okHttpClient.newWebSocket(request, this);
|
||||||
restartCount++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -205,30 +207,43 @@ public class MagicWebSocketInstance extends WebSocketListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void processMessage(String text) throws IOException {
|
private void processMessage(String text) throws IOException {
|
||||||
CallOverallWebSocketMessage callOverallWebSocketMessage = LoganSquare.parse(text, CallOverallWebSocketMessage.class);
|
CallOverallWebSocketMessage callOverallWebSocketMessage =
|
||||||
NCSignalingMessage ncSignalingMessage = callOverallWebSocketMessage.getCallWebSocketMessage().getNcSignalingMessage();
|
LoganSquare.parse(text, CallOverallWebSocketMessage.class);
|
||||||
if (TextUtils.isEmpty(ncSignalingMessage.getFrom()) && callOverallWebSocketMessage.getCallWebSocketMessage().getSenderWebSocketMessage() != null) {
|
NCSignalingMessage ncSignalingMessage = callOverallWebSocketMessage
|
||||||
ncSignalingMessage.setFrom(callOverallWebSocketMessage.getCallWebSocketMessage().getSenderWebSocketMessage().getSessionId());
|
.getCallWebSocketMessage()
|
||||||
|
.getNcSignalingMessage();
|
||||||
|
if (TextUtils.isEmpty(ncSignalingMessage.getFrom()) &&
|
||||||
|
callOverallWebSocketMessage.getCallWebSocketMessage().getSenderWebSocketMessage() != null) {
|
||||||
|
ncSignalingMessage.setFrom(
|
||||||
|
callOverallWebSocketMessage.getCallWebSocketMessage().getSenderWebSocketMessage().getSessionId());
|
||||||
}
|
}
|
||||||
|
|
||||||
signalingMessageReceiver.process(ncSignalingMessage);
|
signalingMessageReceiver.process(ncSignalingMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processEventMessage(String text) throws IOException {
|
private void processEventMessage(String text) throws IOException {
|
||||||
EventOverallWebSocketMessage eventOverallWebSocketMessage = LoganSquare.parse(text, EventOverallWebSocketMessage.class);
|
EventOverallWebSocketMessage eventOverallWebSocketMessage =
|
||||||
|
LoganSquare.parse(text, EventOverallWebSocketMessage.class);
|
||||||
if (eventOverallWebSocketMessage.getEventMap() != null) {
|
if (eventOverallWebSocketMessage.getEventMap() != null) {
|
||||||
String target = (String) eventOverallWebSocketMessage.getEventMap().get("target");
|
String target = (String) eventOverallWebSocketMessage.getEventMap().get("target");
|
||||||
switch (target) {
|
if (target != null) {
|
||||||
case "room":
|
switch (target) {
|
||||||
if (eventOverallWebSocketMessage.getEventMap().get("type").equals("message")) {
|
case TARGET_ROOM:
|
||||||
processRoomMessageMessage(eventOverallWebSocketMessage);
|
if ("message".equals(eventOverallWebSocketMessage.getEventMap().get("type"))) {
|
||||||
} else if (eventOverallWebSocketMessage.getEventMap().get("type").equals("join")) {
|
processRoomMessageMessage(eventOverallWebSocketMessage);
|
||||||
processRoomJoinMessage(eventOverallWebSocketMessage);
|
} else if ("join".equals(eventOverallWebSocketMessage.getEventMap().get("type"))) {
|
||||||
}
|
processRoomJoinMessage(eventOverallWebSocketMessage);
|
||||||
break;
|
}
|
||||||
case TARGET_PARTICIPANTS:
|
break;
|
||||||
signalingMessageReceiver.process(eventOverallWebSocketMessage.getEventMap());
|
case TARGET_PARTICIPANTS:
|
||||||
break;
|
signalingMessageReceiver.process(eventOverallWebSocketMessage.getEventMap());
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
Log.i(TAG, "Received unknown/ignored event target: " + target);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.w(TAG, "Received message with event target: null");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -278,16 +293,24 @@ public class MagicWebSocketInstance extends WebSocketListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void processJoinedRoomMessage(String text) throws IOException {
|
private void processJoinedRoomMessage(String text) throws IOException {
|
||||||
JoinedRoomOverallWebSocketMessage joinedRoomOverallWebSocketMessage = LoganSquare.parse(text, JoinedRoomOverallWebSocketMessage.class);
|
JoinedRoomOverallWebSocketMessage joinedRoomOverallWebSocketMessage =
|
||||||
currentRoomToken = joinedRoomOverallWebSocketMessage.getRoomWebSocketMessage().getRoomId();
|
LoganSquare.parse(text, JoinedRoomOverallWebSocketMessage.class);
|
||||||
if (joinedRoomOverallWebSocketMessage.getRoomWebSocketMessage().getRoomPropertiesWebSocketMessage() != null && !TextUtils.isEmpty(currentRoomToken)) {
|
if (joinedRoomOverallWebSocketMessage.getRoomWebSocketMessage() != null) {
|
||||||
sendRoomJoinedEvent();
|
currentRoomToken = joinedRoomOverallWebSocketMessage.getRoomWebSocketMessage().getRoomId();
|
||||||
|
|
||||||
|
if (joinedRoomOverallWebSocketMessage
|
||||||
|
.getRoomWebSocketMessage()
|
||||||
|
.getRoomPropertiesWebSocketMessage() != null &&
|
||||||
|
!TextUtils.isEmpty(currentRoomToken)) {
|
||||||
|
sendRoomJoinedEvent();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processErrorMessage(WebSocket webSocket, String text) throws IOException {
|
private void processErrorMessage(WebSocket webSocket, String text) throws IOException {
|
||||||
Log.e(TAG, "Received error: " + text);
|
Log.e(TAG, "Received error: " + text);
|
||||||
ErrorOverallWebSocketMessage errorOverallWebSocketMessage = LoganSquare.parse(text, ErrorOverallWebSocketMessage.class);
|
ErrorOverallWebSocketMessage errorOverallWebSocketMessage =
|
||||||
|
LoganSquare.parse(text, ErrorOverallWebSocketMessage.class);
|
||||||
if ("no_such_session".equals(errorOverallWebSocketMessage.getErrorWebSocketMessage().getCode())) {
|
if ("no_such_session".equals(errorOverallWebSocketMessage.getErrorWebSocketMessage().getCode())) {
|
||||||
Log.d(TAG, "WebSocket " + webSocket.hashCode() + " resumeID " + resumeId + " expired");
|
Log.d(TAG, "WebSocket " + webSocket.hashCode() + " resumeID " + resumeId + " expired");
|
||||||
resumeId = "";
|
resumeId = "";
|
||||||
@ -301,12 +324,14 @@ public class MagicWebSocketInstance extends WebSocketListener {
|
|||||||
private void processHelloMessage(WebSocket webSocket, String text) throws IOException {
|
private void processHelloMessage(WebSocket webSocket, String text) throws IOException {
|
||||||
connected = true;
|
connected = true;
|
||||||
reconnecting = false;
|
reconnecting = false;
|
||||||
restartCount = 0;
|
|
||||||
String oldResumeId = resumeId;
|
String oldResumeId = resumeId;
|
||||||
HelloResponseOverallWebSocketMessage helloResponseWebSocketMessage = LoganSquare.parse(text, HelloResponseOverallWebSocketMessage.class);
|
HelloResponseOverallWebSocketMessage helloResponseWebSocketMessage =
|
||||||
resumeId = helloResponseWebSocketMessage.getHelloResponseWebSocketMessage().getResumeId();
|
LoganSquare.parse(text, HelloResponseOverallWebSocketMessage.class);
|
||||||
sessionId = helloResponseWebSocketMessage.getHelloResponseWebSocketMessage().getSessionId();
|
if (helloResponseWebSocketMessage.getHelloResponseWebSocketMessage() != null) {
|
||||||
hasMCU = helloResponseWebSocketMessage.getHelloResponseWebSocketMessage().serverHasMCUSupport();
|
resumeId = helloResponseWebSocketMessage.getHelloResponseWebSocketMessage().getResumeId();
|
||||||
|
sessionId = helloResponseWebSocketMessage.getHelloResponseWebSocketMessage().getSessionId();
|
||||||
|
hasMCU = helloResponseWebSocketMessage.getHelloResponseWebSocketMessage().serverHasMCUSupport();
|
||||||
|
}
|
||||||
|
|
||||||
for (int i = 0; i < messagesQueue.size(); i++) {
|
for (int i = 0; i < messagesQueue.size(); i++) {
|
||||||
webSocket.send(messagesQueue.get(i));
|
webSocket.send(messagesQueue.get(i));
|
||||||
@ -333,12 +358,12 @@ public class MagicWebSocketInstance extends WebSocketListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onMessage(WebSocket webSocket, ByteString bytes) {
|
public void onMessage(@NonNull WebSocket webSocket, ByteString bytes) {
|
||||||
Log.d(TAG, "Receiving bytes : " + bytes.hex());
|
Log.d(TAG, "Receiving bytes : " + bytes.hex());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClosing(WebSocket webSocket, int code, String reason) {
|
public void onClosing(@NonNull WebSocket webSocket, int code, @NonNull String reason) {
|
||||||
Log.d(TAG, "Closing : " + code + " / " + reason);
|
Log.d(TAG, "Closing : " + code + " / " + reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -361,7 +386,8 @@ public class MagicWebSocketInstance extends WebSocketListener {
|
|||||||
Log.d(TAG, " roomToken: " + roomToken);
|
Log.d(TAG, " roomToken: " + roomToken);
|
||||||
Log.d(TAG, " session: " + normalBackendSession);
|
Log.d(TAG, " session: " + normalBackendSession);
|
||||||
try {
|
try {
|
||||||
String message = LoganSquare.serialize(webSocketConnectionHelper.getAssembledJoinOrLeaveRoomModel(roomToken, normalBackendSession));
|
String message = LoganSquare.serialize(
|
||||||
|
webSocketConnectionHelper.getAssembledJoinOrLeaveRoomModel(roomToken, normalBackendSession));
|
||||||
if (!connected || reconnecting) {
|
if (!connected || reconnecting) {
|
||||||
messagesQueue.add(message);
|
messagesQueue.add(message);
|
||||||
} else {
|
} else {
|
||||||
@ -378,7 +404,8 @@ public class MagicWebSocketInstance extends WebSocketListener {
|
|||||||
|
|
||||||
private void sendCallMessage(NCSignalingMessage ncSignalingMessage) {
|
private void sendCallMessage(NCSignalingMessage ncSignalingMessage) {
|
||||||
try {
|
try {
|
||||||
String message = LoganSquare.serialize(webSocketConnectionHelper.getAssembledCallMessageModel(ncSignalingMessage));
|
String message = LoganSquare.serialize(
|
||||||
|
webSocketConnectionHelper.getAssembledCallMessageModel(ncSignalingMessage));
|
||||||
if (!connected || reconnecting) {
|
if (!connected || reconnecting) {
|
||||||
messagesQueue.add(message);
|
messagesQueue.add(message);
|
||||||
} else {
|
} else {
|
||||||
@ -419,7 +446,8 @@ public class MagicWebSocketInstance extends WebSocketListener {
|
|||||||
|
|
||||||
@Subscribe(threadMode = ThreadMode.BACKGROUND)
|
@Subscribe(threadMode = ThreadMode.BACKGROUND)
|
||||||
public void onMessageEvent(NetworkEvent networkEvent) {
|
public void onMessageEvent(NetworkEvent networkEvent) {
|
||||||
if (networkEvent.getNetworkConnectionEvent() == NetworkEvent.NetworkConnectionEvent.NETWORK_CONNECTED && !isConnected()) {
|
if (networkEvent.getNetworkConnectionEvent() == NetworkEvent.NetworkConnectionEvent.NETWORK_CONNECTED &&
|
||||||
|
!isConnected()) {
|
||||||
restartWebSocket();
|
restartWebSocket();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -435,9 +463,9 @@ public class MagicWebSocketInstance extends WebSocketListener {
|
|||||||
/**
|
/**
|
||||||
* Temporary implementation of SignalingMessageReceiver until signaling related code is extracted to a Signaling
|
* Temporary implementation of SignalingMessageReceiver until signaling related code is extracted to a Signaling
|
||||||
* class.
|
* class.
|
||||||
*
|
* <p>
|
||||||
* All listeners are called in the WebSocket reader thread. This thread should be the same as long as the
|
* All listeners are called in the WebSocket reader thread. This thread should be the same as long as the WebSocket
|
||||||
* WebSocket stays connected, but it may change whenever it is connected again.
|
* stays connected, but it may change whenever it is connected again.
|
||||||
*/
|
*/
|
||||||
private static class ExternalSignalingMessageReceiver extends SignalingMessageReceiver {
|
private static class ExternalSignalingMessageReceiver extends SignalingMessageReceiver {
|
||||||
public void process(Map<String, Object> eventMap) {
|
public void process(Map<String, Object> eventMap) {
|
||||||
|
Loading…
Reference in New Issue
Block a user