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

Commit 6241b774 authored by Derek Jedral's avatar Derek Jedral
Browse files

Report correct userId in onUserMayRequestUnlock.

obtainMessage with two arguments will set the user id as the object, but
this value is retrieved as msg.arg1. We need to call obtainMessage with
three arguments instead to make the second argument the userId. Thir
third argument will be ignored by the receiver.

Test: atest TrustTests:UserUnlockRequestTest
Bug: b/278323473
Change-Id: Ie08c643f9fb5fbbe7f107a1f267074805ddc500b
parent cfbdee11
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1504,7 +1504,7 @@ public class TrustManagerService extends SystemService {
        @Override
        public void reportUserMayRequestUnlock(int userId) throws RemoteException {
            enforceReportPermission();
            mHandler.obtainMessage(MSG_USER_MAY_REQUEST_UNLOCK, userId).sendToTarget();
            mHandler.obtainMessage(MSG_USER_MAY_REQUEST_UNLOCK, userId, /*arg2=*/ 0).sendToTarget();
        }

        @Override
+10 −0
Original line number Diff line number Diff line
@@ -79,6 +79,16 @@ class UserUnlockRequestTest {
            .isEqualTo(oldCount + 1)
    }

    @Test
    fun reportUserMayRequestUnlock_differentUserId_doesNotPropagateToAgent() {
        val oldCount = trustAgentRule.agent.onUserMayRequestUnlockCallCount
        trustManager.reportUserMayRequestUnlock(userId + 1)
        await()

        assertThat(trustAgentRule.agent.onUserMayRequestUnlockCallCount)
            .isEqualTo(oldCount)
    }

    companion object {
        private const val TAG = "UserUnlockRequestTest"
        private fun await() = Thread.sleep(250)