summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/base/models
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2021-11-21 19:36:46 +0100
committercyBerta <cyberta@riseup.net>2021-11-21 19:39:52 +0100
commita6cd31ae8624f830454adc627ac3a6be323a5333 (patch)
treeeadd921ce162958c35b7fc0be1b5fc21b359c2cb /app/src/main/java/se/leap/bitmaskclient/base/models
parent4ebcedd733efce56c91ef21c9b5b167a7820db12 (diff)
implement new gateway selection UI, using same UX principles as for desktop
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/base/models')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/models/Location.java25
1 files changed, 22 insertions, 3 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/models/Location.java b/app/src/main/java/se/leap/bitmaskclient/base/models/Location.java
index 3eb82f22..599a358a 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/models/Location.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/models/Location.java
@@ -18,16 +18,20 @@
package se.leap.bitmaskclient.base.models;
import androidx.annotation.NonNull;
+
import java.util.HashSet;
+
import de.blinkt.openvpn.core.connection.Connection;
-public class Location {
- @NonNull public String name;
- @NonNull public HashSet<Connection.TransportType> supportedTransports;
+public class Location implements Cloneable {
+ @NonNull public String name = "";
+ @NonNull public HashSet<Connection.TransportType> supportedTransports = new HashSet<>();
public double averageLoad;
public int numberOfGateways;
public boolean selected;
+ public Location() {}
+
public Location(@NonNull String name, double averageLoad, int numberOfGateways, @NonNull HashSet<Connection.TransportType> supportedTransports, boolean selected) {
this.name = name;
this.averageLoad = averageLoad;
@@ -36,6 +40,10 @@ public class Location {
this.selected = selected;
}
+ public boolean hasLocationInfo() {
+ return numberOfGateways != 0 && supportedTransports.size() != 0 && !name.isEmpty();
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
@@ -60,4 +68,15 @@ public class Location {
result = 31 * result + numberOfGateways;
return result;
}
+
+ @Override
+ public Location clone() throws CloneNotSupportedException {
+ Location copy = (Location) super.clone();
+ copy.name = this.name;
+ copy.supportedTransports = (HashSet<Connection.TransportType>) this.supportedTransports.clone();
+ copy.numberOfGateways = this.numberOfGateways;
+ copy.averageLoad = this.averageLoad;
+ return copy;
+ }
+
}