Fix the force TURN option

The call object is created within the js-sdk for inbound calls, so
we never got the chance to set it.
This commit is contained in:
David Baker 2017-11-17 14:54:44 +00:00
parent 6fd09bc09a
commit 6d23182f5f
3 changed files with 10 additions and 4 deletions

View file

@ -52,7 +52,6 @@ limitations under the License.
*/ */
import MatrixClientPeg from './MatrixClientPeg'; import MatrixClientPeg from './MatrixClientPeg';
import UserSettingsStore from './UserSettingsStore';
import PlatformPeg from './PlatformPeg'; import PlatformPeg from './PlatformPeg';
import Modal from './Modal'; import Modal from './Modal';
import sdk from './index'; import sdk from './index';
@ -245,9 +244,7 @@ function _onAction(payload) {
return; return;
} else if (members.length === 2) { } else if (members.length === 2) {
console.log("Place %s call in %s", payload.type, payload.room_id); console.log("Place %s call in %s", payload.type, payload.room_id);
const call = Matrix.createNewMatrixCall(MatrixClientPeg.get(), payload.room_id, { const call = Matrix.createNewMatrixCall(MatrixClientPeg.get(), payload.room_id);
forceTURN: UserSettingsStore.getLocalSetting('webRtcForceTURN', false),
});
placeCall(call); placeCall(call);
} else { // > 2 } else { // > 2
dis.dispatch({ dis.dispatch({

View file

@ -136,6 +136,9 @@ class MatrixClientPeg {
} }
_createClient(creds: MatrixClientCreds) { _createClient(creds: MatrixClientCreds) {
// XXX: This is here and as a require because apparently circular dependencies
// are just broken in webpack (https://github.com/webpack/webpack/issues/1788)
const UserSettingsStore = require('./UserSettingsStore');
const opts = { const opts = {
baseUrl: creds.homeserverUrl, baseUrl: creds.homeserverUrl,
idBaseUrl: creds.identityServerUrl, idBaseUrl: creds.identityServerUrl,
@ -143,6 +146,7 @@ class MatrixClientPeg {
userId: creds.userId, userId: creds.userId,
deviceId: creds.deviceId, deviceId: creds.deviceId,
timelineSupport: true, timelineSupport: true,
forceTURN: UserSettingsStore.getLocalSetting('webRtcForceTURN', false),
}; };
this.matrixClient = createMatrixClient(opts, this.indexedDbWorkerScript); this.matrixClient = createMatrixClient(opts, this.indexedDbWorkerScript);

View file

@ -877,6 +877,11 @@ module.exports = React.createClass({
// TODO: this ought to be a separate component so that we don't need // TODO: this ought to be a separate component so that we don't need
// to rebind the onChange each time we render // to rebind the onChange each time we render
const onChange = (e) => { const onChange = (e) => {
// XXX: awful, but at time of writing, granular settings has landed on
// develop which will almost certainly mean we'll handle this differently.
if (setting.id === 'webRtcForceTURN') {
MatrixClientPeg.get().setForceTURN(e.target.checked);
}
UserSettingsStore.setLocalSetting(setting.id, e.target.checked); UserSettingsStore.setLocalSetting(setting.id, e.target.checked);
if (setting.fn) setting.fn(e.target.checked); if (setting.fn) setting.fn(e.target.checked);
}; };