123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import { IStore } from '../app/types';
- import { openSheet } from '../base/dialog/actions';
- import JitsiMeetJS from '../base/lib-jitsi-meet';
- import { navigate } from '../mobile/navigation/components/conference/ConferenceNavigationContainerRef';
- import { screen } from '../mobile/navigation/routes';
- import { showNotification } from '../notifications/actions';
- import { NOTIFICATION_TIMEOUT_TYPE } from '../notifications/constants';
-
- import { showStartRecordingNotificationWithCallback } from './actions.any';
- import HighlightDialog from './components/Recording/native/HighlightDialog';
-
- export * from './actions.any';
-
- /**
- * Opens the highlight dialog.
- *
- * @returns {Function}
- */
- export function openHighlightDialog() {
- return (dispatch: IStore['dispatch']) => {
- dispatch(openSheet(HighlightDialog));
- };
- }
-
- /**
- * Signals that a started recording notification should be shown on the
- * screen for a given period.
- *
- * @param {string} streamType - The type of the stream ({@code file} or
- * {@code stream}).
- * @returns {showNotification}
- */
- export function showRecordingLimitNotification(streamType: string) {
- return (dispatch: IStore['dispatch'], getState: IStore['getState']) => {
- const isLiveStreaming = streamType === JitsiMeetJS.constants.recording.mode.STREAM;
- let descriptionKey, titleKey;
-
- if (isLiveStreaming) {
- descriptionKey = 'liveStreaming.limitNotificationDescriptionNative';
- titleKey = 'dialog.liveStreaming';
- } else {
- descriptionKey = 'recording.limitNotificationDescriptionNative';
- titleKey = 'dialog.recording';
- }
-
- const { recordingLimit = {} } = getState()['features/base/config'];
- const { limit, appName } = recordingLimit;
-
- return dispatch(showNotification({
- descriptionArguments: {
- limit,
- app: appName
- },
- descriptionKey,
- titleKey,
- maxLines: 2
- }, NOTIFICATION_TIMEOUT_TYPE.LONG));
- };
- }
-
- /**
- * Displays the notification suggesting to start the recording.
- *
- * @returns {void}
- */
- export function showStartRecordingNotification() {
- return (dispatch: IStore['dispatch']) => {
- const openDialogCallback = () => navigate(screen.conference.recording);
-
- dispatch(showStartRecordingNotificationWithCallback(openDialogCallback));
- };
- }
|