package com.evancharlton.mileage; import com.evancharlton.mileage.dao.Dao; import com.evancharlton.mileage.dao.ServiceIntervalTemplate; import com.evancharlton.mileage.exceptions.InvalidFieldException; import com.evancharlton.mileage.provider.FillUpsProvider; import com.evancharlton.mileage.provider.tables.ServiceIntervalTemplatesTable; import com.evancharlton.mileage.views.CursorSpinner; import com.evancharlton.mileage.views.DateDelta; import com.evancharlton.mileage.views.DistanceDelta; import android.content.ContentUris; import android.content.ContentValues; import android.net.Uri; import android.os.Bundle; import android.widget.EditText; public class ServiceIntervalTemplateActivity extends BaseFormActivity { protected final ServiceIntervalTemplate mTemplate = new ServiceIntervalTemplate( new ContentValues()); protected EditText mTitle; protected EditText mDescription; protected DistanceDelta mDistance; protected DateDelta mDuration; protected CursorSpinner mVehicleTypes; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState, R.layout.service_interval_template); } @Override protected Dao getDao() { return mTemplate; } @Override protected String[] getProjectionArray() { return ServiceIntervalTemplatesTable.PROJECTION; } @Override protected Uri getUri(long id) { return ContentUris.withAppendedId( Uri.withAppendedPath(FillUpsProvider.BASE_URI, ServiceIntervalTemplatesTable.URI), id); } @Override protected void initUI() { mTitle = (EditText) findViewById(R.id.title); mDescription = (EditText) findViewById(R.id.description); mDistance = (DistanceDelta) findViewById(R.id.distance); mDuration = (DateDelta) findViewById(R.id.duration); mVehicleTypes = (CursorSpinner) findViewById(R.id.types); } @Override protected void populateUI() { mTitle.setText(mTemplate.getTitle()); mDescription.setText(mTemplate.getDescription()); mDistance.setDelta(mTemplate.getDistance()); mDuration.setDelta(mTemplate.getDuration()); } @Override protected void setFields() throws InvalidFieldException { String title = mTitle.getText().toString(); if (title.length() == 0) { throw new InvalidFieldException(mTitle, R.string.error_invalid_interval_title); } mTemplate.setTitle(title); mTemplate.setDescription(mDescription.getText().toString()); long distance = mDistance.getDelta(); if (distance <= 0) { throw new InvalidFieldException(mDistance.getEditField(), R.string.error_invalid_interval_distance); } mTemplate.setDistance(distance); long duration = mDuration.getDelta(); if (duration <= 0) { throw new InvalidFieldException(mDuration.getEditField(), R.string.error_invalid_interval_duration); } mTemplate.setDuration(mDuration.getDelta()); mTemplate.setVehicleTypeId(mVehicleTypes.getSelectedItemId()); } @Override protected int getCreateString() { return R.string.add_service_interval_template; } }