--- android/TrainInfoService/src/dk/thoerup/traininfoservice/banedk/DepartureBean.java 2009/09/10 18:11:53 307 +++ android/TrainInfoService/src/dk/thoerup/traininfoservice/banedk/DepartureBean.java 2009/09/30 19:49:25 373 @@ -1,6 +1,6 @@ package dk.thoerup.traininfoservice.banedk; -public class DepartureBean implements Comparable { +public class DepartureBean implements Comparable { private String time; private int updated; private String trainNumber; @@ -61,17 +61,56 @@ } @Override - public int compareTo(Object arg0) { - DepartureBean otherBean = (DepartureBean) arg0; + public int compareTo(DepartureBean otherBean) { + String timeStr1 = time.replace(":","").trim(); + String timeStr2 = otherBean.time.replace(":","").trim(); - int time1 = Integer.parseInt(time.replace(":", "")); - int time2 = Integer.parseInt(otherBean.time.replace(":", "")); - if (time1 > time2) - return 1; - else - return -1; + int time1 = 0; + int time2 = 0; + + if (timeStr1.length() > 0) + time1 = Integer.parseInt(timeStr1); + + if (timeStr2.length() > 0) + time2 = Integer.parseInt(timeStr2); + + //work correctly when clock wraps around at midnight + if (Math.abs(time1-time2) < 1200) { + if (time1 > time2) + return 1; + else + return -1; + } else { + if (time1 < time2) + return 1; + else + return -1; + + } } + public String getUpdatedString() { + String updStr; + + switch (updated) { + case 1: + updStr = "< 3 min"; + break; + case 2: + updStr = "3-10 min"; + break; + case 3: + updStr = "> 10 min"; + break; + case 4: + updStr = "No info"; + break; + default: + updStr = "Unknown:" + updated; + } + + return updStr; + } }