added microphone access check

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

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

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

@ -25,6 +25,7 @@ const {
protocol: electronProtocol,
session,
shell,
systemPreferences,
} = electron;
// FIXME Hardcoding appId to prevent build failrues on release.
@ -983,3 +984,14 @@ function getThemeFromMainWindow() {
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,
"gatekeeperAssess": false,
"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": {
"sign": false

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

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

Loading…
Cancel
Save