From 90871774c34c209fd8fa8ca4cc9b1b1a20471151 Mon Sep 17 00:00:00 2001 From: Philipp Schaefer Date: Tue, 30 Dec 2014 13:06:19 +0100 Subject: [PATCH] cache tiles without lastModified header field for 2 months instead of updating them every time --- .../src/com/cradle/iitc_mobile/async/DownloadTile.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mobile/src/com/cradle/iitc_mobile/async/DownloadTile.java b/mobile/src/com/cradle/iitc_mobile/async/DownloadTile.java index 9dc4cd93..62011d88 100644 --- a/mobile/src/com/cradle/iitc_mobile/async/DownloadTile.java +++ b/mobile/src/com/cradle/iitc_mobile/async/DownloadTile.java @@ -29,8 +29,15 @@ public class DownloadTile extends AsyncTask { tileUrl = new URL(urls[0]); conn = tileUrl.openConnection(); final File file = new File(mFilePath); + // some tiles don't have the lastModified header field set + // ...update tile every two month + final long updateTime = 2 * 30 * 24 * 60 * 60 * 1000; + final long systemTime = System.currentTimeMillis(); + final long urlLM = conn.getLastModified(); + final long fileLM = file.lastModified(); + if (urlLM == 0 && (fileLM > systemTime - updateTime)) return true; // update tile if needed, else return - if (conn.getLastModified() < file.lastModified()) return true; + if (urlLM < fileLM) return true; InputStream is = null; is = conn.getInputStream(); Log.d("writing to file: " + file.toString());