From ab8018c795425d6d30afe92b44bc2e9bd9d143bb Mon Sep 17 00:00:00 2001 From: hastarin Date: Thu, 23 May 2013 15:49:33 +1000 Subject: [PATCH 01/18] Setup support for Android Studio Preview --- .gitignore | 32 ++++++++++++++++-- mobile/.idea/.name | 1 + mobile/.idea/compiler.xml | 23 +++++++++++++ mobile/.idea/copyright/profiles_settings.xml | 5 +++ mobile/.idea/encodings.xml | 5 +++ mobile/.idea/misc.xml | 7 ++++ mobile/.idea/modules.xml | 9 +++++ mobile/.idea/scopes/scope_settings.xml | 5 +++ mobile/.idea/vcs.xml | 8 +++++ mobile/build.gradle | 35 ++++++++++++++++++++ mobile/mobile.iml | 24 ++++++++++++++ 11 files changed, 152 insertions(+), 2 deletions(-) create mode 100644 mobile/.idea/.name create mode 100644 mobile/.idea/compiler.xml create mode 100644 mobile/.idea/copyright/profiles_settings.xml create mode 100644 mobile/.idea/encodings.xml create mode 100644 mobile/.idea/misc.xml create mode 100644 mobile/.idea/modules.xml create mode 100644 mobile/.idea/scopes/scope_settings.xml create mode 100644 mobile/.idea/vcs.xml create mode 100644 mobile/build.gradle create mode 100644 mobile/mobile.iml diff --git a/.gitignore b/.gitignore index d2d07c24..60ba8b97 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,35 @@ -mobile/IngressIntelTC/bin build localbuildsettings.py *.pyc *.swp *~ -*.bak + +# built application files +*.apk +*.ap_ + +# files for the dex VM +*.dex + +# Java class files +*.class + +# generated files +mobile/bin/ +mobile/gen/ +mobile/out/ + +# Local configuration file (sdk path, etc) +local.properties + +# Eclipse project files +.classpath +.project + +# IntelliJ IDEA user settings +*.iws +mobile/.idea/workspace.xml +mobile/.idea/tasks.xml + +# Proguard logs +mobile/proguard_logs/ diff --git a/mobile/.idea/.name b/mobile/.idea/.name new file mode 100644 index 00000000..f01786c6 --- /dev/null +++ b/mobile/.idea/.name @@ -0,0 +1 @@ +IITC Mobile \ No newline at end of file diff --git a/mobile/.idea/compiler.xml b/mobile/.idea/compiler.xml new file mode 100644 index 00000000..217af471 --- /dev/null +++ b/mobile/.idea/compiler.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/mobile/.idea/copyright/profiles_settings.xml b/mobile/.idea/copyright/profiles_settings.xml new file mode 100644 index 00000000..3572571a --- /dev/null +++ b/mobile/.idea/copyright/profiles_settings.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mobile/.idea/encodings.xml b/mobile/.idea/encodings.xml new file mode 100644 index 00000000..e206d70d --- /dev/null +++ b/mobile/.idea/encodings.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/mobile/.idea/misc.xml b/mobile/.idea/misc.xml new file mode 100644 index 00000000..1e86ba3b --- /dev/null +++ b/mobile/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/mobile/.idea/modules.xml b/mobile/.idea/modules.xml new file mode 100644 index 00000000..16ec7d18 --- /dev/null +++ b/mobile/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/mobile/.idea/scopes/scope_settings.xml b/mobile/.idea/scopes/scope_settings.xml new file mode 100644 index 00000000..922003b8 --- /dev/null +++ b/mobile/.idea/scopes/scope_settings.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/mobile/.idea/vcs.xml b/mobile/.idea/vcs.xml new file mode 100644 index 00000000..2e0588cc --- /dev/null +++ b/mobile/.idea/vcs.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/mobile/build.gradle b/mobile/build.gradle new file mode 100644 index 00000000..2fa22689 --- /dev/null +++ b/mobile/build.gradle @@ -0,0 +1,35 @@ +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.4' + } +} +apply plugin: 'android' + +dependencies { +} + +android { + compileSdkVersion 17 + buildToolsVersion "17" + + defaultConfig { + minSdkVersion 14 + targetSdkVersion 17 + } + sourceSets { + main { + manifest.srcFile 'AndroidManifest.xml' + java.srcDirs = ['src'] + resources.srcDirs = ['src'] + aidl.srcDirs = ['src'] + renderscript.srcDirs = ['src'] + res.srcDirs = ['res'] + assets.srcDirs = ['assets'] + } + + instrumentTest.setRoot('tests') + } +} diff --git a/mobile/mobile.iml b/mobile/mobile.iml new file mode 100644 index 00000000..33d9962c --- /dev/null +++ b/mobile/mobile.iml @@ -0,0 +1,24 @@ + + + + + + + MANIFEST_FILE_PATH + RESOURCES_DIR_PATH + ASSETS_DIR_PATH + NATIVE_LIBS_DIR_PATH + + + + + + + + + + + + + + From 009691c81309219c52cad3562efdcac6c8d41e2a Mon Sep 17 00:00:00 2001 From: hastarin Date: Thu, 23 May 2013 16:02:54 +1000 Subject: [PATCH 02/18] Restored *.bak to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 60ba8b97..9db43cbc 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ localbuildsettings.py *.pyc *.swp *~ +*.bak # built application files *.apk From 98c90d4b16c0efe3a3d482bead54eb0de95eda98 Mon Sep 17 00:00:00 2001 From: hastarin Date: Thu, 23 May 2013 16:42:41 +1000 Subject: [PATCH 03/18] Fixed output APK name to be the same as ADT --- mobile/.idea/modules.xml | 2 +- mobile/IITC-Mobile.iml | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 mobile/IITC-Mobile.iml diff --git a/mobile/.idea/modules.xml b/mobile/.idea/modules.xml index 16ec7d18..c7429177 100644 --- a/mobile/.idea/modules.xml +++ b/mobile/.idea/modules.xml @@ -2,7 +2,7 @@ - + diff --git a/mobile/IITC-Mobile.iml b/mobile/IITC-Mobile.iml new file mode 100644 index 00000000..33d9962c --- /dev/null +++ b/mobile/IITC-Mobile.iml @@ -0,0 +1,24 @@ + + + + + + + MANIFEST_FILE_PATH + RESOURCES_DIR_PATH + ASSETS_DIR_PATH + NATIVE_LIBS_DIR_PATH + + + + + + + + + + + + + + From 83e324f8aa3a66fdd44431c7ca3fbdf854def835 Mon Sep 17 00:00:00 2001 From: hastarin Date: Thu, 23 May 2013 16:44:09 +1000 Subject: [PATCH 04/18] Forgot to delete old iml file --- mobile/mobile.iml | 24 ------------------------ 1 file changed, 24 deletions(-) delete mode 100644 mobile/mobile.iml diff --git a/mobile/mobile.iml b/mobile/mobile.iml deleted file mode 100644 index 33d9962c..00000000 --- a/mobile/mobile.iml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - MANIFEST_FILE_PATH - RESOURCES_DIR_PATH - ASSETS_DIR_PATH - NATIVE_LIBS_DIR_PATH - - - - - - - - - - - - - - From b2376676c429aea8a1e545caf524302652e72f9d Mon Sep 17 00:00:00 2001 From: hastarin Date: Thu, 23 May 2013 17:01:20 +1000 Subject: [PATCH 05/18] Fixed build not including src files. --- mobile/IITC-Mobile.iml | 1 + 1 file changed, 1 insertion(+) diff --git a/mobile/IITC-Mobile.iml b/mobile/IITC-Mobile.iml index 33d9962c..26779940 100644 --- a/mobile/IITC-Mobile.iml +++ b/mobile/IITC-Mobile.iml @@ -16,6 +16,7 @@ + From a808434fd439eda21935d3be56ae164fe99acdda Mon Sep 17 00:00:00 2001 From: hastarin Date: Thu, 23 May 2013 17:22:59 +1000 Subject: [PATCH 06/18] Tried to recreate things. --- mobile/.idea/.name | 2 +- mobile/.idea/misc.xml | 143 +++++++++++++++++++++++++++++++++++++++ mobile/.idea/modules.xml | 2 +- mobile/mobile.iml | 18 +++++ 4 files changed, 163 insertions(+), 2 deletions(-) create mode 100644 mobile/mobile.iml diff --git a/mobile/.idea/.name b/mobile/.idea/.name index f01786c6..d884b924 100644 --- a/mobile/.idea/.name +++ b/mobile/.idea/.name @@ -1 +1 @@ -IITC Mobile \ No newline at end of file +IITC-Mobile \ No newline at end of file diff --git a/mobile/.idea/misc.xml b/mobile/.idea/misc.xml index 1e86ba3b..f6c044c7 100644 --- a/mobile/.idea/misc.xml +++ b/mobile/.idea/misc.xml @@ -1,7 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + localhost + 5050 + + + + + + + Android 4.2.2 Platform + + + + + + + diff --git a/mobile/.idea/modules.xml b/mobile/.idea/modules.xml index c7429177..16ec7d18 100644 --- a/mobile/.idea/modules.xml +++ b/mobile/.idea/modules.xml @@ -2,7 +2,7 @@ - + diff --git a/mobile/mobile.iml b/mobile/mobile.iml new file mode 100644 index 00000000..4606c0df --- /dev/null +++ b/mobile/mobile.iml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + From c584315010206b03dbd3d94b5e7f7af9a7c09fa1 Mon Sep 17 00:00:00 2001 From: hastarin Date: Thu, 23 May 2013 17:28:04 +1000 Subject: [PATCH 07/18] Finally working and tested. *blush* --- mobile/.idea/misc.xml | 16 ---------------- mobile/mobile.iml | 9 ++++++++- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/mobile/.idea/misc.xml b/mobile/.idea/misc.xml index f6c044c7..5997eabb 100644 --- a/mobile/.idea/misc.xml +++ b/mobile/.idea/misc.xml @@ -130,21 +130,5 @@ 5050 - - - - - Android 4.2.2 Platform - - - - - - - diff --git a/mobile/mobile.iml b/mobile/mobile.iml index 4606c0df..25a68b77 100644 --- a/mobile/mobile.iml +++ b/mobile/mobile.iml @@ -2,7 +2,14 @@ - + + + MANIFEST_FILE_PATH + RESOURCES_DIR_PATH + ASSETS_DIR_PATH + NATIVE_LIBS_DIR_PATH + + From ed0e1be9e1dceb6f31a57ae9617c2a79ce7f8f4a Mon Sep 17 00:00:00 2001 From: hastarin Date: Thu, 23 May 2013 17:54:08 +1000 Subject: [PATCH 08/18] Added proguard-project file back as building with it requires it. Moved .gitignore changes to mobile/.gitignore --- .gitignore | 26 -------------------------- mobile/.gitignore | 33 ++++++++++++++++++++++++++------- mobile/proguard-project.txt | 11 +++++++++++ 3 files changed, 37 insertions(+), 33 deletions(-) create mode 100644 mobile/proguard-project.txt diff --git a/.gitignore b/.gitignore index 9db43cbc..10a79255 100644 --- a/.gitignore +++ b/.gitignore @@ -8,29 +8,3 @@ localbuildsettings.py # built application files *.apk *.ap_ - -# files for the dex VM -*.dex - -# Java class files -*.class - -# generated files -mobile/bin/ -mobile/gen/ -mobile/out/ - -# Local configuration file (sdk path, etc) -local.properties - -# Eclipse project files -.classpath -.project - -# IntelliJ IDEA user settings -*.iws -mobile/.idea/workspace.xml -mobile/.idea/tasks.xml - -# Proguard logs -mobile/proguard_logs/ diff --git a/mobile/.gitignore b/mobile/.gitignore index 42e4ba7c..d03e2a28 100644 --- a/mobile/.gitignore +++ b/mobile/.gitignore @@ -1,11 +1,30 @@ -.classpath -.project .settings/ -bin/ -gen/ -libs/ -proguard-project.txt -local.properties assets/total-conversion-build.user.js assets/user-location.user.js assets/plugins/ + +# files for the dex VM +*.dex + +# Java class files +*.class + +# generated files +bin/ +gen/ +out/ + +# Local configuration file (sdk path, etc) +local.properties + +# Eclipse project files +.classpath +.project + +# IntelliJ IDEA user settings +*.iws +.idea/workspace.xml +.idea/tasks.xml + +# Proguard logs +proguard_logs/ diff --git a/mobile/proguard-project.txt b/mobile/proguard-project.txt new file mode 100644 index 00000000..f165b3bd --- /dev/null +++ b/mobile/proguard-project.txt @@ -0,0 +1,11 @@ +# view res/xml/preferences.xml #generated:4 +-keep class com.cradle.iitc_mobile.IITC_AboutDialogPreference { (...); } + +# view AndroidManifest.xml #generated:23 +-keep class com.cradle.iitc_mobile.IITC_Mobile { (...); } + +# view AndroidManifest.xml #generated:40 +-keep class com.cradle.iitc_mobile.IITC_Settings { (...); } + +# view res/layout/activity_main.xml #generated:6 +-keep class com.cradle.iitc_mobile.IITC_WebView { (...); } From dfc18e84f5be3f448e6b408b070a7ee5e244f105 Mon Sep 17 00:00:00 2001 From: hastarin Date: Thu, 23 May 2013 18:14:01 +1000 Subject: [PATCH 09/18] Forgot to move some settings in gitignores. --- .gitignore | 4 ---- mobile/.gitignore | 4 ++++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 10a79255..af7e35cf 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,3 @@ localbuildsettings.py *.swp *~ *.bak - -# built application files -*.apk -*.ap_ diff --git a/mobile/.gitignore b/mobile/.gitignore index d03e2a28..2f94c701 100644 --- a/mobile/.gitignore +++ b/mobile/.gitignore @@ -3,6 +3,10 @@ assets/total-conversion-build.user.js assets/user-location.user.js assets/plugins/ +# built application files +*.apk +*.ap_ + # files for the dex VM *.dex From 98e927fb0f760a0315873fc826abe7790ec38fbe Mon Sep 17 00:00:00 2001 From: hastarin Date: Fri, 24 May 2013 12:04:23 +1000 Subject: [PATCH 10/18] Have everything working now if you don't enable ProGuard. It will take time to determine how it needs to be configured but that's low priority really. --- mobile/.idea/misc.xml | 124 ------------------------------------ mobile/.idea/modules.xml | 2 +- mobile/IITC-Mobile.iml | 2 +- mobile/proguard-project.txt | 2 + 4 files changed, 4 insertions(+), 126 deletions(-) diff --git a/mobile/.idea/misc.xml b/mobile/.idea/misc.xml index 5997eabb..e0d90dd8 100644 --- a/mobile/.idea/misc.xml +++ b/mobile/.idea/misc.xml @@ -1,134 +1,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - localhost - 5050 - - diff --git a/mobile/.idea/modules.xml b/mobile/.idea/modules.xml index 16ec7d18..c7429177 100644 --- a/mobile/.idea/modules.xml +++ b/mobile/.idea/modules.xml @@ -2,7 +2,7 @@ - + diff --git a/mobile/IITC-Mobile.iml b/mobile/IITC-Mobile.iml index 26779940..57c35466 100644 --- a/mobile/IITC-Mobile.iml +++ b/mobile/IITC-Mobile.iml @@ -15,8 +15,8 @@ + - diff --git a/mobile/proguard-project.txt b/mobile/proguard-project.txt index f165b3bd..b77c728c 100644 --- a/mobile/proguard-project.txt +++ b/mobile/proguard-project.txt @@ -9,3 +9,5 @@ # view res/layout/activity_main.xml #generated:6 -keep class com.cradle.iitc_mobile.IITC_WebView { (...); } + +-keep class com.cradle.iitc_mobile.IITC_JSInterface { (...); } \ No newline at end of file From 9ce25e7e57340e0e24c3d1e0add16e84e619d060 Mon Sep 17 00:00:00 2001 From: hastarin Date: Fri, 24 May 2013 15:52:25 +1000 Subject: [PATCH 11/18] Initial commit of a working Search View. --- code/geosearch.js | 35 ++++---- mobile/AndroidManifest.xml | 20 +++++ mobile/proguard-project.txt | 5 +- mobile/res/menu/main.xml | 6 +- mobile/res/values/strings.xml | 2 + mobile/res/xml/searchable.xml | 8 ++ .../com/cradle/iitc_mobile/IITC_Mobile.java | 81 +++++++++++++------ .../com/cradle/iitc_mobile/IITC_WebView.java | 2 + 8 files changed, 117 insertions(+), 42 deletions(-) create mode 100644 mobile/res/xml/searchable.xml diff --git a/code/geosearch.js b/code/geosearch.js index 7bd7d1ee..c877564a 100644 --- a/code/geosearch.js +++ b/code/geosearch.js @@ -6,24 +6,29 @@ window.setupGeosearch = function() { if((e.keyCode ? e.keyCode : e.which) != 13) return; var search = $(this).val(); - - if (!runHooks('geoSearch', search)) { - return; - } - - $.getJSON(NOMINATIM + encodeURIComponent(search), function(data) { - if(!data || !data[0]) return; - var b = data[0].boundingbox; - if(!b) return; - var southWest = new L.LatLng(b[0], b[2]), - northEast = new L.LatLng(b[1], b[3]), - bounds = new L.LatLngBounds(southWest, northEast); - window.map.fitBounds(bounds); - if(window.isSmartphone()) window.smartphone.mapButton.click(); - }); + + if ( window.search(search) ) return; + e.preventDefault(); }); $('#geosearchwrapper img').click(function(){ map.locate({setView : true, maxZoom: 13});; }); } + +window.search = function(search) { + if (!runHooks('geoSearch', search)) { + return true; + } + + $.getJSON(NOMINATIM + encodeURIComponent(search), function(data) { + if(!data || !data[0]) return true; + var b = data[0].boundingbox; + if(!b) return true; + var southWest = new L.LatLng(b[0], b[2]), + northEast = new L.LatLng(b[1], b[3]), + bounds = new L.LatLngBounds(southWest, northEast); + window.map.fitBounds(bounds); + if(window.isSmartphone()) window.smartphone.mapButton.click(); + }); +} diff --git a/mobile/AndroidManifest.xml b/mobile/AndroidManifest.xml index f9fc9e4d..b0fa5c5a 100644 --- a/mobile/AndroidManifest.xml +++ b/mobile/AndroidManifest.xml @@ -24,13 +24,23 @@ android:name="com.cradle.iitc_mobile.IITC_Mobile" android:theme="@style/AppBaseTheme" android:label="@string/app_name" + android:launchMode="singleTop" android:configChanges="orientation|keyboard|keyboardHidden|screenSize"> + + + + + + + + + @@ -46,6 +56,10 @@ android:scheme="http" android:pathPrefix="/intel"> + + + + @@ -74,7 +89,12 @@ + + + diff --git a/mobile/proguard-project.txt b/mobile/proguard-project.txt index b77c728c..34f9866f 100644 --- a/mobile/proguard-project.txt +++ b/mobile/proguard-project.txt @@ -4,7 +4,10 @@ # view AndroidManifest.xml #generated:23 -keep class com.cradle.iitc_mobile.IITC_Mobile { (...); } -# view AndroidManifest.xml #generated:40 +# view AndroidManifest.xml #generated:56 +-keep class com.cradle.iitc_mobile.IITC_SearchableActivity { (...); } + +# view AndroidManifest.xml #generated:50 -keep class com.cradle.iitc_mobile.IITC_Settings { (...); } # view res/layout/activity_main.xml #generated:6 diff --git a/mobile/res/menu/main.xml b/mobile/res/menu/main.xml index eba307b5..854cc598 100644 --- a/mobile/res/menu/main.xml +++ b/mobile/res/menu/main.xml @@ -1,5 +1,9 @@ - + Debug Choose account to login Login failed. + Search Locations + Search \ No newline at end of file diff --git a/mobile/res/xml/searchable.xml b/mobile/res/xml/searchable.xml new file mode 100644 index 00000000..19c27279 --- /dev/null +++ b/mobile/res/xml/searchable.xml @@ -0,0 +1,8 @@ + + + diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java index 88604777..10450861 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java @@ -4,6 +4,7 @@ import java.io.IOException; import android.app.ActionBar; import android.app.Activity; +import android.app.SearchManager; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; @@ -20,11 +21,9 @@ import android.os.Handler; import android.os.StrictMode; import android.preference.PreferenceManager; import android.util.Log; -import android.view.Menu; -import android.view.MenuItem; -import android.view.Window; -import android.view.WindowManager; +import android.view.*; import android.webkit.WebView; +import android.widget.SearchView; import android.widget.Toast; public class IITC_Mobile extends Activity { @@ -98,7 +97,7 @@ public class IITC_Mobile extends Activity { } public void onStatusChanged(String provider, int status, - Bundle extras) { + Bundle extras) { } public void onProviderEnabled(String provider) { @@ -120,8 +119,17 @@ public class IITC_Mobile extends Activity { fullscreen_actionbar = sharedPref.getBoolean("pref_fullscreen_actionbar", false); + handleIntent(getIntent()); + } + + @Override + protected void onNewIntent(Intent intent) { + setIntent(intent); + handleIntent(intent); + } + + private void handleIntent(Intent intent) { // load new iitc web view with ingress intel page - Intent intent = getIntent(); String action = intent.getAction(); if (Intent.ACTION_VIEW.equals(action)) { Uri uri = intent.getData(); @@ -133,6 +141,10 @@ public class IITC_Mobile extends Activity { Log.d("iitcm", "loading url..."); this.loadUrl(url); } + } else if (Intent.ACTION_SEARCH.equals(action)) { + String query = intent.getStringExtra(SearchManager.QUERY); + query = query.replace("'", "''"); + iitc_view.loadUrl("javascript:search('" + query + "');"); } else { this.loadUrl(intel_url); } @@ -238,7 +250,23 @@ public class IITC_Mobile extends Activity { public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); - + // Get the SearchView and set the searchable configuration + SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); + final MenuItem searchMenuItem = menu.findItem(R.id.menu_search); + final SearchView searchView = + (SearchView) searchMenuItem.getActionView(); + // Assumes current activity is the searchable activity + searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); + searchView.setIconifiedByDefault(false); // Do not iconify the widget; expand it by default + searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View view, boolean queryTextFocused) { + if(!queryTextFocused) { + searchMenuItem.collapseActionView(); + searchView.setQuery("", false); + } + } + }); return true; } @@ -246,63 +274,66 @@ public class IITC_Mobile extends Activity { public boolean onOptionsItemSelected(MenuItem item) { // Handle item selection switch (item.getItemId()) { - case android.R.id.home : + case android.R.id.home: iitc_view.loadUrl("javascript: window.show('map');"); actionBar.setTitle(getString(R.string.menu_map)); return true; - case R.id.menu_map : + case R.id.menu_map: iitc_view.loadUrl("javascript: window.show('map');"); actionBar.setTitle(getString(R.string.menu_map)); return true; - case R.id.reload_button : + case R.id.reload_button: this.loadUrl(intel_url); actionBar.setTitle(getString(R.string.menu_map)); return true; - case R.id.toggle_fullscreen : + case R.id.toggle_fullscreen: toggleFullscreen(); return true; case R.id.layer_chooser: // the getLayers function calls the setLayers method of IITC_JSInterface iitc_view.loadUrl("javascript: window.layerChooser.getLayers()"); return true; - // get the users current location and focus it on map - case R.id.locate : + // get the users current location and focus it on map + case R.id.locate: iitc_view.loadUrl("javascript: window.show('map');"); iitc_view.loadUrl("javascript: window.map.locate({setView : true, maxZoom: 15});"); actionBar.setTitle(getString(R.string.menu_map)); return true; - // start settings activity - case R.id.action_settings : + // start settings activity + case R.id.action_settings: Intent intent = new Intent(this, IITC_Settings.class); intent.putExtra("iitc_version", iitc_view.getWebViewClient() .getIITCVersion()); startActivity(intent); return true; - case R.id.menu_info : + case R.id.menu_info: iitc_view.loadUrl("javascript: window.show('info');"); actionBar.setTitle(getString(R.string.menu_info)); return true; - case R.id.menu_full : + case R.id.menu_full: iitc_view.loadUrl("javascript: window.show('full');"); actionBar.setTitle(getString(R.string.menu_full)); return true; - case R.id.menu_compact : + case R.id.menu_compact: iitc_view.loadUrl("javascript: window.show('compact');"); actionBar.setTitle(getString(R.string.menu_compact)); return true; - case R.id.menu_public : + case R.id.menu_public: iitc_view.loadUrl("javascript: window.show('public');"); actionBar.setTitle(getString(R.string.menu_public)); return true; - case R.id.menu_faction : + case R.id.menu_faction: iitc_view.loadUrl("javascript: window.show('faction');"); actionBar.setTitle(getString(R.string.menu_faction)); return true; - case R.id.menu_debug : + case R.id.menu_debug: iitc_view.loadUrl("javascript: window.show('debug')"); actionBar.setTitle(getString(R.string.menu_debug)); return true; - default : + case R.id.menu_search: + onSearchRequested(); + return true; + default: return super.onOptionsItemSelected(item); } } @@ -377,12 +408,12 @@ public class IITC_Mobile extends Activity { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { - case REQUEST_LOGIN : + case REQUEST_LOGIN: // authentication activity has returned. mLogin will continue authentication mLogin.onActivityResult(resultCode, data); break; - default : + default: super.onActivityResult(requestCode, resultCode, data); } } @@ -391,7 +422,7 @@ public class IITC_Mobile extends Activity { * called by IITC_WebViewClient when the Google login form is opened. */ public void onReceivedLoginRequest(IITC_WebViewClient client, WebView view, - String realm, String account, String args) { + String realm, String account, String args) { mLogin = new IITC_DeviceAccountLogin(this, view, client); mLogin.startLogin(realm, account, args); } diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java b/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java index b3a752a3..056bdfe8 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java @@ -11,6 +11,7 @@ import android.os.Build; import android.preference.PreferenceManager; import android.util.AttributeSet; import android.util.Log; +import android.view.View; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; @@ -26,6 +27,7 @@ public class IITC_WebView extends WebView { // init web view private void iitc_init(Context c) { + if ( this.isInEditMode() ) return; settings = this.getSettings(); settings.setJavaScriptEnabled(true); settings.setDomStorageEnabled(true); From dd8ceaf934ac229fe0505eef1d928fcf957de350 Mon Sep 17 00:00:00 2001 From: hastarin Date: Fri, 24 May 2013 16:15:56 +1000 Subject: [PATCH 12/18] Reordered menu items. IMO Layers is used more than My Location. --- mobile/res/menu/main.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/mobile/res/menu/main.xml b/mobile/res/menu/main.xml index 854cc598..99c9715e 100644 --- a/mobile/res/menu/main.xml +++ b/mobile/res/menu/main.xml @@ -51,13 +51,6 @@ - - + + Date: Fri, 24 May 2013 17:04:06 +1000 Subject: [PATCH 13/18] Removed menu selection handling for search due to double search. --- mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java index 10450861..ee097570 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java @@ -330,9 +330,6 @@ public class IITC_Mobile extends Activity { iitc_view.loadUrl("javascript: window.show('debug')"); actionBar.setTitle(getString(R.string.menu_debug)); return true; - case R.id.menu_search: - onSearchRequested(); - return true; default: return super.onOptionsItemSelected(item); } From a56272f2609a62a57b000d1bddaa359306d63ddd Mon Sep 17 00:00:00 2001 From: Philipp Schaefer Date: Fri, 24 May 2013 15:48:37 +0200 Subject: [PATCH 14/18] some tweaks for the new search * distinguish between onCreate intent and resume intent (do not always reload) * handle voice search correct --- .../com/cradle/iitc_mobile/IITC_Mobile.java | 32 ++++++++++--------- .../com/cradle/iitc_mobile/IITC_WebView.java | 1 - 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java index ee097570..aa67c802 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java @@ -5,6 +5,7 @@ import java.io.IOException; import android.app.ActionBar; import android.app.Activity; import android.app.SearchManager; +import android.app.Service; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; @@ -21,7 +22,12 @@ import android.os.Handler; import android.os.StrictMode; import android.preference.PreferenceManager; import android.util.Log; -import android.view.*; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.view.inputmethod.InputMethodManager; import android.webkit.WebView; import android.widget.SearchView; import android.widget.Toast; @@ -41,6 +47,7 @@ public class IITC_Mobile extends Activity { private boolean fullscreen_actionbar = false; private ActionBar actionBar; private IITC_DeviceAccountLogin mLogin; + private MenuItem searchMenuItem; @Override protected void onCreate(Bundle savedInstanceState) { @@ -119,16 +126,16 @@ public class IITC_Mobile extends Activity { fullscreen_actionbar = sharedPref.getBoolean("pref_fullscreen_actionbar", false); - handleIntent(getIntent()); + handleIntent(getIntent(), true); } @Override protected void onNewIntent(Intent intent) { setIntent(intent); - handleIntent(intent); + handleIntent(intent, false); } - private void handleIntent(Intent intent) { + private void handleIntent(Intent intent, boolean onCreate) { // load new iitc web view with ingress intel page String action = intent.getAction(); if (Intent.ACTION_VIEW.equals(action)) { @@ -144,8 +151,12 @@ public class IITC_Mobile extends Activity { } else if (Intent.ACTION_SEARCH.equals(action)) { String query = intent.getStringExtra(SearchManager.QUERY); query = query.replace("'", "''"); + final SearchView searchView = + (SearchView) searchMenuItem.getActionView(); + searchView.setQuery(query, false); + searchView.clearFocus(); iitc_view.loadUrl("javascript:search('" + query + "');"); - } else { + } else if (onCreate){ this.loadUrl(intel_url); } } @@ -252,21 +263,12 @@ public class IITC_Mobile extends Activity { getMenuInflater().inflate(R.menu.main, menu); // Get the SearchView and set the searchable configuration SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); - final MenuItem searchMenuItem = menu.findItem(R.id.menu_search); + this.searchMenuItem = menu.findItem(R.id.menu_search); final SearchView searchView = (SearchView) searchMenuItem.getActionView(); // Assumes current activity is the searchable activity searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); searchView.setIconifiedByDefault(false); // Do not iconify the widget; expand it by default - searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() { - @Override - public void onFocusChange(View view, boolean queryTextFocused) { - if(!queryTextFocused) { - searchMenuItem.collapseActionView(); - searchView.setQuery("", false); - } - } - }); return true; } diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java b/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java index 056bdfe8..2a910f2a 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java @@ -11,7 +11,6 @@ import android.os.Build; import android.preference.PreferenceManager; import android.util.AttributeSet; import android.util.Log; -import android.view.View; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; From 3245ca01d478d5f9412dbcd281e444cf7797dd8a Mon Sep 17 00:00:00 2001 From: Philipp Schaefer Date: Fri, 24 May 2013 15:52:36 +0200 Subject: [PATCH 15/18] removed not used imports --- mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java index aa67c802..d98ca631 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java @@ -5,7 +5,6 @@ import java.io.IOException; import android.app.ActionBar; import android.app.Activity; import android.app.SearchManager; -import android.app.Service; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; @@ -24,10 +23,8 @@ 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.view.inputmethod.InputMethodManager; import android.webkit.WebView; import android.widget.SearchView; import android.widget.Toast; From 58faf2e2ba66e4adb48f35c36aaae2aa5989508f Mon Sep 17 00:00:00 2001 From: Philipp Schaefer Date: Fri, 24 May 2013 15:54:56 +0200 Subject: [PATCH 16/18] removed speech-search plugin from mobile. it is not working and iitcm brings its own voice search --- build.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.py b/build.py index 5c2e3cb9..2a3eb7d9 100755 --- a/build.py +++ b/build.py @@ -225,7 +225,7 @@ if buildMobile: except: pass shutil.rmtree("mobile/assets/plugins") - shutil.copytree(os.path.join(outDir,"plugins"), "mobile/assets/plugins", ignore=shutil.ignore_patterns('*.meta.js', 'force-https*', 'privacy-view*')) + shutil.copytree(os.path.join(outDir,"plugins"), "mobile/assets/plugins", ignore=shutil.ignore_patterns('*.meta.js', 'force-https*', 'privacy-view*', 'speech-search*')) if buildMobile != 'copyonly': From 7e35c95e2c32483c314461f2c9293fa1e31fb20a Mon Sep 17 00:00:00 2001 From: Philipp Schaefer Date: Fri, 24 May 2013 15:58:19 +0200 Subject: [PATCH 17/18] reordered layer and location buttons correctly ;) --- mobile/res/menu/main.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mobile/res/menu/main.xml b/mobile/res/menu/main.xml index 99c9715e..e203e4fb 100644 --- a/mobile/res/menu/main.xml +++ b/mobile/res/menu/main.xml @@ -54,14 +54,14 @@ From e7a296b2b38393f52b6a021c07ad62ffe56267e1 Mon Sep 17 00:00:00 2001 From: Philipp Schaefer Date: Fri, 24 May 2013 16:03:24 +0200 Subject: [PATCH 18/18] removed wrong semicolon --- code/geosearch.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/geosearch.js b/code/geosearch.js index c877564a..ab67a56c 100644 --- a/code/geosearch.js +++ b/code/geosearch.js @@ -12,7 +12,7 @@ window.setupGeosearch = function() { e.preventDefault(); }); $('#geosearchwrapper img').click(function(){ - map.locate({setView : true, maxZoom: 13});; + map.locate({setView : true, maxZoom: 13}); }); }