added microphone access check

pull/1814/head
Brice-W 4 years ago
parent 6bf95a47e3
commit 347038cf82

@ -7,5 +7,9 @@
<true/> <true/>
<key>com.apple.security.cs.disable-library-validation</key> <key>com.apple.security.cs.disable-library-validation</key>
<true/> <true/>
<key>com.apple.security.device.audio-input</key>
<true/>
<key>com.apple.security.device.camera</key>
<true/>
</dict> </dict>
</plist> </plist>

@ -5,6 +5,7 @@
storage, storage,
Whisper, Whisper,
BlockedNumberController, BlockedNumberController,
Signal
*/ */
// eslint-disable-next-line func-names // eslint-disable-next-line func-names
@ -336,8 +337,11 @@
window.libsession.Utils.ToastUtils.pushSpellCheckDirty(); window.libsession.Utils.ToastUtils.pushSpellCheckDirty();
}; };
window.toggleMediaPermissions = () => { window.toggleMediaPermissions = async () => {
const value = window.getMediaPermissions(); const value = window.getMediaPermissions();
if (value === false && Signal.OS.isMacOS()) {
await window.askForMicrophoneAccess();
}
window.setMediaPermissions(!value); window.setMediaPermissions(!value);
}; };

@ -25,6 +25,7 @@ const {
protocol: electronProtocol, protocol: electronProtocol,
session, session,
shell, shell,
systemPreferences,
} = electron; } = electron;
// FIXME Hardcoding appId to prevent build failrues on release. // FIXME Hardcoding appId to prevent build failrues on release.
@ -983,3 +984,14 @@ function getThemeFromMainWindow() {
mainWindow.webContents.send('get-theme-setting'); mainWindow.webContents.send('get-theme-setting');
}); });
} }
function askForMicrophoneAccess() {
const status = systemPreferences.getMediaAccessStatus('microphone');
if (status !== 'granted') {
systemPreferences.askForMediaAccess('microphone');
}
}
ipc.on('microphone-access', () => {
askForMicrophoneAccess();
});

@ -236,7 +236,11 @@
"hardenedRuntime": true, "hardenedRuntime": true,
"gatekeeperAssess": false, "gatekeeperAssess": false,
"entitlements": "build/entitlements.mac.plist", "entitlements": "build/entitlements.mac.plist",
"entitlementsInherit": "build/entitlements.mac.plist" "entitlementsInherit": "build/entitlements.mac.plist",
"extendInfo": {
"NSCameraUsageDescription": "Session requires camera access to record video.",
"NSMicrophoneUsageDescription": "Session requires microphone access to record audio."
}
}, },
"dmg": { "dmg": {
"sign": false "sign": false

@ -219,6 +219,8 @@ window.setSettingValue = (settingID, value) => {
window.getMediaPermissions = () => ipc.sendSync('get-media-permissions'); window.getMediaPermissions = () => ipc.sendSync('get-media-permissions');
window.setMediaPermissions = value => ipc.send('set-media-permissions', !!value); window.setMediaPermissions = value => ipc.send('set-media-permissions', !!value);
window.askForMicrophoneAccess = () => ipc.send('microphone-access');
// Auto update setting // Auto update setting
window.getAutoUpdateEnabled = () => ipc.sendSync('get-auto-update-setting'); window.getAutoUpdateEnabled = () => ipc.sendSync('get-auto-update-setting');
window.setAutoUpdateEnabled = value => ipc.send('set-auto-update-setting', !!value); window.setAutoUpdateEnabled = value => ipc.send('set-auto-update-setting', !!value);

@ -253,11 +253,13 @@ class SettingsViewInner extends React.Component<SettingsViewProps, State> {
return ( return (
<div className="session-settings__version-info"> <div className="session-settings__version-info">
<span className="text-selectable">v{window.versionInfo.version}</span> <span className="text-selectable">v{window.versionInfo.version}</span>
<span><SessionIconButton <span>
iconSize={SessionIconSize.Medium} <SessionIconButton
iconType={SessionIconType.Oxen} iconSize={SessionIconSize.Medium}
onClick={openOxenWebsite} iconType={SessionIconType.Oxen}
/></span> onClick={openOxenWebsite}
/>
</span>
<span className="text-selectable">{window.versionInfo.commitHash}</span> <span className="text-selectable">{window.versionInfo.commitHash}</span>
</div> </div>
); );

Loading…
Cancel
Save