Update MFC SessionState from search result

This commit is contained in:
0xb00bface 2021-12-24 12:25:38 +01:00
parent 52bbf78e40
commit 1a0cc73ec3
1 changed files with 54 additions and 45 deletions

View File

@ -407,6 +407,15 @@ public class MyFreeCamsClient {
}
}
@Override
public void onMessage(WebSocket webSocket, ByteString bytes) {
super.onMessage(webSocket, bytes);
LOG.debug("msgb: {}", bytes.hex());
}
});
return websocket;
}
private void updateSessionState(SessionState newState) {
if (newState.getUid() <= 0) {
return;
@ -452,15 +461,6 @@ public class MyFreeCamsClient {
model.update(state, getStreamUrl(state));
}
@Override
public void onMessage(WebSocket webSocket, ByteString bytes) {
super.onMessage(webSocket, bytes);
LOG.debug("msgb: {}", bytes.hex());
}
});
return websocket;
}
private Message parseMessage(StringBuilder msgBuffer) {
int packetLengthBytes = 6;
if (msgBuffer.length() < packetLengthBytes) {
@ -676,6 +676,15 @@ public class MyFreeCamsClient {
LOG.trace("Search result: {}", msg);
if (StringUtil.isNotBlank(msg.getMessage()) && !Objects.equals(msg.getMessage(), q)) {
JSONObject json = new JSONObject(msg.getMessage());
JsonAdapter<SessionState> adapter = moshi.adapter(SessionState.class);
try {
SessionState sessionState = Objects.requireNonNull(adapter.fromJson(msg.getMessage()));
updateSessionState(sessionState);
} catch (Exception e) {
LOG.error("Couldn't parse session state message {}", msg, e);
}
String name = json.getString("nm");
MyFreeCamsModel model = mfc.createModel(name);
model.setUid(json.getInt("uid"));