Remove unsupported auto-launch setting on Linux

This commit is contained in:
Evan Hahn 2021-05-19 15:18:15 -05:00 committed by Scott Nonnenberg
parent 58294eed00
commit 8f0731d498
5 changed files with 37 additions and 8 deletions

View file

@ -152,12 +152,14 @@
window.setSpellCheck(val);
},
});
new CheckboxView({
el: this.$('.auto-launch-setting'),
name: 'auto-launch-setting',
value: window.initialData.autoLaunch,
setFn: window.setAutoLaunch,
});
if (Settings.isAutoLaunchSupported()) {
new CheckboxView({
el: this.$('.auto-launch-setting'),
name: 'auto-launch-setting',
value: window.initialData.autoLaunch,
setFn: window.setAutoLaunch,
});
}
if (Settings.isHideMenuBarSupported()) {
new CheckboxView({
el: this.$('.menu-bar-setting'),
@ -230,6 +232,7 @@
isAudioNotificationSupported: Settings.isAudioNotificationSupported(),
isHideMenuBarSupported: Settings.isHideMenuBarSupported(),
isDrawAttentionSupported: Settings.isDrawAttentionSupported(),
isAutoLaunchSupported: Settings.isAutoLaunchSupported(),
hasSystemTheme: true,
themeLight: i18n('themeLight'),
themeDark: i18n('themeDark'),

View file

@ -118,10 +118,12 @@
{{ spellCheckDirtyText }}
</p>
</div>
{{ #isAutoLaunchSupported }}
<div class='auto-launch-setting'>
<input type='checkbox' name='auto-launch-setting' id='auto-launch-setting' />
<label for='auto-launch-setting'>{{ autoLaunchDescription }}</label>
</div>
{{ /isAutoLaunchSupported }}
<hr>
<div class='calling-setting'>
<h3>{{ calling }}</h3>

View file

@ -102,6 +102,24 @@ describe('Settings', () => {
});
});
describe('isAutoLaunchSupported', () => {
it('returns true on Windows', () => {
sandbox.stub(process, 'platform').value('win32');
sandbox.stub(os, 'release').returns('8.0.0');
assert.isTrue(Settings.isAutoLaunchSupported());
});
it('returns true on macOS', () => {
sandbox.stub(process, 'platform').value('darwin');
assert.isTrue(Settings.isAutoLaunchSupported());
});
it('returns false on Linux', () => {
sandbox.stub(process, 'platform').value('linux');
assert.isFalse(Settings.isAutoLaunchSupported());
});
});
describe('isHideMenuBarSupported', () => {
it('returns false on macOS', () => {
sandbox.stub(process, 'platform').value('darwin');

View file

@ -29,6 +29,12 @@ export const isAudioNotificationSupported = (): boolean =>
export const isNotificationGroupingSupported = (): boolean =>
!OS.isWindows() || OS.isWindows(MIN_WINDOWS_VERSION);
// Login item settings are only supported on macOS and Windows, according to [Electron's
// docs][0].
// [0]: https://www.electronjs.org/docs/api/app#appsetloginitemsettingssettings-macos-windows
export const isAutoLaunchSupported = (): boolean =>
OS.isWindows() || OS.isMacOS();
// the "hide menu bar" option is specific to Windows and Linux
export const isHideMenuBarSupported = (): boolean => !OS.isMacOS();

View file

@ -1228,7 +1228,7 @@
{
"rule": "jQuery-$(",
"path": "js/views/settings_view.js",
"line": " el: this.$('.auto-launch-setting'),",
"line": " el: this.$('.auto-launch-setting'),",
"reasonCategory": "usageTrusted",
"updated": "2021-05-11T20:38:03.542Z",
"reasonDetail": "Protected from arbitrary input"
@ -14225,4 +14225,4 @@
"updated": "2021-03-18T21:41:28.361Z",
"reasonDetail": "A generic hook. Typically not to be used with non-DOM values."
}
]
]