Преглед изворни кода

feat(prejoin): Show warning if audio device does not receive data

j8
Vlad Piersec пре 4 година
родитељ
комит
4bd57692b7
3 измењених фајлова са 40 додато и 4 уклоњено
  1. 1
    0
      lang/main.json
  2. 35
    2
      react/features/prejoin/middleware.js
  3. 4
    2
      react/features/prejoin/reducer.js

+ 1
- 0
lang/main.json Прегледај датотеку

504
     "poweredby": "powered by",
504
     "poweredby": "powered by",
505
     "prejoin": {
505
     "prejoin": {
506
         "audioAndVideoError": "Audio and video error:",
506
         "audioAndVideoError": "Audio and video error:",
507
+        "audioDeviceProblem": "There is a problem with your audio device",
507
         "audioOnlyError": "Audio error:",
508
         "audioOnlyError": "Audio error:",
508
         "audioTrackError": "Could not create audio track.",
509
         "audioTrackError": "Could not create audio track.",
509
         "calling": "Calling",
510
         "calling": "Calling",

+ 35
- 2
react/features/prejoin/middleware.js Прегледај датотеку

4
 import { SET_AUDIO_MUTED, SET_VIDEO_MUTED } from '../base/media';
4
 import { SET_AUDIO_MUTED, SET_VIDEO_MUTED } from '../base/media';
5
 import { MiddlewareRegistry } from '../base/redux';
5
 import { MiddlewareRegistry } from '../base/redux';
6
 import { updateSettings } from '../base/settings';
6
 import { updateSettings } from '../base/settings';
7
-import { getLocalVideoTrack, replaceLocalTrack } from '../base/tracks';
7
+import {
8
+    getLocalVideoTrack,
9
+    replaceLocalTrack,
10
+    TRACK_ADDED,
11
+    TRACK_NO_DATA_FROM_SOURCE
12
+} from '../base/tracks';
8
 
13
 
9
 import { PREJOIN_START_CONFERENCE } from './actionTypes';
14
 import { PREJOIN_START_CONFERENCE } from './actionTypes';
10
-import { setPrejoinPageVisibility } from './actions';
15
+import {
16
+    setDeviceStatusOk,
17
+    setDeviceStatusWarning,
18
+    setPrejoinPageVisibility
19
+} from './actions';
11
 import { isPrejoinPageVisible } from './functions';
20
 import { isPrejoinPageVisible } from './functions';
12
 
21
 
13
 declare var APP: Object;
22
 declare var APP: Object;
63
         break;
72
         break;
64
     }
73
     }
65
 
74
 
75
+    case TRACK_ADDED:
76
+    case TRACK_NO_DATA_FROM_SOURCE: {
77
+        const state = store.getState();
78
+
79
+        if (isPrejoinPageVisible(state)) {
80
+            const { track: { jitsiTrack: track } } = action;
81
+            const { deviceStatusType, deviceStatusText } = state['features/prejoin'];
82
+
83
+            if (!track.isAudioTrack()) {
84
+                break;
85
+            }
86
+
87
+            if (track.isReceivingData()) {
88
+                if (deviceStatusType === 'warning'
89
+                    && deviceStatusText === 'prejoin.audioDeviceProblem') {
90
+                    store.dispatch(setDeviceStatusOk('prejoin.lookGood'));
91
+                }
92
+            } else if (deviceStatusType === 'ok') {
93
+                store.dispatch(setDeviceStatusWarning('prejoin.audioDeviceProblem'));
94
+            }
95
+        }
96
+        break;
97
+    }
98
+
66
     }
99
     }
67
 
100
 
68
     return next(action);
101
     return next(action);

+ 4
- 2
react/features/prejoin/reducer.js Прегледај датотеку

68
         }
68
         }
69
 
69
 
70
         case SET_DEVICE_STATUS: {
70
         case SET_DEVICE_STATUS: {
71
+            const { deviceStatusType, deviceStatusText } = action.value;
72
+
71
             return {
73
             return {
72
                 ...state,
74
                 ...state,
73
-                deviceStatusText: action.text,
74
-                deviceStatusType: action.type
75
+                deviceStatusText,
76
+                deviceStatusType
75
             };
77
             };
76
         }
78
         }
77
 
79
 

Loading…
Откажи
Сачувај