diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 0ee763e..578b15e 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,6 +1,6 @@ + package="org.r3pek.pharmacies" android:installLocation="auto" android:versionCode="13" android:versionName="2.1.1"> diff --git a/res/drawable/dialog.9.png b/res/drawable/dialog.9.png new file mode 100644 index 0000000..ffd89ef Binary files /dev/null and b/res/drawable/dialog.9.png differ diff --git a/res/drawable/droid.png b/res/drawable/droid.png deleted file mode 100644 index 9daec33..0000000 Binary files a/res/drawable/droid.png and /dev/null differ diff --git a/res/drawable/list_location.9.png b/res/drawable/list_location.9.png new file mode 100644 index 0000000..58d6bcf Binary files /dev/null and b/res/drawable/list_location.9.png differ diff --git a/src/org/r3pek/pharmacies/Pharmacy.java b/src/org/r3pek/pharmacies/Pharmacy.java index 6e17220..12e98f6 100644 --- a/src/org/r3pek/pharmacies/Pharmacy.java +++ b/src/org/r3pek/pharmacies/Pharmacy.java @@ -16,6 +16,7 @@ public class Pharmacy implements Serializable { private String distance; private Boolean atService; private String parish; + private String lastUpdate; public Pharmacy() { } @@ -84,6 +85,14 @@ public class Pharmacy implements Serializable { this.parish = parish; } + public String getLastupdate() { + return lastUpdate == null ? "" : lastUpdate; + } + + public void setLastUpdate(String lastUpdate) { + this.lastUpdate = lastUpdate; + } + public GeoPoint getGeoPoint() { return new GeoPoint((int)(Double.parseDouble(latitude) * 1E6), (int)(Double.parseDouble(longitude) * 1E6)); } diff --git a/src/org/r3pek/pharmacies/ViewOnMap.java b/src/org/r3pek/pharmacies/ViewOnMap.java index 9a7be22..a7db101 100644 --- a/src/org/r3pek/pharmacies/ViewOnMap.java +++ b/src/org/r3pek/pharmacies/ViewOnMap.java @@ -1,10 +1,10 @@ package org.r3pek.pharmacies; -import java.net.URL; -import java.util.List; - -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; +import com.google.android.maps.GeoPoint; +import com.google.android.maps.MapActivity; +import com.google.android.maps.MapController; +import com.google.android.maps.MapView; +import com.google.android.maps.Overlay; import org.r3pek.pharmacies.utils.GlobalVars; import org.r3pek.pharmacies.utils.OnPositionChangeListener; @@ -30,11 +30,15 @@ import android.view.ViewGroup; import android.widget.ImageView; import android.widget.Toast; -import com.google.android.maps.GeoPoint; -import com.google.android.maps.MapActivity; -import com.google.android.maps.MapController; -import com.google.android.maps.MapView; -import com.google.android.maps.Overlay; +import java.net.URL; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; public class ViewOnMap extends MapActivity implements OnPositionChangeListener { private static final int MENU_REFRESH = 0; @@ -276,8 +280,20 @@ public class ViewOnMap extends MapActivity implements OnPositionChangeListener { } /* Our XMLParserHandler now provides the parsed data to us. */ - for (Pharmacy p : handler.getPharmacies()) - GlobalVars.getPharmacies().add(p); + for (Pharmacy p : handler.getPharmacies()) { + /* Only add the Pharmacy if it was recently updated */ + DateFormat format; + if (p.getLastupdate().endsWith("Z")) + format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); + else + format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); + Date lastupdate = format.parse(p.getLastupdate()); + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.DATE, -2); + + if (!lastupdate.before(cal.getTime())) + GlobalVars.getPharmacies().add(p); + } pharmaciesOverlay.refresh(); endThreadHandler.sendEmptyMessage(0); diff --git a/src/org/r3pek/pharmacies/XMLParserHandler.java b/src/org/r3pek/pharmacies/XMLParserHandler.java index 77a5ff4..102264e 100644 --- a/src/org/r3pek/pharmacies/XMLParserHandler.java +++ b/src/org/r3pek/pharmacies/XMLParserHandler.java @@ -16,6 +16,7 @@ public class XMLParserHandler extends DefaultHandler { private boolean inDistance = false; private boolean inIsAtService = false; private boolean inParish = false; + private boolean inLastUpdate = false; private boolean error = false; private boolean inErrorMessage; private String errorMessage; @@ -57,6 +58,8 @@ public class XMLParserHandler extends DefaultHandler { inIsAtService = newValue; else if (tag.equals("Parish")) inParish = newValue; + else if (tag.equals("LastUpdate")) + inLastUpdate = newValue; else if (tag.equals("Fault")) error = true; else if (tag.equals("FaultString")) @@ -94,6 +97,8 @@ public class XMLParserHandler extends DefaultHandler { currentPharmacy.setAtService(Boolean.parseBoolean(chars)); else if (inParish) currentPharmacy.setParish(currentPharmacy.getParish() + chars); + else if (inLastUpdate) + currentPharmacy.setLastUpdate(currentPharmacy.getLastupdate() + chars); else if (inErrorMessage) errorMessage += chars; }