--- android/EKLLauncher/src/dk/thoerup/ekllauncher/EKLLauncherActivity.java 2011/10/20 20:23:48 1617 +++ android/EKLLauncher/src/dk/thoerup/ekllauncher/EKLLauncherActivity.java 2011/10/20 20:59:48 1620 @@ -4,6 +4,7 @@ import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; +import android.net.NetworkInfo; import android.os.Bundle; import android.os.Handler; import android.os.Message; @@ -19,6 +20,7 @@ import android.webkit.WebSettings; import android.webkit.WebStorage.QuotaUpdater; import android.webkit.WebView; +import android.webkit.WebViewClient; import android.widget.Toast; public class EKLLauncherActivity extends Activity { @@ -26,8 +28,13 @@ class CustomChromeClient extends WebChromeClient { @Override - public boolean onCreateWindow(WebView view, boolean dialog, - boolean userGesture, Message resultMsg) { + public void onReachedMaxAppCacheSize(long spaceNeeded, long totalUsedQuota, QuotaUpdater quotaUpdater) { + quotaUpdater.updateQuota(totalUsedQuota + 4096); + } + + + @Override + public boolean onCreateWindow(WebView view, boolean dialog, boolean userGesture, Message resultMsg) { msg("create window"); return super.onCreateWindow(view, dialog, userGesture, resultMsg); } @@ -76,7 +83,9 @@ } } - + + class DummyWebViewClient extends WebViewClient { + } static final String URL = "http://omdeling.info/mobil/ekl/login.php"; @@ -130,31 +139,28 @@ WebSettings settings = web.getSettings(); - + settings.setJavaScriptEnabled(true); settings.setAppCacheEnabled(true); + settings.setAppCachePath( this.getCacheDir().toString() ); settings.setJavaScriptCanOpenWindowsAutomatically(false); settings.setGeolocationEnabled(true); - settings.setDomStorageEnabled(true); - settings.setDatabaseEnabled(true); + settings.setDomStorageEnabled(true); + settings.setDatabaseEnabled(true); settings.setDatabasePath( this.getCacheDir().toString() ); settings.setSupportMultipleWindows(false); web.setWebChromeClient(new CustomChromeClient() ); - web.setWebViewClient( new DebugWebViewClient() ); + web.setWebViewClient( new DummyWebViewClient() ); // skal have en webviewclient for at kunne styre ved forlad tur + - if ( (telMgr.getSimState() == TelephonyManager.SIM_STATE_READY && telMgr.getDataState() == TelephonyManager.DATA_CONNECTED) || connMgr.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI) { - web.loadUrl( URL ); - } else { - web.loadData("

afventer netværksforbindelse

", "text/html", "iso-8859-1"); - simHandler.sendEmptyMessageDelayed(0, 1500); - } + simHandler.sendEmptyMessage(0); } @@ -193,17 +199,28 @@ }; + + SimHandler simHandler = new SimHandler(); - Handler simHandler = new Handler() { - @Override - public void handleMessage(Message msg) { - super.handleMessage(msg); - if (telMgr.getSimState() == TelephonyManager.SIM_STATE_READY && telMgr.getDataState() == TelephonyManager.DATA_CONNECTED) { + class SimHandler extends Handler { + + public void testNetwork() { + NetworkInfo network = connMgr.getActiveNetworkInfo(); + + if ( (telMgr.getSimState() == TelephonyManager.SIM_STATE_READY && telMgr.getDataState() == TelephonyManager.DATA_CONNECTED) || ( network != null && network.getType() == ConnectivityManager.TYPE_WIFI) ) { web.loadUrl( URL ); } else { + web.loadData("

afventer netværksforbindelse

", "text/html", "iso-8859-1"); this.sendEmptyMessageDelayed(0, 1000); } } + + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + + testNetwork(); + } };