From cbf967ea69c9097205e0167d3f9396eb07bc612c Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Fri, 17 Jul 2020 15:53:01 -0600 Subject: [PATCH] Remove legacy call components --- res/css/_components.scss | 2 - res/css/views/voip/_CallView.scss | 25 --- res/css/views/voip/_IncomingCallbox.scss | 69 -------- src/components/views/voip/CallPreview.js | 101 ----------- src/components/views/voip/CallView.js | 167 ------------------- src/components/views/voip/IncomingCallBox.js | 91 ---------- 6 files changed, 455 deletions(-) delete mode 100644 res/css/views/voip/_CallView.scss delete mode 100644 res/css/views/voip/_IncomingCallbox.scss delete mode 100644 src/components/views/voip/CallPreview.js delete mode 100644 src/components/views/voip/CallView.js delete mode 100644 src/components/views/voip/IncomingCallBox.js diff --git a/res/css/_components.scss b/res/css/_components.scss index e856fa8589..da1af75ec3 100644 --- a/res/css/_components.scss +++ b/res/css/_components.scss @@ -217,7 +217,5 @@ @import "./views/terms/_InlineTermsAgreement.scss"; @import "./views/verification/_VerificationShowSas.scss"; @import "./views/voip/_CallContainer.scss"; -@import "./views/voip/_CallView.scss"; @import "./views/voip/_CallView2.scss"; -@import "./views/voip/_IncomingCallbox.scss"; @import "./views/voip/_VideoView.scss"; diff --git a/res/css/views/voip/_CallView.scss b/res/css/views/voip/_CallView.scss deleted file mode 100644 index 4650f30c1d..0000000000 --- a/res/css/views/voip/_CallView.scss +++ /dev/null @@ -1,25 +0,0 @@ -/* -Copyright 2015, 2016 OpenMarket Ltd - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -.mx_CallView_voice { - background-color: $accent-color; - color: $accent-fg-color; - cursor: pointer; - text-align: center; - padding: 6px; - font-weight: bold; - font-size: $font-13px; -} diff --git a/res/css/views/voip/_IncomingCallbox.scss b/res/css/views/voip/_IncomingCallbox.scss deleted file mode 100644 index ed33de470d..0000000000 --- a/res/css/views/voip/_IncomingCallbox.scss +++ /dev/null @@ -1,69 +0,0 @@ -/* -Copyright 2015, 2016 OpenMarket Ltd - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -.mx_IncomingCallBox { - text-align: center; - border: 1px solid #a4a4a4; - border-radius: 8px; - background-color: $primary-bg-color; - position: fixed; - z-index: 1000; - padding: 6px; - margin-top: -3px; - margin-left: -20px; - width: 200px; -} - -.mx_IncomingCallBox_chevron { - padding: 12px; - position: absolute; - left: -21px; - top: 0px; -} - -.mx_IncomingCallBox_title { - padding: 6px; - font-weight: bold; -} - -.mx_IncomingCallBox_buttons { - display: flex; -} - -.mx_IncomingCallBox_buttons_cell { - vertical-align: middle; - padding: 6px; - flex: 1; -} - -.mx_IncomingCallBox_buttons_decline, -.mx_IncomingCallBox_buttons_accept { - vertical-align: middle; - width: 80px; - height: 36px; - line-height: $font-36px; - border-radius: 36px; - color: $accent-fg-color; - margin: auto; -} - -.mx_IncomingCallBox_buttons_decline { - background-color: $voip-decline-color; -} - -.mx_IncomingCallBox_buttons_accept { - background-color: $voip-accept-color; -} diff --git a/src/components/views/voip/CallPreview.js b/src/components/views/voip/CallPreview.js deleted file mode 100644 index c465170950..0000000000 --- a/src/components/views/voip/CallPreview.js +++ /dev/null @@ -1,101 +0,0 @@ -/* -Copyright 2017, 2018 New Vector Ltd -Copyright 2019 The Matrix.org Foundation C.I.C. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -import React from 'react'; -import PropTypes from 'prop-types'; -import createReactClass from 'create-react-class'; -import RoomViewStore from '../../../stores/RoomViewStore'; -import CallHandler from '../../../CallHandler'; -import dis from '../../../dispatcher/dispatcher'; -import * as sdk from '../../../index'; - -export default createReactClass({ - displayName: 'CallPreview', - - propTypes: { - // A Conference Handler implementation - // Must have a function signature: - // getConferenceCallForRoom(roomId: string): MatrixCall - ConferenceHandler: PropTypes.object, - }, - - getInitialState: function() { - return { - roomId: RoomViewStore.getRoomId(), - activeCall: CallHandler.getAnyActiveCall(), - }; - }, - - componentDidMount: function() { - this._roomStoreToken = RoomViewStore.addListener(this._onRoomViewStoreUpdate); - this.dispatcherRef = dis.register(this._onAction); - }, - - componentWillUnmount: function() { - if (this._roomStoreToken) { - this._roomStoreToken.remove(); - } - dis.unregister(this.dispatcherRef); - }, - - _onRoomViewStoreUpdate: function(payload) { - if (RoomViewStore.getRoomId() === this.state.roomId) return; - this.setState({ - roomId: RoomViewStore.getRoomId(), - }); - }, - - _onAction: function(payload) { - switch (payload.action) { - // listen for call state changes to prod the render method, which - // may hide the global CallView if the call it is tracking is dead - case 'call_state': - this.setState({ - activeCall: CallHandler.getAnyActiveCall(), - }); - break; - } - }, - - _onCallViewClick: function() { - const call = CallHandler.getAnyActiveCall(); - if (call) { - dis.dispatch({ - action: 'view_room', - room_id: call.groupRoomId || call.roomId, - }); - } - }, - - render: function() { - const callForRoom = CallHandler.getCallForRoom(this.state.roomId); - const showCall = (this.state.activeCall && this.state.activeCall.call_state === 'connected' && !callForRoom); - - if (showCall) { - const CallView = sdk.getComponent('voip.CallView'); - return ( - - ); - } - const PersistentApp = sdk.getComponent('elements.PersistentApp'); - return ; - }, -}); - diff --git a/src/components/views/voip/CallView.js b/src/components/views/voip/CallView.js deleted file mode 100644 index a0a566dfac..0000000000 --- a/src/components/views/voip/CallView.js +++ /dev/null @@ -1,167 +0,0 @@ -/* -Copyright 2015, 2016 OpenMarket Ltd -Copyright 2019 The Matrix.org Foundation C.I.C. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ -import React, {createRef} from 'react'; -import PropTypes from 'prop-types'; -import createReactClass from 'create-react-class'; -import dis from '../../../dispatcher/dispatcher'; -import CallHandler from '../../../CallHandler'; -import * as sdk from '../../../index'; -import {MatrixClientPeg} from '../../../MatrixClientPeg'; -import { _t } from '../../../languageHandler'; - -export default createReactClass({ - displayName: 'CallView', - - propTypes: { - // js-sdk room object. If set, we will only show calls for the given - // room; if not, we will show any active call. - room: PropTypes.object, - - // A Conference Handler implementation - // Must have a function signature: - // getConferenceCallForRoom(roomId: string): MatrixCall - ConferenceHandler: PropTypes.object, - - // maxHeight style attribute for the video panel - maxVideoHeight: PropTypes.number, - - // a callback which is called when the user clicks on the video div - onClick: PropTypes.func, - - // a callback which is called when the content in the callview changes - // in a way that is likely to cause a resize. - onResize: PropTypes.func, - - // render ongoing audio call details - useful when in LeftPanel - showVoice: PropTypes.bool, - }, - - getInitialState: function() { - return { - // the call this view is displaying (if any) - call: null, - }; - }, - - // TODO: [REACT-WARNING] Replace component with real class, use constructor for refs - UNSAFE_componentWillMount: function() { - this._video = createRef(); - }, - - componentDidMount: function() { - this.dispatcherRef = dis.register(this.onAction); - this.showCall(); - }, - - componentWillUnmount: function() { - dis.unregister(this.dispatcherRef); - }, - - onAction: function(payload) { - // don't filter out payloads for room IDs other than props.room because - // we may be interested in the conf 1:1 room - if (payload.action !== 'call_state') { - return; - } - this.showCall(); - }, - - showCall: function() { - let call; - - if (this.props.room) { - const roomId = this.props.room.roomId; - call = CallHandler.getCallForRoom(roomId) || - (this.props.ConferenceHandler ? - this.props.ConferenceHandler.getConferenceCallForRoom(roomId) : - null - ); - - if (this.call) { - this.setState({ call: call }); - } - } else { - call = CallHandler.getAnyActiveCall(); - // Ignore calls if we can't get the room associated with them. - // I think the underlying problem is that the js-sdk sends events - // for calls before it has made the rooms available in the store, - // although this isn't confirmed. - if (MatrixClientPeg.get().getRoom(call.roomId) === null) { - call = null; - } - this.setState({ call: call }); - } - - if (call) { - call.setLocalVideoElement(this.getVideoView().getLocalVideoElement()); - call.setRemoteVideoElement(this.getVideoView().getRemoteVideoElement()); - // always use a separate element for audio stream playback. - // this is to let us move CallView around the DOM without interrupting remote audio - // during playback, by having the audio rendered by a top-level