package com.mcxiaoke.next.common;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
/**
* 简单的消息载体
* 注意:Object不能通过Parcelable传递
* User: mcxiaoke
* Date: 14-5-15
* Time: 18:21
*/
public class NextMessage implements Parcelable {
public static Creator<NextMessage> CREATOR = new Creator<NextMessage>() {
public NextMessage createFromParcel(Parcel source) {
return new NextMessage(source);
}
public NextMessage[] newArray(int size) {
return new NextMessage[size];
}
};
public int type;
public int arg1;
public long arg2;
public boolean flag;
public String text;
public Object obj;
private Bundle data;
public NextMessage() {
}
public NextMessage(int type) {
this.type = type;
}
public NextMessage(int type, int arg1) {
this.type = type;
this.arg1 = arg1;
}
public NextMessage(int type, int arg1, long arg2) {
this(type, arg1, arg2, false, null);
}
public NextMessage(int type, int arg1, long arg2, boolean flag) {
this(type, arg1, arg2, flag, null);
}
public NextMessage(int type, int arg1, long arg2, boolean flag, String text) {
this.type = type;
this.arg1 = arg1;
this.arg2 = arg2;
this.flag = flag;
this.text = text;
}
private NextMessage(Parcel in) {
this.type = in.readInt();
this.arg1 = in.readInt();
this.arg2 = in.readLong();
this.flag = in.readByte() != 0;
this.text = in.readString();
data = in.readBundle();
}
public static NextMessage create(int type) {
return new NextMessage(type);
}
public static NextMessage create(int type, int arg1) {
return new NextMessage(type, arg1);
}
public static NextMessage create(int type, int arg1, long arg2) {
return new NextMessage(type, arg1, arg2);
}
public static NextMessage create(int type, int arg1, long arg2, boolean flag) {
return new NextMessage(type, arg1, arg2, flag);
}
public static NextMessage create(int type, int arg1, long arg2, boolean flag, String text) {
return new NextMessage(type, arg1, arg2, flag, text);
}
public Bundle getData() {
if (data == null) {
data = new Bundle();
}
return data;
}
public void setData(final Bundle data) {
this.data = data;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("NextMessage{");
sb.append("type=").append(type);
sb.append(", arg1=").append(arg1);
sb.append(", arg2=").append(arg2);
sb.append(", flag=").append(flag);
sb.append(", text=").append(text);
sb.append(", obj=").append(obj);
sb.append(", data=").append(data);
sb.append('}');
return sb.toString();
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(this.type);
dest.writeInt(this.arg1);
dest.writeLong(this.arg2);
dest.writeByte(this.flag ? (byte) 1 : (byte) 0);
dest.writeString(this.text);
dest.writeBundle(this.data);
}
}