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.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.ImageView; 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 simple search interface */ public class BasicSearchFragment extends Fragment { TextView firstNameText; TextView lastNameText; Button submitButton; ImageView backgroundImage; SearchFormActivity mActivity; View mView; // An intent for ProfileListActivity Intent listIntent; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mView = inflater.inflate(R.layout.fragment_simple_search, container, false); mActivity = (SearchFormActivity) getActivity(); setHasOptionsMenu(true); initializeViews(mActivity); backgroundImage = (ImageView) mView.findViewById(R.id.background_image); int backgroundNum = (int) (Math.random() * 5); if (backgroundNum == 0) { backgroundImage.setImageResource(R.drawable.jrc); } else if (backgroundNum == 1) backgroundImage.setImageResource(R.drawable.arh); else if (backgroundNum == 2) backgroundImage.setImageResource(R.drawable.main); else if (backgroundNum == 3) backgroundImage.setImageResource(R.drawable.gates); else backgroundImage.setImageResource(R.drawable.east); return mView; } public void onResume(){ super.onResume();// Initialize all of the variables. } @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: sendQuery(); 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); OnEditorActionListener editTextListener = new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { boolean handled = false; if (actionId == EditorInfo.IME_ACTION_SEARCH) { sendQuery(); handled = true; } return handled; } }; firstNameText.setOnEditorActionListener(editTextListener); lastNameText.setOnEditorActionListener(editTextListener); } // send user search query public void sendQuery() { InputMethodManager imm = (InputMethodManager) mActivity .getSystemService(Context.INPUT_METHOD_SERVICE); // hide keyboard imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); if (firstNameText.getText().toString().isEmpty() && lastNameText.getText().toString().isEmpty()) { Toast.makeText(getActivity(), "Please enter either a first or last name to proceed.", Toast.LENGTH_SHORT).show(); } else { 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()); new RequestTask(mActivity).execute(theURL); } } public void clearFields() { firstNameText.setText(""); lastNameText.setText(""); } @Override public void onPause(){ super.onPause(); } }