summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mullvad-daemon/src/lib.rs6
-rw-r--r--mullvad-daemon/src/version.rs4
-rw-r--r--mullvad-types/src/settings/migrations/v1.rs1
-rw-r--r--mullvad-types/src/settings/mod.rs16
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
}