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

Commit 4171cdf3 authored by Lorenzo Colitti's avatar Lorenzo Colitti Committed by Etan Cohen
Browse files

Give WakeupMessage the ability to transport an object as well. [DO NOT MERGE]

(cherry-pick of commit eab17da5)

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


    /**
    /**