|
|
@@ -1,5 +1,10 @@
|
|
1
|
1
|
/* @flow */
|
|
2
|
2
|
|
|
|
3
|
+
|
|
|
4
|
+import {
|
|
|
5
|
+ createRecordingEvent,
|
|
|
6
|
+ sendAnalytics
|
|
|
7
|
+} from '../analytics';
|
|
3
|
8
|
import { APP_WILL_MOUNT, APP_WILL_UNMOUNT } from '../base/app';
|
|
4
|
9
|
import { CONFERENCE_WILL_JOIN, getCurrentConference } from '../base/conference';
|
|
5
|
10
|
import JitsiMeetJS, {
|
|
|
@@ -117,6 +122,7 @@ MiddlewareRegistry.register(({ dispatch, getState }) => next => action => {
|
|
117
|
122
|
&& (!oldSessionData || oldSessionData.status !== ON)
|
|
118
|
123
|
&& updatedSessionData.mode
|
|
119
|
124
|
=== JitsiRecordingConstants.mode.FILE) {
|
|
|
125
|
+ sendAnalytics(createRecordingEvent('start', 'file'));
|
|
120
|
126
|
dispatch(playSound(RECORDING_ON_SOUND_ID));
|
|
121
|
127
|
} else if (updatedSessionData.status === OFF
|
|
122
|
128
|
&& (!oldSessionData || oldSessionData.status !== OFF)) {
|
|
|
@@ -126,6 +132,15 @@ MiddlewareRegistry.register(({ dispatch, getState }) => next => action => {
|
|
126
|
132
|
|
|
127
|
133
|
if (updatedSessionData.mode
|
|
128
|
134
|
=== JitsiRecordingConstants.mode.FILE) {
|
|
|
135
|
+ let duration = 0;
|
|
|
136
|
+
|
|
|
137
|
+ // eslint-disable-next-line max-depth
|
|
|
138
|
+ if (oldSessionData && oldSessionData.timestamp) {
|
|
|
139
|
+ duration
|
|
|
140
|
+ = (Date.now() / 1000) - oldSessionData.timestamp;
|
|
|
141
|
+ }
|
|
|
142
|
+ sendAnalytics(
|
|
|
143
|
+ createRecordingEvent('stop', 'file', duration));
|
|
129
|
144
|
dispatch(stopSound(RECORDING_ON_SOUND_ID));
|
|
130
|
145
|
dispatch(playSound(RECORDING_OFF_SOUND_ID));
|
|
131
|
146
|
}
|