package eoc.studio.voicecard.card; import java.lang.reflect.Field; import android.R.integer; import android.graphics.Color; import android.net.Uri; import android.os.Parcel; import android.os.Parcelable; import android.util.Log; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; public class CardDraft implements Parcelable { private static final String TAG = "CardDraft"; public static final int TEXT_SIZE_TYPE_SMALL = 0; public static final int TEXT_SIZE_TYPE_NORMAL = 1; public static final int TEXT_SIZE_TYPE_LARGE = 2; public static final int DEFAULT_TEXT_SIZE_TYPE = TEXT_SIZE_TYPE_NORMAL; public static final int DEFAULT_TEXT_COLOR = Color.BLACK; public static final int DEFAULT_CARD_ID = 0; @Expose @SerializedName("cardId") private int cardId = DEFAULT_CARD_ID; @Expose @SerializedName("soundPath") private String soundPath; @Expose @SerializedName("imagePath") private String imagePath; @Expose @SerializedName("message") private String message; @Expose @SerializedName("messageTextColor") private int messageTextColor = DEFAULT_TEXT_COLOR; @Expose @SerializedName("messageTextSizeType") private int messageTextSizeType = DEFAULT_TEXT_SIZE_TYPE; @Expose @SerializedName("signHandwritingPath") private String signHandwritingPath; @Expose @SerializedName("signPositionInfoPath") private String signPositionInfoPath; @Expose @SerializedName("signDraftImagePath") private String signDraftImagePath; private Uri soundUri = null; @Expose @SerializedName("soundDuration") private String soundDuration; private Uri imageUri = null; private Uri signHandwritingUri = null; private Uri signPositionInfoUri = null; private Uri signDraftImageUri = null; public CardDraft() { } public CardDraft(int cardId, Uri sound, String soundDuration,Uri image, String message, int messageTextColor, int messageTextSizeType, Uri userSignHandwritingUri, Uri userSignPositionInfoUri, Uri userSignDraftImageUri) { super(); this.cardId = cardId; this.message = message; Log.d(TAG, "messageTextColor: "+messageTextColor); this.messageTextColor = (messageTextColor != 0) ? messageTextColor : DEFAULT_TEXT_COLOR; this.messageTextSizeType = (messageTextSizeType != 0) ? messageTextSizeType : DEFAULT_TEXT_SIZE_TYPE; this.soundUri = sound; this.soundDuration = soundDuration; this.imageUri = image; this.signHandwritingUri = userSignHandwritingUri; this.signPositionInfoUri = userSignPositionInfoUri; this.signDraftImageUri = userSignDraftImageUri; if (this.soundUri != null) soundPath = this.soundUri.getPath(); if (this.imageUri != null) imagePath = this.imageUri.getPath(); if (this.signHandwritingUri != null) signHandwritingPath = this.signHandwritingUri.getPath(); if (this.signPositionInfoUri != null) signPositionInfoPath = this.signPositionInfoUri.getPath(); if (this.signDraftImageUri != null) signDraftImagePath = this.signDraftImageUri.getPath(); } public CardDraft(Parcel cardDraft) { ClassLoader uriClazzLoader = Uri.class.getClassLoader(); this.cardId = cardDraft.readInt(); this.soundUri = cardDraft.readParcelable(uriClazzLoader); this.soundDuration = cardDraft.readString(); this.imageUri = cardDraft.readParcelable(uriClazzLoader); this.message = cardDraft.readString(); this.messageTextColor = cardDraft.readInt(); this.messageTextSizeType = cardDraft.readInt(); this.signHandwritingUri = cardDraft.readParcelable(uriClazzLoader); this.signPositionInfoUri = cardDraft.readParcelable(uriClazzLoader); this.signDraftImageUri = cardDraft.readParcelable(uriClazzLoader); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel out, int flags) { out.writeInt(this.cardId); out.writeParcelable(this.soundUri, flags); out.writeString(this.soundDuration); out.writeParcelable(this.imageUri, flags); out.writeString(this.message); out.writeInt(this.messageTextColor); out.writeInt(this.messageTextSizeType); out.writeParcelable(this.signHandwritingUri, flags); out.writeParcelable(this.signPositionInfoUri, flags); out.writeParcelable(this.signDraftImageUri, flags); } public static final Parcelable.Creator<CardDraft> CREATOR = new Parcelable.Creator<CardDraft>() { public CardDraft createFromParcel(Parcel in) { return new CardDraft(in); } public CardDraft[] newArray(int size) { return new CardDraft[size]; } }; @Override public String toString() { StringBuilder result = new StringBuilder(); String newLine = System.getProperty("line.separator"); result.append(this.getClass().getName()); result.append(" Object {"); result.append(newLine); // determine fields declared in this class only (no fields of // superclass) Field[] fields = this.getClass().getDeclaredFields(); // print field names paired with their values for (Field field : fields) { result.append(" "); try { result.append(field.getName()); result.append(": "); // requires access to private field: result.append(field.get(this)); } catch (IllegalAccessException ex) { System.out.println(ex); } result.append(newLine); } result.append("}"); return result.toString(); } public String getSoundPath() { return soundPath; } public void setSoundPath(String soundPath) { this.soundPath = soundPath; } public String getImagePath() { return imagePath; } public void setImagePath(String imagePath) { this.imagePath = imagePath; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public int getMessageTextColor() { return messageTextColor; } public void setMessageTextColor(int messageTextColor) { this.messageTextColor = messageTextColor; } public int getMessageTextSizeType() { return messageTextSizeType; } public void setMessageTextSizeType(int messageTextSizeType) { this.messageTextSizeType = messageTextSizeType; } public String getSignHandwritingPath() { return signHandwritingPath; } public void setSignHandwritingPath(String signHandwritingPath) { this.signHandwritingPath = signHandwritingPath; } public String getSignPositionInfoPath() { return signPositionInfoPath; } public void setSignPositionInfoPath(String signPositionInfoPath) { this.signPositionInfoPath = signPositionInfoPath; } public String getSignDraftImagePath() { return signDraftImagePath; } public void setSignDraftImagePath(String signDraftImagePath) { this.signDraftImagePath = signDraftImagePath; } public Uri getSoundUri() { return soundUri; } public void setSoundUri(Uri soundUri) { this.soundUri = soundUri; } public Uri getImageUri() { return imageUri; } public void setImageUri(Uri imageUri) { this.imageUri = imageUri; } public Uri getSignHandwritingUri() { return signHandwritingUri; } public void setSignHandwritingUri(Uri signHandwritingUri) { this.signHandwritingUri = signHandwritingUri; } public Uri getSignPositionInfoUri() { return signPositionInfoUri; } public void setSignPositionInfoUri(Uri signPositionInfoUri) { this.signPositionInfoUri = signPositionInfoUri; } public Uri getSignDraftImageUri() { return signDraftImageUri; } public void setSignDraftImageUri(Uri signDraftImageUri) { this.signDraftImageUri = signDraftImageUri; } public int getCardId() { return cardId; } public void setCardId(int cardId) { this.cardId = cardId; } public String getSoundDuration() { return soundDuration; } public void setSoundDuration(String soundDuration) { this.soundDuration = soundDuration; } }