diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_TileManager.java b/mobile/src/com/cradle/iitc_mobile/IITC_TileManager.java index 7acf1ee3..0dd424f0 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_TileManager.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_TileManager.java @@ -12,6 +12,7 @@ import java.io.FileOutputStream; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; +import java.util.Date; public class IITC_TileManager { @@ -24,7 +25,6 @@ public class IITC_TileManager { } public WebResourceResponse getTile(String url) throws Exception { - Log.d("iitcm", "checking for tile: " + url); String path = mIitc.getApplication().getFilesDir().toString() + "/" + url; path = path.replace("http://", ""); path = path.replace("https://", ""); @@ -33,6 +33,9 @@ public class IITC_TileManager { path = path.replace(fileName, ""); File file = new File(path, fileName); if (file.exists()) { + // asynchronously download tile if outdated, ignore date if not connected to wifi + if (mIitc.getWebView().isConnectedToWifi()) new DownloadTile(path, fileName).execute(url); + // return tile from storage InputStream in = new BufferedInputStream(new FileInputStream(file)); return new WebResourceResponse(TYPE, ENCODING, in); } else { diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java b/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java index 23ceb645..4d74b4ae 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java @@ -237,7 +237,7 @@ public class IITC_WebView extends WebView { } @TargetApi(Build.VERSION_CODES.JELLY_BEAN) - private boolean isConnectedToWifi() { + public boolean isConnectedToWifi() { ConnectivityManager conMan = (ConnectivityManager) getContext() .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI); diff --git a/mobile/src/com/cradle/iitc_mobile/async/DownloadTile.java b/mobile/src/com/cradle/iitc_mobile/async/DownloadTile.java index 942e2e47..47eb13d6 100644 --- a/mobile/src/com/cradle/iitc_mobile/async/DownloadTile.java +++ b/mobile/src/com/cradle/iitc_mobile/async/DownloadTile.java @@ -37,9 +37,11 @@ public class DownloadTile extends AsyncTask { try { tileUrl = new URL(urls[0]); conn = tileUrl.openConnection(); + File file = new File(mFilePath, mFileName); + // update tile if needed, else return + if (conn.getLastModified() < file.lastModified()) return true; InputStream is = null; is = conn.getInputStream(); - File file = new File(mFilePath, mFileName); Log.d("iitcm", "writing to file: " + file.toString()); File output = writeTileToFile(is, file, mFilePath); } catch (IOException e) {