package co.mwater.clientapp.ui;
import android.app.AlertDialog;
import android.content.ContentValues;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.net.Uri;
import android.widget.Toast;
import co.mwater.clientapp.R;
import co.mwater.clientapp.db.MWaterContentProvider;
import co.mwater.clientapp.db.MWaterServer;
import co.mwater.clientapp.db.OtherCodes;
import co.mwater.clientapp.db.SamplesTable;
import co.mwater.clientapp.db.TestsTable;
import co.mwater.clientapp.db.testresults.TestType;
import co.mwater.clientapp.ui.petrifilm.PetrifilmTestDetailActivity;
/**
* Holds logic and UI to create a new test
*
* @author Clayton
*
*/
public class TestCreator implements OnClickListener {
Context context;
Uri sampleUri;
public TestCreator(Context context, Uri sampleUri) {
this.context = context;
this.sampleUri = sampleUri;
}
public void create() {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Select Test Type");
builder.setItems(R.array.test_types, this).show();
}
public void onClick(DialogInterface dialog, int which) {
TestType testType;
switch (which) {
case 0:
testType = TestType.PETRIFILM;
break;
case 1:
testType = TestType.TEN_ML_COLILERT;
break;
case 2:
testType = TestType.HUNDRED_ML_ECOLI;
break;
case 4:
testType = TestType.CHLORINE;
break;
default:
Toast.makeText(context, "To do", Toast.LENGTH_SHORT).show();
return;
}
String sampleUid = null;
if (sampleUri != null)
sampleUid = MWaterContentProvider.getSingleRow(context, sampleUri).getAsString(SamplesTable.COLUMN_UID);
ContentValues values = new ContentValues();
values.put(TestsTable.COLUMN_SAMPLE, sampleUid);
values.put(TestsTable.COLUMN_CODE, OtherCodes.getNewTestCode(context));
values.put(TestsTable.COLUMN_TEST_TYPE, testType.getValue());
values.put(TestsTable.COLUMN_TEST_VERSION, 1);
values.put(TestsTable.COLUMN_STARTED_ON, System.currentTimeMillis() / 1000);
values.put(TestsTable.COLUMN_CREATED_BY, MWaterServer.getUsername(context));
Uri testUri = context.getContentResolver().insert(MWaterContentProvider.TESTS_URI, values);
Intent intent = new Intent(context, TestActivities.getDetailActivity(testType));
intent.putExtra("uri", testUri);
context.startActivity(intent);
}
}