package co.mwater.clientapp.ui;
import java.text.DateFormat;
import java.util.Date;
import android.app.AlertDialog;
import android.content.ContentValues;
import android.content.DialogInterface;
import android.os.Bundle;
import android.widget.Spinner;
import co.mwater.clientapp.R;
import co.mwater.clientapp.db.MWaterContentProvider;
import co.mwater.clientapp.db.SourceNotesTable;
import co.mwater.clientapp.db.SourcesTable;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.view.MenuItem.OnMenuItemClickListener;
public class SourceNoteDetailActivity extends DetailActivity {
private static final String TAG = SourceNoteDetailActivity.class.getSimpleName();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.source_note_detail_activity);
}
@Override
protected void displayData() {
getSupportActionBar().setTitle("Source Note");
Long created_on = rowValues.getAsLong(SourceNotesTable.COLUMN_CREATED_ON);
if (created_on != null) {
setControlText(R.id.created_on, DateFormat.getDateInstance().format(new Date(created_on * 1000)));
}
else {
setControlText(R.id.created_on, "");
}
setControlText(R.id.note, rowValues.getAsString(SourceNotesTable.COLUMN_NOTE));
setControlTextEditable(R.id.note, isCreatedByMe());
// Get source
String sourceUid = rowValues.getAsString(SourceNotesTable.COLUMN_SOURCE);
ContentValues source = null;
if (sourceUid != null)
source = MWaterContentProvider.getSingleRow(this, MWaterContentProvider.SOURCES_URI, sourceUid);
setControlText(R.id.source_name, source.getAsString(SourcesTable.COLUMN_NAME));
setControlText(R.id.source_code, source.getAsString(SourcesTable.COLUMN_CODE));
}
@Override
public void onPause() {
super.onPause();
if (rowValues != null) {
ContentValues values = new ContentValues();
// Save note
String curNote = getControlText(R.id.note);
if (curNote.length() == 0)
curNote = null;
if (curNote != rowValues.getAsString(SourceNotesTable.COLUMN_NOTE)) {
values.put(SourceNotesTable.COLUMN_NOTE, curNote);
}
// Save operational
Boolean curOperational;
Spinner operational = (Spinner)findViewById(R.id.operational);
if (operational.getSelectedItemPosition() == 0 || operational.getSelectedItemPosition() == Spinner.INVALID_POSITION) {
curOperational = null;
}
else if (operational.getSelectedItemPosition() == 1)
curOperational = true;
else
curOperational = false;
if (curOperational != rowValues.getAsBoolean(SourceNotesTable.COLUMN_OPERATIONAL)) {
values.put(SourceNotesTable.COLUMN_OPERATIONAL, curOperational);
}
if (values.size()>0)
getContentResolver().update(uri, values, null, null);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.source_note_detail_menu, menu);
// Add listeners
menu.findItem(R.id.menu_done).setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
finish();
return true;
}
});
menu.findItem(R.id.menu_delete).setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
deleteSourceNote();
return true;
}
});
menu.findItem(R.id.menu_delete).setEnabled(isCreatedByMe());
return super.onCreateOptionsMenu(menu);
}
void deleteSourceNote() {
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
getContentResolver().delete(uri, null, null);
finish();
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Permanently delete note?").setPositiveButton("Yes", dialogClickListener).setNegativeButton("No", null).show();
}
}