package edu.mit.mitmobile2.facilities; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.os.Handler; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.AutoCompleteTextView; import android.widget.ListView; import edu.mit.mitmobile2.Global; import edu.mit.mitmobile2.NewModule; import edu.mit.mitmobile2.NewModuleActivity; import edu.mit.mitmobile2.R; import edu.mit.mitmobile2.facilities.FacilitiesDB.LocationTable; import edu.mit.mitmobile2.objs.FacilitiesItem.LocationRecord; public class FacilitiesLocationsForCategoryActivity extends NewModuleActivity { public static final String TAG = "FacilitiesLocationsForCategoryActivity"; Context mContext; ListView mListView; FacilitiesDB db; Handler uiHandler = new Handler(); /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { Log.d(TAG,"onCreate()"); super.onCreate(savedInstanceState); mContext = this; db = FacilitiesDB.getInstance(mContext); createViews(); } public void createViews() { setContentView(R.layout.facilities_locations_for_category); addSecondaryTitle("Where is it?"); // Set up locations for selected category final FacilitiesDB db = FacilitiesDB.getInstance(this); LocationAdapter adapter = new LocationAdapter(this, db.getLocationCategoryCursor()); Log.d(TAG,"num records in adapter = " + adapter.getCount()); ListView listView = (ListView) findViewById(R.id.facilitiesProblemLocationsForCategoryListView); listView.setAdapter(adapter); listView.setVisibility(View.VISIBLE); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Cursor cursor = (Cursor)parent.getItemAtPosition(position); LocationRecord location = FacilitiesDB.getLocationRecord(cursor); FacilitiesActivity.launchActivityForLocation(mContext, location); } }); AutoCompleteTextView facilitiesTextLocation = (AutoCompleteTextView) findViewById(R.id.facilitiesTextLocation); facilitiesTextLocation.setAdapter(new LocationsForCategorySearchCursorAdapter(this, db)); facilitiesTextLocation.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> listView, View row, int position, long id) { Cursor cursor = (Cursor) listView.getItemAtPosition(position); LocationRecord locationRecord = FacilitiesDB.getLocationRecord(cursor); int dbIdIndex = cursor.getColumnIndexOrThrow(LocationTable._ID); long dbId = cursor.getLong(dbIdIndex); /* * if the user selected a use what I typed option, use this as the actual location * and jump to the problem type selection screen * Else, go to the room selection screen if building number is defined, else inside/outside screen */ Log.d(TAG,"locastion search _id = " + dbId); if (dbId == -1) { int nameIndex = cursor.getColumnIndexOrThrow("name"); Global.sharedData.getFacilitiesData().setUserAssignedLocationName(cursor.getString(nameIndex)); Intent intent = new Intent(mContext, FacilitiesProblemTypeActivity.class); startActivity(intent); return; } else { Global.sharedData.getFacilitiesData().setUserAssignedLocationName(null); } FacilitiesActivity.launchActivityForLocation(mContext, locationRecord); } }); } @Override public boolean isModuleHomeActivity() { return false; } @Override protected NewModule getNewModule() { // TODO Auto-generated method stub return new FacilitiesModule(); } @Override protected boolean isScrollable() { // TODO Auto-generated method stub return false; } @Override protected void onOptionSelected(String optionId) { // TODO Auto-generated method stub } }