android:singleLine="true"
android:layout_weight="1"/>
- </LinearLayout>
-
- <LinearLayout
- android:id="@+id/search_spinner_container"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_below="@id/search_text_container">
+ <Spinner
+ android:id="@+id/search_class_spinner"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="right"
+ android:entries="@array/advanced_search_index"/>
<Spinner
android:id="@+id/chose_organisation"
</LinearLayout>
- <!--
- <LinearLayout
- android:id="@+id/search_preference_options"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:layout_below="@id/header"
- android:layout_centerHorizontal="true"
- android:background="@drawable/background_grey_image"
- android:gravity="center"
- >
- </LinearLayout>
- -->
-
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/search_text"
- android:layout_below="@id/search_spinner_container"
+ android:layout_below="@id/search_text_container"
>
<TextView
android:id="@+id/search_result_number"
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
android:background="@drawable/background_grey_image"
>
<LinearLayout
android:id="@+id/search_text_container"
- android:layout_width="fill_parent"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_marginTop="4dip"
>
- <EditText
- android:id="@+id/searchText"
- android:layout_width="fill_parent"
+ <LinearLayout
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:hint="@string/search_hint"
- android:singleLine="true"/>
+ android:orientation="horizontal">
+ <EditText
+ android:id="@+id/searchText"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:hint="@string/search_hint"
+ android:singleLine="true"/>
+ <Spinner
+ android:id="@+id/search_class_spinner"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="right"
+ android:entries="@array/advanced_search_index"/>
+ </LinearLayout>
<LinearLayout
- android:layout_width="fill_parent"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto">
- <item android:id="@+id/action_search"
- android:icon="@drawable/abc_ic_search"
- android:title="@string/title_search"
- yourapp:showAsAction="ifRoom"/>
<item android:id="@+id/action_advanced_search"
android:icon="@drawable/abc_ic_search"
android:title="@string/advanced_search"/>
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;
}
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ int id = item.getItemId();
+ if (id == android.R.id.home) {
+ onBackPressed();
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+
}
}
});
- searchRecords = search.getSearchResults(search.searchText, records.size());
+ searchRecords = search.getSearchResults(search.searchText, search.searchClass, records.size());
runOnUiThread(new Runnable() {
public Integer searchLimit = 10;
public String searchText = null;
+ public String searchClass = null;
private ConnectivityManager cm;
* the search words
* @return the search results
*/
- public ArrayList<RecordInfo> getSearchResults(String searchWords,
- Integer offset) {
+ public ArrayList<RecordInfo> getSearchResults(String searchWords, String searchClass, Integer offset) {
searchText = searchWords;
+ this.searchClass = searchClass;
ArrayList<RecordInfo> resultsRecordInfo = new ArrayList<RecordInfo>();
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) {
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);
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
@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
}
});
- searchResults = search.getSearchResults(text, 0);
+ searchResults = search.getSearchResults(text, getSearchClass(), 0);
runOnUiThread(new Runnable() {
searchResults.clear();
- searchResults = search.getSearchResults(text,
- recordList.size());
+ searchResults = search.getSearchResults(text, getSearchClass(), recordList.size());
runOnUiThread(new Runnable() {
@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() {
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
@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;
}