diff options
| author | Oskar Nyberg <oskar@mullvad.net> | 2020-03-26 14:42:41 +0100 |
|---|---|---|
| committer | Oskar Nyberg <oskar@mullvad.net> | 2020-03-26 14:42:41 +0100 |
| commit | e3148ff202e8f1d66e142c096d01f6686673eafa (patch) | |
| tree | b3a1953886ca79f6360b898f3919c4783761c3ee | |
| parent | 72f19b1f69b0e02220b8517abcc27f229afc5534 (diff) | |
| parent | e7386424e3dca92caf225b50b4c5a0ba18281cca (diff) | |
| download | mullvadvpn-e3148ff202e8f1d66e142c096d01f6686673eafa.tar.xz mullvadvpn-e3148ff202e8f1d66e142c096d01f6686673eafa.zip | |
Merge branch 'add-beta-channel-button'
| -rw-r--r-- | gui/src/main/daemon-rpc.ts | 4 | ||||
| -rw-r--r-- | gui/src/main/index.ts | 3 | ||||
| -rw-r--r-- | gui/src/renderer/app.tsx | 6 | ||||
| -rw-r--r-- | gui/src/renderer/components/Preferences.tsx | 20 | ||||
| -rw-r--r-- | gui/src/renderer/containers/PreferencesPage.tsx | 4 | ||||
| -rw-r--r-- | gui/src/shared/ipc-event-channel.ts | 5 |
6 files changed, 42 insertions, 0 deletions
diff --git a/gui/src/main/daemon-rpc.ts b/gui/src/main/daemon-rpc.ts index 494b9d9b4a..b4147ff821 100644 --- a/gui/src/main/daemon-rpc.ts +++ b/gui/src/main/daemon-rpc.ts @@ -464,6 +464,10 @@ export class DaemonRpc { await this.transport.send('set_allow_lan', [allowLan]); } + public async setShowBetaReleases(showBetaReleases: boolean): Promise<void> { + await this.transport.send('set_show_beta_releases', [showBetaReleases]); + } + public async setEnableIpv6(enableIpv6: boolean): Promise<void> { await this.transport.send('set_enable_ipv6', [enableIpv6]); } diff --git a/gui/src/main/index.ts b/gui/src/main/index.ts index 5b44f2fa8c..0f1082e0fa 100644 --- a/gui/src/main/index.ts +++ b/gui/src/main/index.ts @@ -920,6 +920,9 @@ class ApplicationMain { IpcMainEventChannel.settings.handleAllowLan((allowLan: boolean) => this.daemonRpc.setAllowLan(allowLan), ); + IpcMainEventChannel.settings.handleShowBetaReleases((showBetaReleases: boolean) => + this.daemonRpc.setShowBetaReleases(showBetaReleases), + ); IpcMainEventChannel.settings.handleEnableIpv6((enableIpv6: boolean) => this.daemonRpc.setEnableIpv6(enableIpv6), ); diff --git a/gui/src/renderer/app.tsx b/gui/src/renderer/app.tsx index 7f77759154..0758f6496a 100644 --- a/gui/src/renderer/app.tsx +++ b/gui/src/renderer/app.tsx @@ -311,6 +311,12 @@ export default class AppRenderer { actions.settings.updateAllowLan(allowLan); } + public async setShowBetaReleases(showBetaReleases: boolean) { + const actions = this.reduxActions; + await IpcRendererEventChannel.settings.setShowBetaReleases(showBetaReleases); + actions.settings.updateShowBetaReleases(showBetaReleases); + } + public async setEnableIpv6(enableIpv6: boolean) { const actions = this.reduxActions; await IpcRendererEventChannel.settings.setEnableIpv6(enableIpv6); diff --git a/gui/src/renderer/components/Preferences.tsx b/gui/src/renderer/components/Preferences.tsx index d2d1709abc..54d492ce7e 100644 --- a/gui/src/renderer/components/Preferences.tsx +++ b/gui/src/renderer/components/Preferences.tsx @@ -18,6 +18,7 @@ export interface IProps { autoStart: boolean; autoConnect: boolean; allowLan: boolean; + showBetaReleases?: boolean; enableSystemNotifications: boolean; monochromaticIcon: boolean; startMinimized: boolean; @@ -26,6 +27,7 @@ export interface IProps { setEnableSystemNotifications: (flag: boolean) => void; setAutoConnect: (autoConnect: boolean) => void; setAllowLan: (allowLan: boolean) => void; + setShowBetaReleases: (showBetaReleases: boolean) => void; setStartMinimized: (startMinimized: boolean) => void; setMonochromaticIcon: (monochromaticIcon: boolean) => void; onClose: () => void; @@ -160,6 +162,24 @@ export default class Preferences extends Component<IProps> { ) : ( undefined )} + + <Cell.Container> + <Cell.Label> + {messages.pgettext('preferences-view', 'Beta program')} + </Cell.Label> + <Cell.Switch + isOn={this.props.showBetaReleases || false} + onChange={this.props.setShowBetaReleases} + /> + </Cell.Container> + <Cell.Footer> + <Cell.FooterText> + {messages.pgettext( + 'preferences-view', + 'Enable to get notified when new beta versions of the app are released.', + )} + </Cell.FooterText> + </Cell.Footer> </View> </NavigationScrollbars> </View> diff --git a/gui/src/renderer/containers/PreferencesPage.tsx b/gui/src/renderer/containers/PreferencesPage.tsx index 299d5799cb..131d85a1ae 100644 --- a/gui/src/renderer/containers/PreferencesPage.tsx +++ b/gui/src/renderer/containers/PreferencesPage.tsx @@ -10,6 +10,7 @@ import { IReduxState, ReduxDispatch } from '../redux/store'; const mapStateToProps = (state: IReduxState) => ({ autoStart: state.settings.autoStart, allowLan: state.settings.allowLan, + showBetaReleases: state.settings.showBetaReleases, autoConnect: state.settings.guiSettings.autoConnect, enableSystemNotifications: state.settings.guiSettings.enableSystemNotifications, monochromaticIcon: state.settings.guiSettings.monochromaticIcon, @@ -38,6 +39,9 @@ const mapDispatchToProps = (dispatch: ReduxDispatch, props: IAppContext) => { setAllowLan: (allowLan: boolean) => { consumePromise(props.app.setAllowLan(allowLan)); }, + setShowBetaReleases: (showBetaReleases: boolean) => { + consumePromise(props.app.setShowBetaReleases(showBetaReleases)); + }, setStartMinimized: (startMinimized: boolean) => { props.app.setStartMinimized(startMinimized); }, diff --git a/gui/src/shared/ipc-event-channel.ts b/gui/src/shared/ipc-event-channel.ts index 3a24d3f46e..9931ecf56b 100644 --- a/gui/src/shared/ipc-event-channel.ts +++ b/gui/src/shared/ipc-event-channel.ts @@ -67,6 +67,7 @@ interface ITunnelHandlers extends ISender<TunnelState> { interface ISettingsMethods extends IReceiver<ISettings> { setAllowLan(allowLan: boolean): Promise<void>; + setShowBetaReleases(showBetaReleases: boolean): Promise<void>; setEnableIpv6(enableIpv6: boolean): Promise<void>; setBlockWhenDisconnected(block: boolean): Promise<void>; setBridgeState(state: BridgeState): Promise<void>; @@ -78,6 +79,7 @@ interface ISettingsMethods extends IReceiver<ISettings> { interface ISettingsHandlers extends ISender<ISettings> { handleAllowLan(fn: (allowLan: boolean) => Promise<void>): void; + handleShowBetaReleases(fn: (showBetaReleases: boolean) => Promise<void>): void; handleEnableIpv6(fn: (enableIpv6: boolean) => Promise<void>): void; handleBlockWhenDisconnected(fn: (block: boolean) => Promise<void>): void; handleBridgeState(fn: (state: BridgeState) => Promise<void>): void; @@ -158,6 +160,7 @@ const RECONNECT_TUNNEL = 'reconnect-tunnel'; const SETTINGS_CHANGED = 'settings-changed'; const SET_ALLOW_LAN = 'set-allow-lan'; +const SET_SHOW_BETA_RELEASES = 'set-show-beta-releases'; const SET_ENABLE_IPV6 = 'set-enable-ipv6'; const SET_BLOCK_WHEN_DISCONNECTED = 'set-block-when-disconnected'; const SET_BRIDGE_STATE = 'set-bridge-state'; @@ -235,6 +238,7 @@ export class IpcRendererEventChannel { public static settings: ISettingsMethods = { listen: listen(SETTINGS_CHANGED), setAllowLan: requestSender(SET_ALLOW_LAN), + setShowBetaReleases: requestSender(SET_SHOW_BETA_RELEASES), setEnableIpv6: requestSender(SET_ENABLE_IPV6), setBlockWhenDisconnected: requestSender(SET_BLOCK_WHEN_DISCONNECTED), setBridgeState: requestSender(SET_BRIDGE_STATE), @@ -333,6 +337,7 @@ export class IpcMainEventChannel { public static settings: ISettingsHandlers = { notify: sender(SETTINGS_CHANGED), handleAllowLan: requestHandler(SET_ALLOW_LAN), + handleShowBetaReleases: requestHandler(SET_SHOW_BETA_RELEASES), handleEnableIpv6: requestHandler(SET_ENABLE_IPV6), handleBlockWhenDisconnected: requestHandler(SET_BLOCK_WHEN_DISCONNECTED), handleBridgeState: requestHandler(SET_BRIDGE_STATE), |
