blob: d1588c02333e268fcc04da733d2210d0661cff79 [file] [log] [blame]
package com.xtremelabs.robolectric.shadows;
import com.xtremelabs.robolectric.Robolectric;
import com.xtremelabs.robolectric.internal.Implementation;
import com.xtremelabs.robolectric.internal.Implements;
import com.xtremelabs.robolectric.internal.RealObject;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@Implements(Message.class)
public class ShadowMessage {
private Bundle data;
private Handler target;
private long when;
@RealObject
private Message message;
@Implementation
public void setData(Bundle data) {
this.data = data;
}
@Implementation
public void setTarget(Handler target) {
this.target = target;
}
@Implementation
public Bundle peekData() {
return data;
}
@Implementation
public Bundle getData() {
if (data == null) {
data = new Bundle();
}
return data;
}
@Implementation
public Handler getTarget() {
return target;
}
@Implementation
public void copyFrom(Message m) {
message.arg1 = m.arg1;
message.arg2 = m.arg2;
message.obj = m.obj;
message.what = m.what;
message.setData(m.getData());
}
@Implementation
public static Message obtain() {
return new Message();
}
@Implementation
public static Message obtain(Handler h) {
Message m = new Message();
m.setTarget(h);
return m;
}
@Implementation
public static Message obtain(Handler h, int what) {
Message m = obtain(h);
m.what = what;
return m;
}
@Implementation
public static Message obtain(Handler h, int what, Object obj) {
Message m = obtain(h, what);
m.obj = obj;
return m;
}
@Implementation
public static Message obtain(Handler h, int what, int arg1, int arg2) {
Message m = obtain(h, what);
m.arg1 = arg1;
m.arg2 = arg2;
return m;
}
@Implementation
public static Message obtain(Handler h, int what, int arg1, int arg2, Object obj) {
Message m = obtain(h, what, arg1, arg2);
m.obj = obj;
return m;
}
@Implementation
public static Message obtain(Message msg) {
Message m = new Message();
m.copyFrom(msg);
m.setTarget(msg.getTarget());
return m;
}
@Implementation
public void sendToTarget() {
target.sendMessage(message);
}
@Implementation
public long getWhen() {
return when;
}
public void setWhen(long when) {
this.when = when;
}
}