package com.mcxiaoke.apptoolkit.task;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
/**
* Project: apptoolkit
* Package: com.mcxiaoke.apptoolkit.task
* User: mcxiaoke
* Date: 13-6-16
* Time: 下午1:58
*/
public final class TaskMessage implements Parcelable {
public int id;
public int type;
public int arg1;
public int arg2;
public boolean flag;
public String message;
public Bundle extras;
public Object object;
public TaskMessage() {
}
public TaskMessage(Parcel in) {
this.id = in.readInt();
this.type = in.readInt();
this.arg1 = in.readInt();
this.arg2 = in.readInt();
this.flag = (in.readInt() == 1);
this.message = in.readString();
this.extras = in.readBundle();
if (in.readInt() != 0) {
object = in.readParcelable(getClass().getClassLoader());
}
}
public TaskMessage(int type, boolean flag) {
this.type = type;
this.flag = flag;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("AsyncTaskParam{");
sb.append(", id=").append(id);
sb.append(", type=").append(type);
sb.append(", flag=").append(flag);
sb.append(", arg1=").append(arg1);
sb.append(", arg2=").append(arg2);
sb.append(", message='").append(message).append('\'');
sb.append('}');
return sb.toString();
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(this.id);
dest.writeInt(this.type);
dest.writeInt(this.arg1);
dest.writeInt(this.arg2);
dest.writeInt(this.flag ? 1 : 0);
dest.writeString(this.message);
dest.writeBundle(this.extras);
if (object != null) {
try {
Parcelable p = (Parcelable) object;
dest.writeInt(1);
dest.writeParcelable(p, flags);
} catch (ClassCastException e) {
throw new RuntimeException(
"Can't marshal non-Parcelable objects across processes.");
}
} else {
dest.writeInt(0);
}
}
public static final Creator<TaskMessage> CREATOR = new Creator<TaskMessage>() {
@Override
public TaskMessage createFromParcel(Parcel source) {
return new TaskMessage(source);
}
@Override
public TaskMessage[] newArray(int size) {
return new TaskMessage[size];
}
};
}