Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 302c3700 authored by Lorenzo Colitti's avatar Lorenzo Colitti Committed by Etan Cohen
Browse files

Give WakeupMessage the ability to transport an object as well.

(cherry-pick of commit eab17da5)
(cherry-pick of commit 4171cdf3)

Bug: 23113288
Change-Id: Ic98e3bcb3ea8b0b28a309bd647fb4178311c46a3
parent 305ea28a
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -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();
        }
+3 −1
Original line number Diff line number Diff line
@@ -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);
    }

    /**