diff options
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/eip/GatewaySelector.java')
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/eip/GatewaySelector.java | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/eip/GatewaySelector.java b/app/src/main/java/se/leap/bitmaskclient/eip/GatewaySelector.java index 33fd3c21..52030ce3 100644 --- a/app/src/main/java/se/leap/bitmaskclient/eip/GatewaySelector.java +++ b/app/src/main/java/se/leap/bitmaskclient/eip/GatewaySelector.java @@ -2,6 +2,8 @@ package se.leap.bitmaskclient.eip; import android.util.Log; +import java.util.ArrayList; +import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -9,6 +11,7 @@ import java.util.Set; import java.util.TreeMap; import static se.leap.bitmaskclient.base.utils.ConfigHelper.getCurrentTimezone; +import static se.leap.bitmaskclient.base.utils.ConfigHelper.timezoneDistance; public class GatewaySelector { private final static String TAG = GatewaySelector.class.getSimpleName(); @@ -18,7 +21,15 @@ public class GatewaySelector { public GatewaySelector(List<Gateway> gateways) { this.gateways = gateways; this.offsets = calculateOffsets(); + } + public ArrayList<Gateway> getGatewaysSortedByDistance() { + ArrayList<Gateway> list = new ArrayList<>(); + int i = 0; + for (Collection<Gateway> gatewayCollection : offsets.values()) { + list.addAll(gatewayCollection); + } + return list; } public Gateway select() { @@ -57,12 +68,4 @@ public class GatewaySelector { return offsets; } - private int timezoneDistance(int local_timezone, int remote_timezone) { - // Distance along the numberline of Prime Meridian centric, assumes UTC-11 through UTC+12 - int dist = Math.abs(local_timezone - remote_timezone); - // Farther than 12 timezones and it's shorter around the "back" - if (dist > 12) - dist = 12 - (dist - 12); // Well i'll be. Absolute values make equations do funny things. - return dist; - } } |