2018-03-07 00:28:19 +00:00
|
|
|
// @flow
|
2017-02-03 18:50:06 +00:00
|
|
|
|
|
|
|
import type { Dispatch } from 'redux';
|
2016-12-12 21:13:17 +00:00
|
|
|
|
2017-02-03 18:50:06 +00:00
|
|
|
declare var APP: Object;
|
2017-02-16 21:22:40 +00:00
|
|
|
declare var config: Object;
|
2017-02-03 18:50:06 +00:00
|
|
|
|
2019-03-25 11:33:41 +00:00
|
|
|
import { configureInitialDevices } from '../devices';
|
2019-10-04 07:31:22 +00:00
|
|
|
import { getBackendSafeRoomName } from '../util';
|
2019-03-25 11:33:41 +00:00
|
|
|
|
2017-01-31 20:58:48 +00:00
|
|
|
export {
|
|
|
|
connectionEstablished,
|
2017-05-09 05:15:43 +00:00
|
|
|
connectionFailed,
|
|
|
|
setLocationURL
|
2017-09-07 17:21:56 +00:00
|
|
|
} from './actions.native';
|
2019-08-21 14:50:00 +00:00
|
|
|
import logger from './logger';
|
2017-01-31 20:58:48 +00:00
|
|
|
|
2016-12-12 21:13:17 +00:00
|
|
|
/**
|
|
|
|
* Opens new connection.
|
|
|
|
*
|
|
|
|
* @returns {Promise<JitsiConnection>}
|
|
|
|
*/
|
|
|
|
export function connect() {
|
2019-03-19 15:42:25 +00:00
|
|
|
return (dispatch: Dispatch<any>, getState: Function) => {
|
2019-10-04 07:31:22 +00:00
|
|
|
const room = getBackendSafeRoomName(getState()['features/base/conference'].room);
|
2016-12-12 21:13:17 +00:00
|
|
|
|
|
|
|
// XXX For web based version we use conference initialization logic
|
|
|
|
// from the old app (at the moment of writing).
|
2019-03-25 11:33:41 +00:00
|
|
|
return dispatch(configureInitialDevices()).then(
|
|
|
|
() => APP.conference.init({
|
|
|
|
roomName: room
|
|
|
|
}).catch(error => {
|
|
|
|
APP.API.notifyConferenceLeft(APP.conference.roomName);
|
|
|
|
logger.error(error);
|
|
|
|
}));
|
2016-12-12 21:13:17 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Closes connection.
|
|
|
|
*
|
2018-03-07 00:28:19 +00:00
|
|
|
* @param {boolean} [requestFeedback] - Whether or not to attempt showing a
|
|
|
|
* request for call feedback.
|
2016-12-12 21:13:17 +00:00
|
|
|
* @returns {Function}
|
|
|
|
*/
|
2018-03-07 00:28:19 +00:00
|
|
|
export function disconnect(requestFeedback: boolean = false) {
|
2017-01-10 21:55:31 +00:00
|
|
|
// XXX For web based version we use conference hanging up logic from the old
|
|
|
|
// app.
|
2018-03-07 00:28:19 +00:00
|
|
|
return () => APP.conference.hangup(requestFeedback);
|
2016-12-12 21:13:17 +00:00
|
|
|
}
|