package com.evancharlton.mileage; import com.evancharlton.mileage.dao.Vehicle; import com.evancharlton.mileage.provider.tables.VehiclesTable; import android.content.ContentUris; import android.content.ContentValues; import android.content.Intent; import android.net.Uri; import android.view.ContextMenu; import android.view.Menu; import android.view.MenuItem; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.BaseAdapter; import android.widget.Toast; public class VehicleListActivity extends BaseListActivity { private static final int MENU_TYPES = 1; private static final int MENU_CREATE = 2; public VehicleListActivity() { super(); } protected VehicleListActivity(BaseAdapter adapter) { super(adapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(Menu.NONE, MENU_CREATE, Menu.NONE, R.string.add_vehicle).setIcon( R.drawable.ic_menu_add); menu.add(Menu.NONE, MENU_TYPES, Menu.NONE, R.string.edit_vehicle_types).setIcon( R.drawable.ic_menu_edit); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case MENU_TYPES: startActivity(new Intent(this, VehicleTypeListActivity.class)); return true; case MENU_CREATE: startActivity(new Intent(this, VehicleActivity.class)); return true; } return super.onOptionsItemSelected(item); } @Override protected String[] getFrom() { return new String[] { Vehicle.TITLE, Vehicle.DESCRIPTION }; } @Override protected Uri getUri() { return VehiclesTable.BASE_URI; } @Override public void onItemClick(long id) { loadItem(id, VehicleActivity.class); } @Override protected void addContextMenuItems(ContextMenu menu, AdapterContextMenuInfo info, long id) { menu.add(Menu.NONE, Menu.NONE, Menu.NONE, R.string.set_vehicle_as_default_menu).setIntent( createContextMenuIntent(Intent.ACTION_DEFAULT, id)); super.addContextMenuItems(menu, info, id); } @Override protected boolean handleContextMenuSelection(Intent intent, final long itemId) { if (intent.getAction().equals(Intent.ACTION_DEFAULT)) { ContentValues values = new ContentValues(); values.put(Vehicle.DEFAULT_TIME, System.currentTimeMillis()); Uri uri = ContentUris.withAppendedId(VehiclesTable.BASE_URI, itemId); getContentResolver().update(uri, values, null, null); Toast.makeText(this, getString(R.string.toast_vehicle_set_as_default), Toast.LENGTH_SHORT).show(); return true; } return super.handleContextMenuSelection(intent, itemId); } @Override protected boolean canDelete(int position) { return getAdapter().getCount() > 1; } }