Give WakeupMessage the ability to transport an object as well.
am: 302c37008f
Change-Id: I06152851a392de80b351f2eb332e31363d916b1d
This commit is contained in:
@@ -45,24 +45,32 @@ public class WakeupMessage implements AlarmManager.OnAlarmListener {
|
|||||||
protected final String mCmdName;
|
protected final String mCmdName;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
protected final int mCmd, mArg1, mArg2;
|
protected final int mCmd, mArg1, mArg2;
|
||||||
|
@VisibleForTesting
|
||||||
|
protected final Object mObj;
|
||||||
private boolean mScheduled;
|
private boolean mScheduled;
|
||||||
|
|
||||||
public WakeupMessage(Context context, Handler handler,
|
public WakeupMessage(Context context, Handler handler,
|
||||||
String cmdName, int cmd, int arg1, int arg2) {
|
String cmdName, int cmd, int arg1, int arg2, Object obj) {
|
||||||
mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
|
mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
|
||||||
mHandler = handler;
|
mHandler = handler;
|
||||||
mCmdName = cmdName;
|
mCmdName = cmdName;
|
||||||
mCmd = cmd;
|
mCmd = cmd;
|
||||||
mArg1 = arg1;
|
mArg1 = arg1;
|
||||||
mArg2 = arg2;
|
mArg2 = arg2;
|
||||||
|
mObj = obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
public WakeupMessage(Context context, Handler handler, String cmdName, int cmd, int arg1) {
|
public WakeupMessage(Context context, Handler handler, String cmdName, int cmd, int arg1) {
|
||||||
this(context, handler, cmdName, cmd, arg1, 0);
|
this(context, handler, cmdName, cmd, arg1, 0, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public WakeupMessage(Context context, Handler handler,
|
||||||
|
String cmdName, int cmd, int arg1, int arg2) {
|
||||||
|
this(context, handler, cmdName, cmd, arg1, arg2, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public WakeupMessage(Context context, Handler handler, String cmdName, int cmd) {
|
public WakeupMessage(Context context, Handler handler, String cmdName, int cmd) {
|
||||||
this(context, handler, cmdName, cmd, 0, 0);
|
this(context, handler, cmdName, cmd, 0, 0, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -99,7 +107,7 @@ public class WakeupMessage implements AlarmManager.OnAlarmListener {
|
|||||||
mScheduled = false;
|
mScheduled = false;
|
||||||
}
|
}
|
||||||
if (stillScheduled) {
|
if (stillScheduled) {
|
||||||
Message msg = mHandler.obtainMessage(mCmd, mArg1, mArg2);
|
Message msg = mHandler.obtainMessage(mCmd, mArg1, mArg2, mObj);
|
||||||
mHandler.handleMessage(msg);
|
mHandler.handleMessage(msg);
|
||||||
msg.recycle();
|
msg.recycle();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ public class WakeupMessageTest {
|
|||||||
private static final int TEST_CMD = 18;
|
private static final int TEST_CMD = 18;
|
||||||
private static final int TEST_ARG1 = 33;
|
private static final int TEST_ARG1 = 33;
|
||||||
private static final int TEST_ARG2 = 182;
|
private static final int TEST_ARG2 = 182;
|
||||||
|
private static final Object TEST_OBJ = "hello";
|
||||||
|
|
||||||
@Mock AlarmManager mAlarmManager;
|
@Mock AlarmManager mAlarmManager;
|
||||||
WakeupMessage mMessage;
|
WakeupMessage mMessage;
|
||||||
@@ -92,7 +93,7 @@ public class WakeupMessageTest {
|
|||||||
mListenerCaptor.capture(), any(Handler.class));
|
mListenerCaptor.capture(), any(Handler.class));
|
||||||
|
|
||||||
mMessage = new WakeupMessage(context, mHandler, TEST_CMD_NAME, TEST_CMD, TEST_ARG1,
|
mMessage = new WakeupMessage(context, mHandler, TEST_CMD_NAME, TEST_CMD, TEST_ARG1,
|
||||||
TEST_ARG2);
|
TEST_ARG2, TEST_OBJ);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -114,6 +115,7 @@ public class WakeupMessageTest {
|
|||||||
assertEquals("what", TEST_CMD, mHandler.getLastMessage().what);
|
assertEquals("what", TEST_CMD, mHandler.getLastMessage().what);
|
||||||
assertEquals("arg1", TEST_ARG1, mHandler.getLastMessage().arg1);
|
assertEquals("arg1", TEST_ARG1, mHandler.getLastMessage().arg1);
|
||||||
assertEquals("arg2", TEST_ARG2, mHandler.getLastMessage().arg2);
|
assertEquals("arg2", TEST_ARG2, mHandler.getLastMessage().arg2);
|
||||||
|
assertEquals("obj", TEST_OBJ, mHandler.getLastMessage().obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user