package edu.grinnell.appdev.grinnelldirectory.Fragments; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.EditorInfo; import android.widget.Button; import android.widget.Spinner; import android.widget.TextView; import android.widget.TextView.OnEditorActionListener; import android.widget.Toast; import edu.grinnell.appdev.grinnelldirectory.R; import edu.grinnell.appdev.grinnelldirectory.Tasks.RequestTask; import edu.grinnell.appdev.grinnelldirectory.Activities.SearchFormActivity; /* A fragment off the Search Form Activity with a detailed search interface */ public class DetailedSearchFragment extends Fragment { SearchFormActivity mActivity; View mView; // Fields in the layout TextView firstNameText; TextView lastNameText; TextView usernameText; TextView phoneText; TextView campusAddressText; TextView homeAddressText; Spinner facDeptSpinner; Spinner studentMajorSpinner; Spinner concentrationSpinner; Spinner sgaSpinner; Spinner hiatusSpinner; Spinner studentClassSpinner; Button submitButton; // An intent for ProfileListActivity Intent listIntent; OnEditorActionListener editTextListener; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mView = inflater.inflate(R.layout.fragment_detailed_search, container, false); mActivity = (SearchFormActivity) getActivity(); setHasOptionsMenu(true); initializeViews(mActivity); // Initialize all of the variables. return mView; } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.activity_search_form, menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.search: sendDetailedQuery(); return true; case R.id.reset: clearFields(); return true; default: return super.onOptionsItemSelected(item ); } } public void initializeViews(Context c) { firstNameText = (TextView) mView.findViewById(R.id.first_text); lastNameText = (TextView) mView.findViewById(R.id.last_text); usernameText = (TextView) mView.findViewById(R.id.username_text); phoneText = (TextView) mView.findViewById(R.id.phone_text); campusAddressText = (TextView) mView .findViewById(R.id.campus_address_text); homeAddressText = (TextView) mView.findViewById(R.id.home_address_text); facDeptSpinner = (Spinner) mView.findViewById(R.id.fac_dept_spinner); studentMajorSpinner = (Spinner) mView .findViewById(R.id.student_major_spinner); concentrationSpinner = (Spinner) mView .findViewById(R.id.concentration_spinner); sgaSpinner = (Spinner) mView.findViewById(R.id.sga_spinner); hiatusSpinner = (Spinner) mView.findViewById(R.id.hiatus_spinner); studentClassSpinner = (Spinner) mView .findViewById(R.id.student_class_spinner); editTextListener = new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { boolean handled = false; if (actionId == EditorInfo.IME_ACTION_SEARCH) { sendDetailedQuery(); handled = true; } return handled; } }; firstNameText.setOnEditorActionListener(editTextListener); lastNameText.setOnEditorActionListener(editTextListener); usernameText.setOnEditorActionListener(editTextListener); phoneText.setOnEditorActionListener(editTextListener); campusAddressText.setOnEditorActionListener(editTextListener); homeAddressText.setOnEditorActionListener(editTextListener); } public void sendDetailedQuery() { String theURL = "https://itwebapps.grinnell.edu/classic/asp/campusdirectory/GCdefault.asp?transmit=true&blackboardref=true&LastName=" + mActivity.cleanString(lastNameText.getText().toString()) + "&LNameSearch=startswith&FirstName=" + mActivity.cleanString(firstNameText.getText().toString()) + "&FNameSearch=startswith&email=" + mActivity.cleanString(usernameText.getText().toString()) + "&campusphonenumber=" + mActivity.cleanString(phoneText.getText().toString()) + "&campusquery=" + mActivity.cleanString(campusAddressText.getText().toString()) + "&Homequery=" + mActivity.cleanString(homeAddressText.getText().toString()) + "&Department=" + mActivity.cleanString(facDeptSpinner.getSelectedItem() .toString()) + "&Major=" + mActivity.cleanString(studentMajorSpinner.getSelectedItem() .toString()) + "&conc=" + mActivity.cleanString(concentrationSpinner.getSelectedItem() .toString()) + "&SGA=" + mActivity .cleanString(sgaSpinner.getSelectedItem().toString()) + "&Hiatus=" + mActivity.cleanHiatus(hiatusSpinner.getSelectedItem() .toString()) + "&Gyear=" + mActivity.cleanString(studentClassSpinner.getSelectedItem() .toString()) + "&submit_search=Search"; if (mActivity.inGrinnell) new RequestTask(mActivity).execute(theURL); else { Toast toast = Toast .makeText(mActivity, "Connect to Grinnell College Student Network for Detailed Search", Toast.LENGTH_LONG); toast.show(); } } public void clearFields() { firstNameText.setText(""); lastNameText.setText(""); usernameText.setText(""); phoneText.setText(""); campusAddressText.setText(""); homeAddressText.setText(""); facDeptSpinner.setSelection(0); studentMajorSpinner.setSelection(0); concentrationSpinner.setSelection(0); sgaSpinner.setSelection(0); hiatusSpinner.setSelection(0); studentClassSpinner.setSelection(0); } }