diff --git a/code/boot.js b/code/boot.js
index 47e3c2b4..eb5b1d6e 100644
--- a/code/boot.js
+++ b/code/boot.js
@@ -501,6 +501,11 @@ function boot() {
window.iitcLoaded = true;
window.runHooks('iitcLoaded');
+
+ if (typeof android !== 'undefined' && android && android.iitcLoaded) {
+ android.iitcLoaded();
+ }
+
}
// this is the minified load.js script that allows us to easily load
diff --git a/mobile/res/drawable-hdpi/iitc.png b/mobile/res/drawable-hdpi/iitc.png
new file mode 100644
index 00000000..d4c6ac5d
Binary files /dev/null and b/mobile/res/drawable-hdpi/iitc.png differ
diff --git a/mobile/res/drawable-ldpi/iitc.png b/mobile/res/drawable-ldpi/iitc.png
new file mode 100644
index 00000000..d4c6ac5d
Binary files /dev/null and b/mobile/res/drawable-ldpi/iitc.png differ
diff --git a/mobile/res/drawable-mdpi/iitc.png b/mobile/res/drawable-mdpi/iitc.png
new file mode 100644
index 00000000..d4c6ac5d
Binary files /dev/null and b/mobile/res/drawable-mdpi/iitc.png differ
diff --git a/mobile/res/drawable-xhdpi/iitc.png b/mobile/res/drawable-xhdpi/iitc.png
new file mode 100644
index 00000000..d4c6ac5d
Binary files /dev/null and b/mobile/res/drawable-xhdpi/iitc.png differ
diff --git a/mobile/res/drawable-xxhdpi/iitc.png b/mobile/res/drawable-xxhdpi/iitc.png
new file mode 100644
index 00000000..d4c6ac5d
Binary files /dev/null and b/mobile/res/drawable-xxhdpi/iitc.png differ
diff --git a/mobile/res/layout/activity_main.xml b/mobile/res/layout/activity_main.xml
index 3eef9813..3dc1c099 100644
--- a/mobile/res/layout/activity_main.xml
+++ b/mobile/res/layout/activity_main.xml
@@ -6,6 +6,11 @@
+ android:layout_height="fill_parent" />
+
\ No newline at end of file
diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_JSInterface.java b/mobile/src/com/cradle/iitc_mobile/IITC_JSInterface.java
index 4f6dceb7..56f7a8b2 100644
--- a/mobile/src/com/cradle/iitc_mobile/IITC_JSInterface.java
+++ b/mobile/src/com/cradle/iitc_mobile/IITC_JSInterface.java
@@ -10,6 +10,7 @@ import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.content.Intent;
import android.net.Uri;
import android.util.Log;
+import android.view.View;
import android.webkit.JavascriptInterface;
import android.widget.Toast;
@@ -118,6 +119,20 @@ public class IITC_JSInterface {
((IITC_Mobile) context).setFocusedDialog(id);
}
+ @JavascriptInterface
+ public void iitcLoaded() {
+ Log.d("iitcm", "iitc loaded completely");
+ final IITC_Mobile iitc = ((IITC_Mobile) context);
+
+ iitc.runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ iitc.findViewById(R.id.iitc_webview).setVisibility(View.VISIBLE);
+ iitc.findViewById(R.id.imageLoading).setVisibility(View.GONE);
+ }
+ });
+ }
+
// get layers and list them in a dialog
@JavascriptInterface
public void setLayers(String base_layer, String overlay_layer) {
diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java
index 65314542..cd63e8d5 100644
--- a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java
+++ b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java
@@ -22,6 +22,7 @@ import android.preference.PreferenceManager;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
+import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebSettings;
@@ -463,6 +464,8 @@ public class IITC_Mobile extends Activity {
// inject the iitc-script and load the intel url
// plugins are injected onPageFinished
public void loadUrl(String url) {
+ findViewById(R.id.imageLoading).setVisibility(View.VISIBLE);
+ findViewById(R.id.iitc_webview).setVisibility(View.GONE);
url = addUrlParam(url);
loadIITC();
iitc_view.loadUrl(url);
diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_WebViewClient.java b/mobile/src/com/cradle/iitc_mobile/IITC_WebViewClient.java
index e2b79a5d..f2ecec03 100644
--- a/mobile/src/com/cradle/iitc_mobile/IITC_WebViewClient.java
+++ b/mobile/src/com/cradle/iitc_mobile/IITC_WebViewClient.java
@@ -31,13 +31,13 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
public class IITC_WebViewClient extends WebViewClient {
- private static final ByteArrayInputStream style = new ByteArrayInputStream(
+
+ private static final ByteArrayInputStream STYLE = new ByteArrayInputStream(
"body, #dashboard_container, #map_canvas { background: #000 !important; }"
.getBytes());
- private static final ByteArrayInputStream empty = new ByteArrayInputStream(
+ private static final ByteArrayInputStream EMPTY = new ByteArrayInputStream(
"".getBytes());
- private WebResourceResponse iitcjs;
private String js = null;
private String iitc_path = null;
private final Context context;
@@ -139,8 +139,6 @@ public class IITC_WebViewClient extends WebViewClient {
// so it boots correctly.
this.js = "$(document).ready(function(){" + js + "});";
- iitcjs = new WebResourceResponse("text/javascript", "UTF-8",
- new ByteArrayInputStream(this.js.getBytes()));
}
// enable https
@@ -152,11 +150,8 @@ public class IITC_WebViewClient extends WebViewClient {
@Override
public void onPageFinished(WebView view, String url) {
- SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
- if(sharedPrefs.getBoolean("pref_force_desktop", false)) {
- Log.d("iitcm", "injecting desktop iitc");
- view.loadUrl("javascript: " + this.js);
- }
+ Log.d("iitcm", "injecting iitc..");
+ view.loadUrl("javascript: " + this.js);
super.onPageFinished(view, url);
}
@@ -301,26 +296,21 @@ public class IITC_WebViewClient extends WebViewClient {
@Override
public WebResourceResponse shouldInterceptRequest(final WebView view,
String url) {
- SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
- if(!sharedPrefs.getBoolean("pref_force_desktop", false)) {
- if (url.contains("/css/common.css")) {
- return new WebResourceResponse("text/css", "UTF-8", style);
- } else if (url.contains("gen_dashboard.js")) {
- Log.d("iitcm", "replacing gen_dashboard.js with iitc script");
- Log.d("iitcm", "injecting iitc...");
- return this.iitcjs;
- } else if (url.contains("/css/ap_icons.css")
- || url.contains("/css/map_icons.css")
- || url.contains("/css/misc_icons.css")
- || url.contains("/css/style_full.css")
- || url.contains("/css/style_mobile.css")
- || url.contains("/css/portalrender.css")
- || url.contains("js/analytics.js")
- || url.contains("google-analytics.com/ga.js")) {
- return new WebResourceResponse("text/plain", "UTF-8", empty);
- } else {
- return super.shouldInterceptRequest(view, url);
- }
+ if (url.contains("/css/common.css")) {
+ return new WebResourceResponse("text/css", "UTF-8", STYLE);
+ } else if (url.contains("gen_dashboard.js")) {
+ return new WebResourceResponse("text/javascript", "UTF-8", EMPTY);
+ } else if (url.contains("/css/ap_icons.css")
+ || url.contains("/css/map_icons.css")
+ || url.contains("/css/common.css")
+ || url.contains("/css/misc_icons.css")
+ || url.contains("/css/style_full.css")
+ || url.contains("/css/style_mobile.css")
+ || url.contains("/css/portalrender.css")
+ || url.contains("/css/portalrender_mobile.css")
+ || url.contains("js/analytics.js")
+ || url.contains("google-analytics.com/ga.js")) {
+ return new WebResourceResponse("text/plain", "UTF-8", EMPTY);
} else {
return super.shouldInterceptRequest(view, url);
}