diff --git a/app/src/main/java/org/openlp/android2/common/JsonHelpers.java b/app/src/main/java/org/openlp/android2/common/JsonHelpers.java
index a46ac09..3505006 100644
--- a/app/src/main/java/org/openlp/android2/common/JsonHelpers.java
+++ b/app/src/main/java/org/openlp/android2/common/JsonHelpers.java
@@ -45,6 +45,20 @@ public class JsonHelpers {
}
}
+ public static String createSearchJSON(String key, String value) throws JSONHandlerException {
+ try {
+ String responseJSON;
+ responseJSON = new JSONStringer().object().key(key).value(value)
+ .endObject().toString();
+ responseJSON = URLEncoder.encode(responseJSON, "UTF-8");
+ return responseJSON;
+ } catch (JSONException e) {
+ throw new JSONHandlerException(e);
+ } catch (UnsupportedEncodingException e) {
+ throw new JSONHandlerException(e);
+ }
+ }
+
public static class JSONHandlerException extends Exception {
private static final long serialVersionUID = -6772307308404816615L;
diff --git a/app/src/main/java/org/openlp/android2/fragments/SearchFragment.java b/app/src/main/java/org/openlp/android2/fragments/SearchFragment.java
index 8db1bb7..993e4ce 100644
--- a/app/src/main/java/org/openlp/android2/fragments/SearchFragment.java
+++ b/app/src/main/java/org/openlp/android2/fragments/SearchFragment.java
@@ -8,11 +8,15 @@ import android.preference.PreferenceManager;
import android.text.Html;
import android.util.Log;
import android.util.TypedValue;
+import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
+import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
@@ -72,16 +76,30 @@ public class SearchFragment extends Fragment {
View view = inflater.inflate(R.layout.fragment_search, container, false);
spinner = (Spinner)view.findViewById(R.id.search_spinner);
triggerTextRequest(Api.SEARCHABLE_PLUGINS);
- //spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
- return view;
- }
- @Override
- public void onResume() {
- super.onResume();
- Log.d(LOG_TAG, "Resuming...");
- //triggerTextRequest(Api.SEARCHABLE_PLUGINS);
- Log.d(LOG_TAG, "Resumed...");
+ // Add search listener to text field
+ EditText editText = (EditText)view.findViewById(R.id.search_text);
+ editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
+ @Override
+ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+ if (actionId == EditorInfo.IME_ACTION_SEARCH) {
+ // Now close the keyboard as finished with
+ View view = getActivity().getCurrentFocus();
+ if (view != null) {
+ InputMethodManager imm =
+ (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
+ imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
+ }
+ String text = spinner.getSelectedItem().toString();
+ String text1 = v.getText().toString();
+ Toast.makeText(context, "Search Called " + text + " " + text1, Toast.LENGTH_SHORT).show();
+ requestSearch(spinner.getSelectedItem().toString(), v.getText().toString());
+ return true;
+ }
+ return false;
+ }
+ });
+ return view;
}
@Override
@@ -118,7 +136,6 @@ public class SearchFragment extends Fragment {
Log.i(LOG_TAG, "populatePluginList - exit");
}
-
public void itemClicked(int position) {
try {
String request = JsonHelpers.createRequestJSON("id", Integer.toString(position));
@@ -153,4 +170,17 @@ public class SearchFragment extends Fragment {
});
}
+ public void requestSearch(String plugin, String text) {
+ updateUrl = Api.SEARCH_PLUGIN_FORMATTED;
+ try {
+ String request = JsonHelpers.createSearchJSON("data", text);
+ String url = String.format(Api.SEARCH_PLUGIN_FORMATTED, plugin);
+ triggerTextRequest(String.format("%s%s", url, request));
+ Log.d(LOG_TAG, String.format("Search request. apiBase(%s), text(%s)", plugin, text));
+ } catch (JsonHelpers.JSONHandlerException e) {
+ e.printStackTrace();
+ Toast.makeText(context, "Search Request Failed", Toast.LENGTH_SHORT).show();
+ }
+ }
+
}
diff --git a/app/src/main/res/layout/fragment_search.xml b/app/src/main/res/layout/fragment_search.xml
index 843ea79..fa1fc6f 100644
--- a/app/src/main/res/layout/fragment_search.xml
+++ b/app/src/main/res/layout/fragment_search.xml
@@ -33,14 +33,6 @@
android:layout_weight="0.4"
android:textAppearance="?android:attr/textAppearanceLarge"/>
-
-
+ android:layout_weight="0.87"
+ android:inputType="text" />