diff options
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.java | 42 | ||||
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/base/models/Provider.java | 9 |
2 files changed, 51 insertions, 0 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 new file mode 100644 index 00000000..ae7818ba --- /dev/null +++ b/app/src/main/java/se/leap/bitmaskclient/base/models/Location.java @@ -0,0 +1,42 @@ +package se.leap.bitmaskclient.base.models; + +import androidx.annotation.NonNull; + +public class Location { + @NonNull public String name; + public double averageLoad; + public int numberOfGateways; + public boolean selected; + + public Location(@NonNull String name, double averageLoad, int numberOfGateways, boolean selected) { + this.name = name; + this.averageLoad = averageLoad; + this.numberOfGateways = numberOfGateways; + this.selected = selected; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Location)) return false; + + Location location = (Location) o; + + if (Double.compare(location.averageLoad, averageLoad) != 0) return false; + if (numberOfGateways != location.numberOfGateways) return false; + if (selected != location.selected) return false; + return name.equals(location.name); + } + + @Override + public int hashCode() { + int result; + long temp; + result = name.hashCode(); + temp = Double.doubleToLongBits(averageLoad); + result = 31 * result + (int) (temp ^ (temp >>> 32)); + result = 31 * result + numberOfGateways; + result = 31 * result + (selected ? 1 : 0); + return result; + } +} diff --git a/app/src/main/java/se/leap/bitmaskclient/base/models/Provider.java b/app/src/main/java/se/leap/bitmaskclient/base/models/Provider.java index 97f1019b..5d8b4e5d 100644 --- a/app/src/main/java/se/leap/bitmaskclient/base/models/Provider.java +++ b/app/src/main/java/se/leap/bitmaskclient/base/models/Provider.java @@ -32,6 +32,7 @@ import java.util.Locale; import static de.blinkt.openvpn.core.connection.Connection.TransportType.OBFS4; import static se.leap.bitmaskclient.base.models.Constants.CAPABILITIES; import static se.leap.bitmaskclient.base.models.Constants.GATEWAYS; +import static se.leap.bitmaskclient.base.models.Constants.LOCATIONS; import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_ALLOWED_REGISTERED; import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_ALLOW_ANONYMOUS; import static se.leap.bitmaskclient.base.models.Constants.TRANSPORT; @@ -333,6 +334,14 @@ public final class Provider implements Parcelable { && !getEipServiceJson().has(ERRORS); } + public boolean hasGatewaysInDifferentLocations() { + try { + return getEipServiceJson().getJSONObject(LOCATIONS).length() > 1; + } catch (NullPointerException | JSONException e) { + return false; + } + } + @Override public int describeContents() { return 0; |