From 1c90826edf3b0815d31ac4a4188aa9fa56a76689 Mon Sep 17 00:00:00 2001 From: kenstir Date: Sun, 5 Jan 2014 20:31:54 -0500 Subject: [PATCH] Added class (Keyword/Title/Author/Subject/Series) spinner to search activity. --- .../core/res/layout-land/search_result_list.xml | 29 ++++----------- .../Android/core/res/layout/search_result_list.xml | 30 +++++++++++----- Open-ILS/src/Android/core/res/menu/menu_search.xml | 4 --- .../searchCatalog/AdvancedSearchActivity.java | 11 ++++++ .../searchCatalog/SampleUnderlinesNoFade.java | 2 +- .../evergreen_ils/searchCatalog/SearchCatalog.java | 13 ++++--- .../searchCatalog/SearchCatalogListView.java | 41 ++++++++++++---------- 7 files changed, 68 insertions(+), 62 deletions(-) diff --git a/Open-ILS/src/Android/core/res/layout-land/search_result_list.xml b/Open-ILS/src/Android/core/res/layout-land/search_result_list.xml index 9ae05b0c1f..e0f3c7a5f7 100644 --- a/Open-ILS/src/Android/core/res/layout-land/search_result_list.xml +++ b/Open-ILS/src/Android/core/res/layout-land/search_result_list.xml @@ -22,13 +22,12 @@ android:singleLine="true" android:layout_weight="1"/> - - - + - - - + android:orientation="horizontal"> + + + diff --git a/Open-ILS/src/Android/core/res/menu/menu_search.xml b/Open-ILS/src/Android/core/res/menu/menu_search.xml index a7758e09ac..ea3c81ff94 100644 --- a/Open-ILS/src/Android/core/res/menu/menu_search.xml +++ b/Open-ILS/src/Android/core/res/menu/menu_search.xml @@ -2,10 +2,6 @@ - diff --git a/Open-ILS/src/Android/core/src/org/evergreen_ils/searchCatalog/AdvancedSearchActivity.java b/Open-ILS/src/Android/core/src/org/evergreen_ils/searchCatalog/AdvancedSearchActivity.java index 36b768a191..4eeef10b6b 100644 --- a/Open-ILS/src/Android/core/src/org/evergreen_ils/searchCatalog/AdvancedSearchActivity.java +++ b/Open-ILS/src/Android/core/src/org/evergreen_ils/searchCatalog/AdvancedSearchActivity.java @@ -23,6 +23,7 @@ import java.util.StringTokenizer; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity; +import android.view.MenuItem; import org.evergreen_ils.R; import org.evergreen_ils.accountAccess.AccountAccess; import org.evergreen_ils.views.splashscreen.SplashActivity; @@ -158,4 +159,14 @@ public class AdvancedSearchActivity extends ActionBarActivity { } + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int id = item.getItemId(); + if (id == android.R.id.home) { + onBackPressed(); + return true; + } + return super.onOptionsItemSelected(item); + } + } diff --git a/Open-ILS/src/Android/core/src/org/evergreen_ils/searchCatalog/SampleUnderlinesNoFade.java b/Open-ILS/src/Android/core/src/org/evergreen_ils/searchCatalog/SampleUnderlinesNoFade.java index 09978e9ec3..385a2d5ee6 100644 --- a/Open-ILS/src/Android/core/src/org/evergreen_ils/searchCatalog/SampleUnderlinesNoFade.java +++ b/Open-ILS/src/Android/core/src/org/evergreen_ils/searchCatalog/SampleUnderlinesNoFade.java @@ -114,7 +114,7 @@ public class SampleUnderlinesNoFade extends BaseSampleActivity { } }); - searchRecords = search.getSearchResults(search.searchText, records.size()); + searchRecords = search.getSearchResults(search.searchText, search.searchClass, records.size()); runOnUiThread(new Runnable() { diff --git a/Open-ILS/src/Android/core/src/org/evergreen_ils/searchCatalog/SearchCatalog.java b/Open-ILS/src/Android/core/src/org/evergreen_ils/searchCatalog/SearchCatalog.java index 71760d39cc..f8cc5686e0 100644 --- a/Open-ILS/src/Android/core/src/org/evergreen_ils/searchCatalog/SearchCatalog.java +++ b/Open-ILS/src/Android/core/src/org/evergreen_ils/searchCatalog/SearchCatalog.java @@ -114,6 +114,7 @@ public class SearchCatalog { public Integer searchLimit = 10; public String searchText = null; + public String searchClass = null; private ConnectivityManager cm; @@ -160,10 +161,10 @@ public class SearchCatalog { * the search words * @return the search results */ - public ArrayList getSearchResults(String searchWords, - Integer offset) { + public ArrayList getSearchResults(String searchWords, String searchClass, Integer offset) { searchText = searchWords; + this.searchClass = searchClass; ArrayList resultsRecordInfo = new ArrayList(); @@ -180,14 +181,12 @@ public class SearchCatalog { complexParm.put("depth", this.selectedOrganization.level - 1); } - // TODO change here, multiple result per page complexParm.put("limit", searchLimit); - complexParm.put("offset", offset); - + if (searchClass != null) complexParm.put("default_class", searchClass); /* - * complexParm.put("offset",0); complexParm.put("visibility_limit", - * 3000); complexParm.put("default_class","keyword"); + * complexParm.put("offset",0); + * complexParm.put("visibility_limit", 3000); */ } catch (Exception e) { diff --git a/Open-ILS/src/Android/core/src/org/evergreen_ils/searchCatalog/SearchCatalogListView.java b/Open-ILS/src/Android/core/src/org/evergreen_ils/searchCatalog/SearchCatalogListView.java index 12ed74c5a5..dd4c757448 100644 --- a/Open-ILS/src/Android/core/src/org/evergreen_ils/searchCatalog/SearchCatalogListView.java +++ b/Open-ILS/src/Android/core/src/org/evergreen_ils/searchCatalog/SearchCatalogListView.java @@ -105,10 +105,19 @@ public class SearchCatalogListView extends ActionBarActivity { private Runnable searchForResultsRunnable = null; private View searchOptionsMenu = null; + private Spinner searchClassSpinner; // marks when the fetching record thread is started private boolean loadingElements = false; + private String getSearchText() { + return searchText.getText().toString(); + } + + private String getSearchClass() { + return searchClassSpinner.getSelectedItem().toString().toLowerCase(); + } + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -140,6 +149,8 @@ public class SearchCatalogListView extends ActionBarActivity { R.layout.search_result_item, recordList); //searchOptionsMenu = findViewById(R.id.search_preference_options); + //final Spinner searchFormatSpinner = (Spinner) findViewById(R.id.search_format_spinner); + searchClassSpinner = (Spinner) findViewById(R.id.search_class_spinner); searchResultsNumber = (TextView) findViewById(R.id.search_result_number); // Get reference to ListView holder @@ -159,9 +170,11 @@ public class SearchCatalogListView extends ActionBarActivity { @Override public void run() { - final String text = searchText.getText().toString(); + final String text = getSearchText(); if (text.length() < 1) return; + int searchQueryType = searchClassSpinner.getSelectedItemPosition(); + Log.d(TAG, "type="+searchQueryType+" class="+getSearchClass()); runOnUiThread(new Runnable() { @Override @@ -180,7 +193,7 @@ public class SearchCatalogListView extends ActionBarActivity { } }); - searchResults = search.getSearchResults(text, 0); + searchResults = search.getSearchResults(text, getSearchClass(), 0); runOnUiThread(new Runnable() { @@ -237,8 +250,7 @@ public class SearchCatalogListView extends ActionBarActivity { searchResults.clear(); - searchResults = search.getSearchResults(text, - recordList.size()); + searchResults = search.getSearchResults(text, getSearchClass(), recordList.size()); runOnUiThread(new Runnable() { @@ -337,13 +349,10 @@ public class SearchCatalogListView extends ActionBarActivity { @Override public void run() { - String text = searchText.getText() - .toString(); + String text = getSearchText(); searchResults.clear(); - - searchResults = search - .getSearchResults(text, - adapter.getCount()); + searchResults = search.getSearchResults(text, getSearchClass(), + adapter.getCount()); runOnUiThread(new Runnable() { @@ -355,14 +364,8 @@ public class SearchCatalogListView extends ActionBarActivity { Log.d(TAG, "Returned " + searchResults.size() + " elements from search"); - if (searchResults.size() > 0) { - - for (int j = 0; j < searchResults - .size(); j++) - recordList - .add(searchResults - .get(j)); - + for (int j = 0; j < searchResults.size(); j++) { + recordList.add(searchResults.get(j)); } searchResultsNumber.setText(adapter @@ -596,7 +599,7 @@ public class SearchCatalogListView extends ActionBarActivity { @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); - if (id == R.id.action_search) { + if (id == R.id.action_advanced_search) { startActivityForResult(new Intent(getApplicationContext(), AdvancedSearchActivity.class), 2); return true; } -- 2.11.0