Give WakeupMessage the ability to transport an object as well.

(cherry-pick of commit eab17da588)
(cherry-pick of commit 4171cdf303)

Bug: 23113288
Change-Id: Ic98e3bcb3ea8b0b28a309bd647fb4178311c46a3
This commit is contained in:
Lorenzo Colitti
2016-06-07 16:27:10 +09:00
committed by Etan Cohen
parent 305ea28a43
commit 302c37008f
2 changed files with 15 additions and 5 deletions

View File

@@ -45,24 +45,32 @@ public class WakeupMessage implements AlarmManager.OnAlarmListener {
protected final String mCmdName;
@VisibleForTesting
protected final int mCmd, mArg1, mArg2;
@VisibleForTesting
protected final Object mObj;
private boolean mScheduled;
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);
mHandler = handler;
mCmdName = cmdName;
mCmd = cmd;
mArg1 = arg1;
mArg2 = arg2;
mObj = obj;
}
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) {
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;
}
if (stillScheduled) {
Message msg = mHandler.obtainMessage(mCmd, mArg1, mArg2);
Message msg = mHandler.obtainMessage(mCmd, mArg1, mArg2, mObj);
mHandler.handleMessage(msg);
msg.recycle();
}

View File

@@ -45,6 +45,7 @@ public class WakeupMessageTest {
private static final int TEST_CMD = 18;
private static final int TEST_ARG1 = 33;
private static final int TEST_ARG2 = 182;
private static final Object TEST_OBJ = "hello";
@Mock AlarmManager mAlarmManager;
WakeupMessage mMessage;
@@ -92,7 +93,7 @@ public class WakeupMessageTest {
mListenerCaptor.capture(), any(Handler.class));
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("arg1", TEST_ARG1, mHandler.getLastMessage().arg1);
assertEquals("arg2", TEST_ARG2, mHandler.getLastMessage().arg2);
assertEquals("obj", TEST_OBJ, mHandler.getLastMessage().obj);
}
/**