package com.realtrackandroid.views.participationsactive.signinsheet;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.view.MenuItem;
import com.realtrackandroid.R;
import com.realtrackandroid.common.StyledButton;
import com.realtrackandroid.models.activities.Participant;
public class SignInSheetActivity extends SherlockFragmentActivity {
private StyledButton submitButton, signButton;
private Intent intent;
private EditText nameText, phoneText, villageText, ageText;
private TextView signInMessage;
private RadioButton maleRadioButton;
private Bitmap signatureBitmap;
private View spacer;
SignatureDialog signatureDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signinsheet);
intent = getIntent();
}
@Override
public void onResume() {
super.onResume();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
String signInMsg = intent.getExtras().getString("activitytitle");
if (intent.hasExtra("participationdate")) { // we need to check because there's a chance this is
// not present (from RQPA if user does not enter
// date)
signInMsg = signInMsg + " " + intent.getExtras().getString("participationdate");
}
signInMessage = (TextView) findViewById(R.id.pleasesignin);
signInMessage.setText(signInMsg);
nameText = (EditText) findViewById(R.id.nameEditText);
phoneText = (EditText) findViewById(R.id.phoneEditText);
villageText = (EditText) findViewById(R.id.villageEditText);
ageText = (EditText) findViewById(R.id.ageEditText);
submitButton = (StyledButton) findViewById(R.id.submitbutton);
signButton = (StyledButton) findViewById(R.id.signbutton);
maleRadioButton = (RadioButton) findViewById(R.id.maleRadioButton);
spacer = findViewById(R.id.spacer);
makeButtonsVisibleIfSignatureAvailable();
signButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (ageText.getText().length() == 0 || nameText.getText().length() == 0) {
Toast.makeText(getApplicationContext(), R.string.emptyfieldserrormessage,
Toast.LENGTH_SHORT).show();
return;
}
signatureDialog = new SignatureDialog();
signatureDialog.setStyle(DialogFragment.STYLE_NO_TITLE, 0);
signatureDialog.show(getSupportFragmentManager(), "signaturedialog");
}
});
// go back to SignInSheetLandingActivity
// send back the participant just entered
submitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Participant p = new Participant();
p.setId(-1); // the -1 indicates this is a participant NOT already in the database. Comes in
// handy if we're
// editing an existing participation in RecordOrEditParticipationActivity
// it plays no role in RecordQuickParticipationActivity because the only use case for
// that activity is adding a new participation
if (nameText.getText().length() == 0) {
Toast.makeText(getApplicationContext(), R.string.emptyfieldserrormessage,
Toast.LENGTH_SHORT).show();
return;
}
else
p.setName(nameText.getText().toString());
p.setPhoneNumber(phoneText.getText().toString());
p.setVillage(villageText.getText().toString());
if (ageText.getText().length() == 0) {
Toast.makeText(getApplicationContext(), R.string.emptyfieldserrormessage,
Toast.LENGTH_SHORT).show();
return;
}
else
p.setAge(Integer.parseInt(ageText.getText().toString()));
if (maleRadioButton.isChecked())
p.setGender(Participant.MALE);
else
p.setGender(Participant.FEMALE);
p.setSignatureBitmap(signatureBitmap);
Bundle resultBundle = new Bundle();
resultBundle.putParcelable("participant", p);
intent.putExtras(resultBundle);
setResult(RESULT_OK, intent);
finish();
}
});
}
@Override
public void onBackPressed() {
super.onBackPressed();
overridePendingTransition(R.anim.animation_slideinleft, R.anim.animation_slideoutright);
finish();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// provide a back button on the actionbar
finish();
break;
default:
return super.onOptionsItemSelected(item);
}
return true;
}
/**
* Callback for SignatureDialog
*
* @param signatureBitmap
*/
public void setScaledBitmap(Bitmap signatureBitmap) {
this.signatureBitmap = signatureBitmap;
}
void makeButtonsVisibleIfSignatureAvailable() {
if (signatureBitmap != null) {
signButton.setText(getResources().getString(R.string.signagain));
submitButton.setVisibility(View.VISIBLE);
spacer.setVisibility(View.VISIBLE);
}
}
@Override
protected void onSaveInstanceState(Bundle out) {
super.onSaveInstanceState(out);
if (signatureBitmap != null)
out.putParcelable("signatureBitmap", signatureBitmap);
}
@Override
protected void onRestoreInstanceState(Bundle in) {
super.onRestoreInstanceState(in);
Bitmap savedSignatureBitmap = (Bitmap) in.getParcelable("signatureBitmap");
if (savedSignatureBitmap != null)
setScaledBitmap(savedSignatureBitmap);
}
}