summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2023-10-25 17:05:06 +0200
committerJonatan Rhodin <jonatan.rhodin@mullvad.net>2023-10-25 17:05:06 +0200
commitbeb1fe5aa803aa347b82832f4a875aa8adfed849 (patch)
tree940a1bd1436c48011251e83254a04a2ffef48987
parent5d424ee0fb38d97a17d0b7cccdb005347ff3dfd3 (diff)
parent285f89f5bb803acaf6748c63149ff75d6b65e531 (diff)
downloadmullvadvpn-beb1fe5aa803aa347b82832f4a875aa8adfed849.tar.xz
mullvadvpn-beb1fe5aa803aa347b82832f4a875aa8adfed849.zip
Merge branch 'add-providers-data-model-from-the-daemon-droid-435'
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt1
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/Providers.kt6
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayConstraints.kt1
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayConstraintsUpdate.kt1
-rw-r--r--android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/RelayListListener.kt3
-rw-r--r--mullvad-jni/src/classes.rs2
-rw-r--r--mullvad-types/src/relay_constraints.rs4
7 files changed, 15 insertions, 3 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt
index fe68c63408..d0f54a0cf6 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt
@@ -101,6 +101,7 @@ class RelayListListener(
location = Constraint.Any(),
ownership = Constraint.Any(),
wireguardConstraints = WireguardConstraints(Constraint.Any()),
+ providers = Constraint.Any()
)
)
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/Providers.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/Providers.kt
new file mode 100644
index 0000000000..5d97588ca6
--- /dev/null
+++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/Providers.kt
@@ -0,0 +1,6 @@
+package net.mullvad.mullvadvpn.model
+
+import android.os.Parcelable
+import kotlinx.parcelize.Parcelize
+
+@JvmInline @Parcelize value class Providers(val providers: HashSet<String>) : Parcelable
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayConstraints.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayConstraints.kt
index 21b1575edc..031b09bace 100644
--- a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayConstraints.kt
+++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayConstraints.kt
@@ -6,6 +6,7 @@ import kotlinx.parcelize.Parcelize
@Parcelize
data class RelayConstraints(
val location: Constraint<LocationConstraint>,
+ val providers: Constraint<Providers>,
val ownership: Constraint<Ownership>,
val wireguardConstraints: WireguardConstraints,
) : Parcelable
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayConstraintsUpdate.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayConstraintsUpdate.kt
index 9d07ba92c3..8a382a87d9 100644
--- a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayConstraintsUpdate.kt
+++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayConstraintsUpdate.kt
@@ -2,6 +2,7 @@ package net.mullvad.mullvadvpn.model
data class RelayConstraintsUpdate(
val location: Constraint<LocationConstraint>?,
+ val providers: Constraint<Providers>?,
val ownership: Constraint<Ownership>?,
val wireguardConstraints: WireguardConstraints?
)
diff --git a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/RelayListListener.kt b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/RelayListListener.kt
index cb57e7585d..6974d804a1 100644
--- a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/RelayListListener.kt
+++ b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/RelayListListener.kt
@@ -99,7 +99,8 @@ class RelayListListener(endpoint: ServiceEndpoint) {
RelayConstraintsUpdate(
location = location,
wireguardConstraints = wireguardConstraints,
- ownership = Constraint.Any()
+ ownership = Constraint.Any(),
+ providers = Constraint.Any()
)
)
diff --git a/mullvad-jni/src/classes.rs b/mullvad-jni/src/classes.rs
index 9bdec16691..45dc21a4a2 100644
--- a/mullvad-jni/src/classes.rs
+++ b/mullvad-jni/src/classes.rs
@@ -3,6 +3,7 @@ pub const CLASSES: &[&str] = &[
"java/net/InetAddress",
"java/net/InetSocketAddress",
"java/util/ArrayList",
+ "java/util/HashSet",
"net/mullvad/mullvadvpn/model/AccountAndDevice",
"net/mullvad/mullvadvpn/model/AccountData",
"net/mullvad/mullvadvpn/model/AppVersionInfo",
@@ -43,6 +44,7 @@ pub const CLASSES: &[&str] = &[
"net/mullvad/mullvadvpn/model/QuantumResistantState",
"net/mullvad/mullvadvpn/model/Port",
"net/mullvad/mullvadvpn/model/PortRange",
+ "net/mullvad/mullvadvpn/model/Providers",
"net/mullvad/mullvadvpn/model/Relay",
"net/mullvad/mullvadvpn/model/RelayConstraints",
"net/mullvad/mullvadvpn/model/RelayEndpointData$Bridge",
diff --git a/mullvad-types/src/relay_constraints.rs b/mullvad-types/src/relay_constraints.rs
index 600a04646c..d0178c3c98 100644
--- a/mullvad-types/src/relay_constraints.rs
+++ b/mullvad-types/src/relay_constraints.rs
@@ -369,7 +369,6 @@ impl<'a> fmt::Display for LocationConstraintFormatter<'a> {
#[cfg_attr(target_os = "android", jnix(package = "net.mullvad.mullvadvpn.model"))]
pub struct RelayConstraints {
pub location: Constraint<LocationConstraint>,
- #[cfg_attr(target_os = "android", jnix(skip))]
pub providers: Constraint<Providers>,
pub ownership: Constraint<Ownership>,
#[cfg_attr(target_os = "android", jnix(skip))]
@@ -607,6 +606,8 @@ pub struct OwnershipParseError;
/// provider.
pub type Provider = String;
+#[cfg_attr(target_os = "android", derive(IntoJava, FromJava))]
+#[cfg_attr(target_os = "android", jnix(package = "net.mullvad.mullvadvpn.model"))]
#[derive(Debug, Clone, Eq, PartialEq, Deserialize, Serialize)]
pub struct Providers {
providers: HashSet<Provider>,
@@ -986,7 +987,6 @@ impl RelaySettingsUpdate {
#[serde(default)]
pub struct RelayConstraintsUpdate {
pub location: Option<Constraint<LocationConstraint>>,
- #[cfg_attr(target_os = "android", jnix(default))]
pub providers: Option<Constraint<Providers>>,
pub ownership: Option<Constraint<Ownership>>,
#[cfg_attr(target_os = "android", jnix(default))]