diff options
| -rw-r--r-- | mullvad-daemon/src/lib.rs | 6 | ||||
| -rw-r--r-- | mullvad-daemon/src/version.rs | 4 | ||||
| -rw-r--r-- | mullvad-types/src/settings/migrations/v1.rs | 1 | ||||
| -rw-r--r-- | mullvad-types/src/settings/mod.rs | 16 |
4 files changed, 26 insertions, 1 deletions
diff --git a/mullvad-daemon/src/lib.rs b/mullvad-daemon/src/lib.rs index aa7912ebf6..8bc0988cc1 100644 --- a/mullvad-daemon/src/lib.rs +++ b/mullvad-daemon/src/lib.rs @@ -485,7 +485,11 @@ where ); tokio_remote.spawn(|_| version_check_future); - let settings = settings::load(); + let mut settings = settings::load(); + + if version::is_beta_version() && settings.get_show_beta_releases().is_none() { + let _ = settings.set_show_beta_releases(true); + } let account_history = account_history::AccountHistory::new( &cache_dir, diff --git a/mullvad-daemon/src/version.rs b/mullvad-daemon/src/version.rs index 72c28144ff..b80ea9d03e 100644 --- a/mullvad-daemon/src/version.rs +++ b/mullvad-daemon/src/version.rs @@ -4,6 +4,10 @@ pub const PRODUCT_VERSION: &str = include_str!(concat!(env!("OUT_DIR"), "/produc /// Contains the date of the git commit this was built from pub const COMMIT_DATE: &str = include_str!(concat!(env!("OUT_DIR"), "/git-commit-date.txt")); +pub fn is_beta_version() -> bool { + PRODUCT_VERSION.contains("beta") +} + pub fn log_version() { log::info!( "Starting {} - {} {}", diff --git a/mullvad-types/src/settings/migrations/v1.rs b/mullvad-types/src/settings/migrations/v1.rs index b939072f6a..ce078bb71f 100644 --- a/mullvad-types/src/settings/migrations/v1.rs +++ b/mullvad-types/src/settings/migrations/v1.rs @@ -70,6 +70,7 @@ impl super::SettingsMigration for Migration { block_when_disconnected: old.block_when_disconnected, auto_connect: old.auto_connect, tunnel_options: old.tunnel_options, + show_beta_releases: None, settings_version: super::SettingsVersion::V2, }), VersionedSettings::V2(new) => VersionedSettings::V2(new), diff --git a/mullvad-types/src/settings/mod.rs b/mullvad-types/src/settings/mod.rs index ed7080f67d..3c873ce98c 100644 --- a/mullvad-types/src/settings/mod.rs +++ b/mullvad-types/src/settings/mod.rs @@ -76,6 +76,8 @@ pub struct Settings { /// might be located. #[cfg_attr(target_os = "android", jnix(skip))] tunnel_options: TunnelOptions, + /// Whether to notify users of beta updates. + show_beta_releases: Option<bool>, /// Specifies settings schema version #[cfg_attr(target_os = "android", jnix(skip))] settings_version: migrations::SettingsVersion, @@ -97,6 +99,7 @@ impl Default for Settings { block_when_disconnected: false, auto_connect: false, tunnel_options: TunnelOptions::default(), + show_beta_releases: None, settings_version: migrations::SettingsVersion::V2, } } @@ -298,6 +301,19 @@ impl Settings { &self.tunnel_options } + pub fn get_show_beta_releases(&self) -> Option<bool> { + self.show_beta_releases.clone() + } + + pub fn set_show_beta_releases(&mut self, enabled: bool) -> Result<bool> { + if Some(enabled) != self.show_beta_releases { + self.show_beta_releases = Some(enabled); + self.save().map(|_| true) + } else { + Ok(false) + } + } + pub fn get_bridge_settings(&self) -> &BridgeSettings { &self.bridge_settings } |
