summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/eip
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2021-07-22 15:31:08 +0200
committercyBerta <cyberta@riseup.net>2021-11-15 16:13:41 +0100
commit551ee22aafae99c1f0802ec48f43d448cc77db37 (patch)
tree50756228638aaf55ea17a4baf9285a363cba8760 /app/src/main/java/se/leap/bitmaskclient/eip
parent9b2b57d8617e60c0b69713e1e5f14dbb8e57c70a (diff)
first implementation of the gateway button, started to remove labels from EipFragment, implement method to get the avearage load of a location as an enum value
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/eip')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java50
1 files changed, 50 insertions, 0 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java b/app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java
index 05775d13..b311315c 100644
--- a/app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java
+++ b/app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java
@@ -34,6 +34,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Random;
import de.blinkt.openvpn.VpnProfile;
import de.blinkt.openvpn.core.ConfigParser;
@@ -59,6 +60,37 @@ import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getUseBridges;
*/
public class GatewaysManager {
+ public enum Load {
+ UNKNOWN(0),
+ GOOD(0.25),
+ AVERAGE(0.75),
+ CRITICAL(1.0);
+
+ private final double value;
+
+ Load(double i) {
+ value = i;
+ }
+
+ public static Load getLoadByValue(double value) {
+ if (value == UNKNOWN.value) {
+ return UNKNOWN;
+ } else if (value <= GOOD.value) {
+ return GOOD;
+ } else if (value <= AVERAGE.value) {
+ return AVERAGE;
+ } else if (value <= CRITICAL.value) {
+ return CRITICAL;
+ } else {
+ return UNKNOWN;
+ }
+ }
+
+ public double getValue() {
+ return value;
+ }
+ }
+
private static final String TAG = GatewaysManager.class.getSimpleName();
private Context context;
@@ -117,6 +149,22 @@ public class GatewaysManager {
return locations;
}
+ public Load getLoadForLocation(@Nullable String name) {
+ List <Location> locations = getGatewayLocations();
+ for (Location location : locations) {
+ if (location.name.equals(name)) {
+
+ // fake values for now
+ Random rand = new Random();
+ double averageLoad = rand.nextDouble(); //location.averageLoad;
+ return Load.getLoadByValue(averageLoad);
+ }
+ }
+
+ // location not found
+ return Load.UNKNOWN;
+ }
+
private Gateway getGatewayFromTimezoneCalculation(int nClosest, Connection.TransportType transportType, @Nullable String city) {
List<Gateway> list = new ArrayList<>(gateways.values());
GatewaySelector gatewaySelector = new GatewaySelector(list);
@@ -326,4 +374,6 @@ public class GatewaysManager {
}
}
+
+
}