package com.realtrackandroid.models.activities;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.os.Parcel;
import android.os.Parcelable;
/**
* *************************************************************************************************
* ******************* Models the representation of a participant Implements Parcelable because
* we're going to be passing Participant objects back and forth between activities.
* *****************
* *********************************************************************************
* ******************
*/
public class Participant implements Parcelable {
public static final int MALE = 0;
public static final int FEMALE = 1;
// Instance properties
private int id; // used to modify an existing Activity. Set in ActivitiesDAO
private int participationid;
private String name;
private String phoneNumber;
private String village;
private int age;
private int gender;
private String signaturePath;
private Bitmap signatureBitmap;
// Database table
public static final String PARTICIPANT_TABLE = "participants";
public static final String COLUMN_ID = "_id";
public static final String COLUMN_PARTICIPATIONID = "_participationid";
public static final String COLUMN_UPDATED = "updated"; // when this record was last modified
public static final String COLUMN_NAME = "name"; // required
public static final String COLUMN_PHONENUMBER = "phonenumber"; // optional
public static final String COLUMN_VILLAGE = "village"; // optional
public static final String COLUMN_AGE = "age"; // required
public static final String COLUMN_GENDER = "sex"; // required
public static final String COLUMN_SIGNATUREPATH = "signaturepath"; // required
// Database creation SQL statement
private static final String DATABASE_CREATE = "create table if not exists " + PARTICIPANT_TABLE
+ "(" + COLUMN_ID + " integer primary key autoincrement, " + COLUMN_UPDATED
+ " integer not null default (strftime('%s','now')), " + COLUMN_NAME
+ " string not null, " + COLUMN_PHONENUMBER + " integer, " + COLUMN_VILLAGE + " string, "
+ COLUMN_AGE + " integer not null, " + COLUMN_GENDER + " integer not null, "
+ COLUMN_SIGNATUREPATH + " string, " + COLUMN_PARTICIPATIONID
+ " integer not null references " + Participation.PARTICIPATION_TABLE + " ("
+ Participation.COLUMN_ID + ") ON DELETE CASCADE" + ");";
// used to create the table
public static void onCreate(SQLiteDatabase database) {
database.execSQL(DATABASE_CREATE);
}
// used to upgrade the table
public static void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
database.execSQL("drop table if exists " + PARTICIPANT_TABLE);
onCreate(database);
}
// Getters and Setters follow
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getParticipationId() {
return participationid;
}
public void setParticipationId(int participationid) {
this.participationid = participationid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getVillage() {
return village;
}
public void setVillage(String village) {
this.village = village;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getGender() {
return gender;
}
public void setGender(int gender) {
this.gender = gender;
}
public String getSignaturePath() {
return signaturePath;
}
public void setSignaturePath(String signaturePath) {
this.signaturePath = signaturePath;
}
public Bitmap getSignatureBitmap() {
return signatureBitmap;
}
public void setSignatureBitmap(Bitmap signatureBitmap) {
this.signatureBitmap = signatureBitmap;
}
/*
* Methods for Parcelable follow
*/
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int flags) {
out.writeString(name);
out.writeString(phoneNumber);
out.writeString(village);
out.writeInt(age);
out.writeInt(gender);
out.writeInt(id);
out.writeString(signaturePath);
out.writeParcelable(signatureBitmap, 0);
}
public static final Parcelable.Creator<Participant> CREATOR = new Parcelable.Creator<Participant>() {
public Participant createFromParcel(Parcel parcel) {
return new Participant(parcel);
}
public Participant[] newArray(int size) {
return new Participant[size];
}
};
public Participant() {
}
private Participant(Parcel parcel) {
// should be the SAME order as writeToParcel!!
name = parcel.readString();
phoneNumber = parcel.readString();
village = parcel.readString();
age = parcel.readInt();
gender = parcel.readInt();
id = parcel.readInt();
signaturePath = parcel.readString();
signatureBitmap = parcel.readParcelable(Bitmap.class.getClassLoader());
}
}