package com.evancharlton.mileage; import java.util.Calendar; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import com.evancharlton.mileage.models.FillUp; public class FillUpView extends AddFillUpView { private static final int DELETE_DIALOG_ID = 1; public static final int MENU_DELETE = Menu.FIRST; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } protected void initHandlers() { super.initHandlers(); m_saveButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // get the ID long id = Long.parseLong(getIntent().getData().getLastPathSegment()); // save the new fill-up FillUp fillup = saveData(); if (fillup == null) { showMessage(false); return; } fillup.setId(id); fillup.setPartial(m_partialCheckbox.isChecked()); fillup.save(); findServiceIntervals(fillup); finish(); showMessage(true); } }); } @Override protected void delete() { getContentResolver().delete(getIntent().getData(), null, null); } @Override protected void onResume() { super.onResume(); loadData(); } @Override protected void loadData() { super.loadData(); Intent data = getIntent(); Cursor c = managedQuery(data.getData(), FillUp.getProjection(), null, null, null); c.moveToFirst(); m_priceEdit.setText(c.getString(c.getColumnIndex(FillUp.PRICE))); m_amountEdit.setText(c.getString(c.getColumnIndex(FillUp.AMOUNT))); m_mileageEdit.setText(c.getString(c.getColumnIndex(FillUp.ODOMETER))); int checked = c.getInt(c.getColumnIndex(FillUp.PARTIAL)); m_partialCheckbox.setChecked(checked == 1); Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(c.getLong(c.getColumnIndex(FillUp.DATE))); m_year = cal.get(Calendar.YEAR); m_month = cal.get(Calendar.MONTH); m_day = cal.get(Calendar.DAY_OF_MONTH); updateDate(); m_commentEdit.setText(c.getString(c.getColumnIndex(FillUp.COMMENT))); int vehicleId = c.getInt(c.getColumnIndex(FillUp.VEHICLE_ID)); int position = 0; for (int i = 0; i < m_vehicleAdapter.getCount(); i++) { if (vehicleId == m_vehicleAdapter.getItemId(i)) { position = i; break; } } m_vehicleSpinner.setSelection(position); } public boolean onCreateOptionsMenu(Menu menu) { menu.add(Menu.NONE, MENU_DELETE, Menu.NONE, R.string.delete).setShortcut('1', 'd').setIcon(R.drawable.ic_menu_delete); HelpDialog.injectHelp(menu, 'h'); return super.onCreateOptionsMenu(menu); } public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case MENU_DELETE: showDialog(DELETE_DIALOG_ID); return true; case HelpDialog.MENU_HELP: HelpDialog.create(this, R.string.help_title_fillup_edit, R.string.help_fillup_edit); return true; } return super.onOptionsItemSelected(item); } }