[iitcm] improved search
This commit is contained in:
parent
2e1a5fd1ae
commit
4d6a7df596
@ -195,6 +195,8 @@ window.search.doSearch = function(term, confirmed) {
|
|||||||
// clear results
|
// clear results
|
||||||
if(term == '') return;
|
if(term == '') return;
|
||||||
|
|
||||||
|
if(useAndroidPanes()) show('info');
|
||||||
|
|
||||||
$('#search').tooltip().tooltip('close');
|
$('#search').tooltip().tooltip('close');
|
||||||
|
|
||||||
window.search.lastSearch = new window.search.Query(term, confirmed);
|
window.search.lastSearch = new window.search.Query(term, confirmed);
|
||||||
|
@ -268,15 +268,13 @@ public class IITC_Mobile extends Activity
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (Intent.ACTION_SEARCH.equals(action)) {
|
if (Intent.ACTION_SEARCH.equals(action)) {
|
||||||
String query = intent.getStringExtra(SearchManager.QUERY);
|
final String query = intent.getStringExtra(SearchManager.QUERY);
|
||||||
query = query.replace("'", "''");
|
final SearchView searchView = (SearchView) mSearchMenuItem.getActionView();
|
||||||
final SearchView searchView =
|
|
||||||
(SearchView) mSearchMenuItem.getActionView();
|
|
||||||
searchView.setQuery(query, false);
|
searchView.setQuery(query, false);
|
||||||
searchView.clearFocus();
|
searchView.clearFocus();
|
||||||
|
|
||||||
switchToPane(Pane.MAP);
|
search(query, true);
|
||||||
mIitcWebView.loadUrl("javascript:if(window.search&&window.search.doSearch){window.search.doSearch('" + query + "',true);window.show('info')}");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -285,6 +283,14 @@ public class IITC_Mobile extends Activity
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void search(String term, final boolean confirmed) {
|
||||||
|
if (term.isEmpty() && !confirmed) return;
|
||||||
|
|
||||||
|
term = term.replace("'", "\\'");
|
||||||
|
mIitcWebView.loadUrl("javascript:if(window.search&&window.search.doSearch){window.search.doSearch('" + term
|
||||||
|
+ "'," + confirmed + ");}");
|
||||||
|
}
|
||||||
|
|
||||||
private void handleGeoUri(final Uri uri) throws URISyntaxException {
|
private void handleGeoUri(final Uri uri) throws URISyntaxException {
|
||||||
final String[] parts = uri.getSchemeSpecificPart().split("\\?", 2);
|
final String[] parts = uri.getSchemeSpecificPart().split("\\?", 2);
|
||||||
Double lat = null, lon = null;
|
Double lat = null, lon = null;
|
||||||
@ -344,8 +350,7 @@ public class IITC_Mobile extends Activity
|
|||||||
mSearchTerm = search;
|
mSearchTerm = search;
|
||||||
loadUrl(mIntelUrl);
|
loadUrl(mIntelUrl);
|
||||||
} else {
|
} else {
|
||||||
switchToPane(Pane.MAP);
|
search(search, true);
|
||||||
mIitcWebView.loadUrl("javascript:search('" + search + "');");
|
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -507,9 +512,43 @@ public class IITC_Mobile extends Activity
|
|||||||
// Assumes current activity is the searchable activity
|
// Assumes current activity is the searchable activity
|
||||||
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
|
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
|
||||||
searchView.setIconifiedByDefault(false); // Do not iconify the widget; expand it by default
|
searchView.setIconifiedByDefault(false); // Do not iconify the widget; expand it by default
|
||||||
|
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onQueryTextSubmit(final String query) {
|
||||||
|
search(query, true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onQueryTextChange(final String query) {
|
||||||
|
search(query, false);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// the SearchView does not allow submitting an empty query, so we catch the clear button
|
||||||
|
final View buttonClear = searchView.findViewById(
|
||||||
|
getResources().getIdentifier("android:id/search_close_btn", null, null));
|
||||||
|
if (buttonClear != null) buttonClear.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(final View v) {
|
||||||
|
searchView.setQuery("", false);
|
||||||
|
search("", true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onKeyDown(final int keyCode, final KeyEvent event) {
|
||||||
|
if (keyCode == KeyEvent.KEYCODE_SEARCH) {
|
||||||
|
mSearchMenuItem.expandActionView();
|
||||||
|
mSearchMenuItem.getActionView().requestFocus();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return super.onKeyDown(keyCode, event);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPrepareOptionsMenu(final Menu menu) {
|
public boolean onPrepareOptionsMenu(final Menu menu) {
|
||||||
boolean visible = false;
|
boolean visible = false;
|
||||||
@ -731,8 +770,7 @@ public class IITC_Mobile extends Activity
|
|||||||
new Handler().postDelayed(new Runnable() {
|
new Handler().postDelayed(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
// switchToPane(Pane.MAP);
|
search(mSearchTerm, true);
|
||||||
mIitcWebView.loadUrl("javascript:search('" + mSearchTerm + "');");
|
|
||||||
mSearchTerm = null;
|
mSearchTerm = null;
|
||||||
}
|
}
|
||||||
}, 5000);
|
}, 5000);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user