ref: remove connectivity issues indication for remote participants

It's been considered too disruptive and will often misfire especially
if there are issues with the data channels.
This commit is contained in:
paweldomas 2020-02-05 16:43:44 -06:00 committed by Paweł Domas
parent 5d96a226ed
commit 01e36e1c56
6 changed files with 6 additions and 67 deletions

View File

@ -573,11 +573,6 @@
filter: grayscale(.5) opacity(0.8); filter: grayscale(.5) opacity(0.8);
} }
.remoteVideoProblemFilter {
-webkit-filter: grayscale(100%);
filter: grayscale(100%);
}
.videoThumbnailProblemFilter { .videoThumbnailProblemFilter {
-webkit-filter: grayscale(100%); -webkit-filter: grayscale(100%);
filter: grayscale(100%); filter: grayscale(100%);

View File

@ -80,8 +80,7 @@
"FETCH_SESSION_ID": "Obtaining session-id...", "FETCH_SESSION_ID": "Obtaining session-id...",
"GET_SESSION_ID_ERROR": "Get session-id error: {{code}}", "GET_SESSION_ID_ERROR": "Get session-id error: {{code}}",
"GOT_SESSION_ID": "Obtaining session-id... Done", "GOT_SESSION_ID": "Obtaining session-id... Done",
"LOW_BANDWIDTH": "Video for {{displayName}} has been turned off to save bandwidth", "LOW_BANDWIDTH": "Video for {{displayName}} has been turned off to save bandwidth"
"USER_CONNECTION_INTERRUPTED": "{{displayName}} is having connectivity issues..."
}, },
"connectionindicator": { "connectionindicator": {
"address": "Address:", "address": "Address:",

View File

@ -237,17 +237,8 @@ export default class LargeVideoManager {
this.updateLargeVideoAudioLevel(0); this.updateLargeVideoAudioLevel(0);
} }
const isConnectionInterrupted const messageKey
= APP.conference.getParticipantConnectionStatus(id) = connectionStatus === JitsiParticipantConnectionStatus.INACTIVE ? 'connection.LOW_BANDWIDTH' : null;
=== JitsiParticipantConnectionStatus.INTERRUPTED;
let messageKey = null;
if (isConnectionInterrupted) {
messageKey = 'connection.USER_CONNECTION_INTERRUPTED';
} else if (connectionStatus
=== JitsiParticipantConnectionStatus.INACTIVE) {
messageKey = 'connection.LOW_BANDWIDTH';
}
// Do not show connection status message in the audio only mode, // Do not show connection status message in the audio only mode,
// because it's based on the video playback status. // because it's based on the video playback status.
@ -255,7 +246,6 @@ export default class LargeVideoManager {
this.updateParticipantConnStatusIndication( this.updateParticipantConnStatusIndication(
id, id,
!overrideAndHide && isConnectionInterrupted,
!overrideAndHide && messageKey); !overrideAndHide && messageKey);
// Change the participant id the presence label is listening to. // Change the participant id the presence label is listening to.
@ -281,20 +271,12 @@ export default class LargeVideoManager {
* shown on the large video area. * shown on the large video area.
* *
* @param {string} id the id of remote participant(MUC nickname) * @param {string} id the id of remote participant(MUC nickname)
* @param {boolean} showProblemsIndication
* @param {string|null} messageKey the i18n key of the message which will be * @param {string|null} messageKey the i18n key of the message which will be
* displayed on the large video or <tt>null</tt> to hide it. * displayed on the large video or <tt>null</tt> to hide it.
* *
* @private * @private
*/ */
updateParticipantConnStatusIndication( updateParticipantConnStatusIndication(id, messageKey) {
id,
showProblemsIndication,
messageKey) {
// Apply grey filter on the large video
this.videoContainer.showRemoteConnectionProblemIndicator(
showProblemsIndication);
if (messageKey) { if (messageKey) {
// Get user's display name // Get user's display name
const displayName const displayName

View File

@ -19,15 +19,6 @@ export const VIDEO_CONTAINER_TYPE = 'camera';
const FADE_DURATION_MS = 300; const FADE_DURATION_MS = 300;
/**
* The CSS class used to add a filter effect on the large video when there is
* a problem with remote video.
*
* @private
* @type {string}
*/
const REMOTE_PROBLEM_FILTER_CLASS = 'remoteVideoProblemFilter';
/** /**
* Returns an array of the video dimensions, so that it keeps it's aspect * Returns an array of the video dimensions, so that it keeps it's aspect
* ratio and fits available area with it's larger dimension. This method * ratio and fits available area with it's larger dimension. This method
@ -555,20 +546,6 @@ export class VideoContainer extends LargeContainer {
APP.API.notifyLargeVideoVisibilityChanged(show); APP.API.notifyLargeVideoVisibilityChanged(show);
} }
/**
* Indicates that the remote user who is currently displayed by this video
* container is having connectivity issues.
*
* @param {boolean} show <tt>true</tt> to show or <tt>false</tt> to hide
* the indication.
*/
showRemoteConnectionProblemIndicator(show) {
this.$video.toggleClass(REMOTE_PROBLEM_FILTER_CLASS, show);
this.$avatar.toggleClass(REMOTE_PROBLEM_FILTER_CLASS, show);
this._updateBackground();
}
/** /**
* We are doing fadeOut/fadeIn animations on parent div which wraps * We are doing fadeOut/fadeIn animations on parent div which wraps
* largeVideo, because when Temasys plugin is in use it replaces * largeVideo, because when Temasys plugin is in use it replaces
@ -665,8 +642,6 @@ export class VideoContainer extends LargeContainer {
&& this.localFlipX && this.localFlipX
} }
orientationFit = { this._backgroundOrientation } orientationFit = { this._backgroundOrientation }
showRemoteProblemFilter
= { this.$video.hasClass(REMOTE_PROBLEM_FILTER_CLASS) }
videoElement = { this.$video && this.$video[0] } videoElement = { this.$video && this.$video[0] }
videoTrack = { this.stream } />, videoTrack = { this.stream } />,
document.getElementById('largeVideoBackgroundContainer') document.getElementById('largeVideoBackgroundContainer')

View File

@ -144,9 +144,6 @@ class ParticipantView extends Component<Props> {
case JitsiParticipantConnectionStatus.INACTIVE: case JitsiParticipantConnectionStatus.INACTIVE:
messageKey = 'connection.LOW_BANDWIDTH'; messageKey = 'connection.LOW_BANDWIDTH';
break; break;
case JitsiParticipantConnectionStatus.INTERRUPTED:
messageKey = 'connection.USER_CONNECTION_INTERRUPTED';
break;
default: default:
return null; return null;
} }

View File

@ -43,12 +43,6 @@ type Props = {
*/ */
orientationFit: string, orientationFit: string,
/**
* Whether or not to display a filter on the video to visually indicate a
* problem with the video being displayed.
*/
showRemoteProblemFilter: boolean,
/** /**
* The video stream to display. * The video stream to display.
*/ */
@ -131,12 +125,9 @@ export class LargeVideoBackground extends Component<Props> {
render() { render() {
const { const {
hidden, hidden,
mirror, mirror
showRemoteProblemFilter
} = this.props; } = this.props;
const classNames = `large-video-background ${mirror ? 'flip-x' : ''} ${ const classNames = `large-video-background ${mirror ? 'flip-x' : ''} ${hidden ? 'invisible' : ''}`;
hidden ? 'invisible' : ''} ${
showRemoteProblemFilter ? 'remoteVideoProblemFilter' : ''}`;
return ( return (
<div className = { classNames }> <div className = { classNames }>