|
|
|
import React from 'react';
|
|
|
|
// tslint:disable-next-line: no-submodule-imports
|
|
|
|
import useUpdate from 'react-use/lib/useUpdate';
|
|
|
|
import { SettingsKey } from '../../../data/settings-key';
|
|
|
|
import { CallManager, ToastUtils } from '../../../session/utils';
|
|
|
|
import { updateConfirmModal } from '../../../state/ducks/modalDialog';
|
|
|
|
import { SessionButtonColor } from '../../basic/SessionButton';
|
|
|
|
|
|
|
|
import { SessionToggleWithDescription } from '../SessionSettingListItem';
|
|
|
|
|
|
|
|
const toggleCallMediaPermissions = async (triggerUIUpdate: () => void) => {
|
|
|
|
const currentValue = window.getCallMediaPermissions();
|
|
|
|
if (!currentValue) {
|
|
|
|
window.inboxStore?.dispatch(
|
|
|
|
updateConfirmModal({
|
|
|
|
title: window.i18n('callMediaPermissionsDialogTitle'),
|
|
|
|
message: window.i18n('callMediaPermissionsDialogContent'),
|
|
|
|
okTheme: SessionButtonColor.Danger,
|
|
|
|
okText: window.i18n('continue'),
|
|
|
|
onClickOk: async () => {
|
|
|
|
await window.toggleCallMediaPermissionsTo(true);
|
|
|
|
triggerUIUpdate();
|
|
|
|
CallManager.onTurnedOnCallMediaPermissions();
|
|
|
|
},
|
|
|
|
onClickCancel: async () => {
|
|
|
|
await window.toggleCallMediaPermissionsTo(false);
|
|
|
|
triggerUIUpdate();
|
|
|
|
},
|
|
|
|
})
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
await window.toggleCallMediaPermissionsTo(false);
|
|
|
|
triggerUIUpdate();
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
async function toggleStartInTray() {
|
|
|
|
try {
|
|
|
|
const newValue = !(await window.getStartInTray());
|
|
|
|
|
|
|
|
// make sure to write it here too, as this is the value used on the UI to mark the toggle as true/false
|
|
|
|
await window.setSettingValue(SettingsKey.settingsStartInTray, newValue);
|
|
|
|
await window.setStartInTray(newValue);
|
|
|
|
if (!newValue) {
|
|
|
|
ToastUtils.pushRestartNeeded();
|
|
|
|
}
|
|
|
|
} catch (e) {
|
|
|
|
window.log.warn('start in tray change error:', e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export const SettingsCategoryPermissions = (props: { hasPassword: boolean | null }) => {
|
|
|
|
const forceUpdate = useUpdate();
|
|
|
|
const isStartInTrayActive = Boolean(window.getSettingValue(SettingsKey.settingsStartInTray));
|
|
|
|
|
|
|
|
if (props.hasPassword !== null) {
|
|
|
|
return (
|
|
|
|
<>
|
|
|
|
<SessionToggleWithDescription
|
|
|
|
onClickToggle={async () => {
|
|
|
|
await window.toggleMediaPermissions();
|
|
|
|
forceUpdate();
|
|
|
|
}}
|
|
|
|
title={window.i18n('mediaPermissionsTitle')}
|
|
|
|
description={window.i18n('mediaPermissionsDescription')}
|
|
|
|
active={Boolean(window.getSettingValue('media-permissions'))}
|
Adds data-testid to loading-animation, microphone recording button, recording permissions button, stop recording button, consolidates tests into user actions test, adds media to fixtures folder, updates linked device tests with avatar change, username change and group tests. Adds tests for messaging, sending image, video, document, gif and link with preview. Also updates reply message functionality to wait for loading animation
2 years ago
|
|
|
dataTestId="enable-microphone"
|
|
|
|
/>
|
|
|
|
<SessionToggleWithDescription
|
|
|
|
onClickToggle={async () => {
|
|
|
|
await toggleCallMediaPermissions(forceUpdate);
|
|
|
|
forceUpdate();
|
|
|
|
}}
|
|
|
|
title={window.i18n('callMediaPermissionsTitle')}
|
|
|
|
description={window.i18n('callMediaPermissionsDescription')}
|
|
|
|
active={Boolean(window.getCallMediaPermissions())}
|
Adds data-testid to loading-animation, microphone recording button, recording permissions button, stop recording button, consolidates tests into user actions test, adds media to fixtures folder, updates linked device tests with avatar change, username change and group tests. Adds tests for messaging, sending image, video, document, gif and link with preview. Also updates reply message functionality to wait for loading animation
2 years ago
|
|
|
data-dataTestId="enable-calls"
|
|
|
|
/>
|
|
|
|
<SessionToggleWithDescription
|
|
|
|
onClickToggle={async () => {
|
|
|
|
const old = Boolean(window.getSettingValue(SettingsKey.settingsAutoUpdate));
|
|
|
|
await window.setSettingValue(SettingsKey.settingsAutoUpdate, !old);
|
|
|
|
forceUpdate();
|
|
|
|
}}
|
|
|
|
title={window.i18n('autoUpdateSettingTitle')}
|
|
|
|
description={window.i18n('autoUpdateSettingDescription')}
|
|
|
|
active={Boolean(window.getSettingValue(SettingsKey.settingsAutoUpdate))}
|
|
|
|
/>
|
|
|
|
<SessionToggleWithDescription
|
|
|
|
onClickToggle={async () => {
|
|
|
|
await toggleStartInTray();
|
|
|
|
forceUpdate();
|
|
|
|
}}
|
|
|
|
title={window.i18n('startInTrayTitle')}
|
|
|
|
description={window.i18n('startInTrayDescription')}
|
|
|
|
active={isStartInTrayActive}
|
|
|
|
/>
|
|
|
|
</>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
};
|