diff --git a/pom.xml b/pom.xml index 39be5804..16757823 100644 --- a/pom.xml +++ b/pom.xml @@ -357,7 +357,7 @@ ${project.groupId} jitsi-xmpp-extensions - 1.0-78-g62d03d4 + 1.0-82-ge8aacab org.slf4j diff --git a/src/main/java/org/jitsi/jigasi/sounds/SoundNotificationManager.java b/src/main/java/org/jitsi/jigasi/sounds/SoundNotificationManager.java index 7f3872e4..0f7a70cf 100644 --- a/src/main/java/org/jitsi/jigasi/sounds/SoundNotificationManager.java +++ b/src/main/java/org/jitsi/jigasi/sounds/SoundNotificationManager.java @@ -235,28 +235,35 @@ public void process(Presence presence) { if (gatewaySession.getFocusResourceAddr().equals(presence.getFrom().getResourceOrEmpty().toString())) { + boolean isJibriRecordingOn = false; RecordingStatus rs = presence.getExtension(RecordingStatus.class); - if (rs != null) { - notifyRecordingStatusChanged(rs.getRecordingMode(), rs.getStatus()); - - return; + isJibriRecordingOn = true; } + boolean isAudioRecordingOn = false; ConferenceProperties props = presence.getExtension(ConferenceProperties.class); + if (props != null) { - props.getProperties().stream() - .filter(p -> ConferenceProperties.KEY_AUDIO_RECORDING_ENABLED.equals(p.getKey())) - .findFirst().ifPresent(p -> - { - if (p.getValue().equals(Boolean.TRUE.toString())) - { - notifyRecordingStatusChanged(JibriIq.RecordingMode.FILE, JibriIq.Status.ON); - } - }); + ConferenceProperties.ConferenceProperty prop + = props.getProperties().stream() + .filter(p -> ConferenceProperties.KEY_AUDIO_RECORDING_ENABLED.equals(p.getKey())) + .findFirst().orElse(null); + + isAudioRecordingOn = prop != null && prop.getValue().equals(Boolean.TRUE.toString()); } + + JibriIq.Status newStatus + = isJibriRecordingOn || isAudioRecordingOn ? JibriIq.Status.ON : JibriIq.Status.OFF; + + if (currentJibriStatus.equals(newStatus)) + { + return; + } + + notifyRecordingStatusChanged(rs != null ? rs.getRecordingMode() : JibriIq.RecordingMode.FILE, newStatus); } } @@ -269,11 +276,6 @@ public void process(Presence presence) private void notifyRecordingStatusChanged( JibriIq.RecordingMode mode, JibriIq.Status status) { - // not a change, ignore - if (currentJibriStatus.equals(status)) - { - return; - } currentJibriStatus = status; String offSound;