diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java index b779b756..702727c7 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java @@ -127,6 +127,7 @@ public class IITC_Mobile extends Activity { Log.d("iitcm", "resuming...setting reset idleTimer"); iitc_view.loadUrl("javascript: window.idleTime = 0"); iitc_view.loadUrl("javascript: window.renderUpdateStatus()"); + iitc_view.updateCaching(); if (user_loc == true) { // Register the listener with the Location Manager to receive location updates diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java b/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java index ab9eb115..9da7655b 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java @@ -2,7 +2,10 @@ package com.cradle.iitc_mobile; import android.annotation.SuppressLint; import android.content.Context; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; import android.util.AttributeSet; +import android.util.Log; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; @@ -22,9 +25,10 @@ public class IITC_WebView extends WebView { settings.setDomStorageEnabled(true); settings.setAllowFileAccess(true); settings.setGeolocationEnabled(true); + settings.setAppCacheEnabled(true); settings.setDatabasePath(this.getContext().getApplicationInfo().dataDir + "/databases/"); - settings.setAppCachePath(this.getContext().getApplicationInfo().dataDir + "/cache/"); - settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); + settings.setAppCachePath(this.getContext().getCacheDir().getAbsolutePath()); + // use cache if on mobile network...saves traffic this.js_interface = new IITC_JSInterface(c); this.addJavascriptInterface(js_interface, "android"); @@ -69,4 +73,21 @@ public class IITC_WebView extends WebView { return this.js_interface; } + public void updateCaching() { + if (!this.isConnectedToWifi()) + { + Log.d("iitcm", "not connected to wifi...load tiles from cache"); + settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); + } else { + Log.d("iitcm", "connected to wifi...load tiles network"); + settings.setCacheMode(WebSettings.LOAD_DEFAULT); + } + } + + private boolean isConnectedToWifi() { + ConnectivityManager conMan = (ConnectivityManager) getContext().getSystemService( Context.CONNECTIVITY_SERVICE ); + NetworkInfo wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI); + return wifi.getState() == NetworkInfo.State.CONNECTED; + } + }