From 645545a86bdd1bc832ad2d14f17f5727e352356c Mon Sep 17 00:00:00 2001 From: cyBerta Date: Fri, 30 Jul 2021 15:46:40 +0200 Subject: draft gateway selection UI according to simlpy secure's proposals --- .../se/leap/bitmaskclient/eip/GatewaysManager.java | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java') 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 24e9c323..0819e9b6 100644 --- a/app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java +++ b/app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java @@ -93,10 +93,10 @@ public class GatewaysManager { private static final String TAG = GatewaysManager.class.getSimpleName(); - private Context context; - private LinkedHashMap gateways = new LinkedHashMap<>(); - private Type listType = new TypeToken>() {}.getType(); - private ArrayList presortedList = new ArrayList<>(); + private final Context context; + private final LinkedHashMap gateways = new LinkedHashMap<>(); + private final Type listType = new TypeToken>() {}.getType(); + private final ArrayList presortedList = new ArrayList<>(); public GatewaysManager(Context context) { this.context = context; @@ -128,24 +128,30 @@ public class GatewaysManager { int n = 0; Gateway gateway; while ((gateway = select(n, null)) != null) { + String name = gateway.getName(); + if (name == null) { + Log.e(TAG, "Gateway without location name found. This should never happen. Provider misconfigured?"); + continue; + } + if (!locationNames.containsKey(gateway.getName())) { locationNames.put(gateway.getName(), locations.size()); // fake values for now Random rand = new Random(); double averageLoad = rand.nextDouble(); //location.averageLoad; - + Log.d(TAG, "getGatewayLocations - new averageLoad (" + gateway.getName() + "): " + averageLoad); Location location = new Location( gateway.getName(), averageLoad /*gateway.getFullness()*/, - 1, - gateway.getName().equals(selectedCity)); + 1); locations.add(location); } else { int index = locationNames.get(gateway.getName()); Location location = locations.get(index); location.averageLoad = (location.numberOfGateways * location.averageLoad + gateway.getFullness()) / (location.numberOfGateways + 1); + Log.d(TAG, "getGatewayLocations - updated averageLoad: (" + gateway.getName() + "): " + location.averageLoad); location.numberOfGateways += 1; locations.set(index, location); } -- cgit v1.2.3