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

Commit 3ec4eb6d authored by Joe Antonetti's avatar Joe Antonetti
Browse files

Fix Improper Device ID in toRemoteTask

toRemoteTask was assigning the given "ID" field to Task ID, not device ID. This change rectifies that, and adds a unit test to prevent this bug from sneaking in again.

Test: Added unit tests
Bug: 400970610
Flag: android.companion.enable_task_continuity
Change-Id: I658b22ee72f0ecbe218c72a3630dbf3f0796d4ed
parent 488afc1f
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -97,9 +97,10 @@ public class RemoteTaskInfo {
            .writeBytes(android.companion.RemoteTaskInfo.TASK_ICON, mTaskIcon);
    }

    public RemoteTask toRemoteTask(int id, String deviceName) {
        return new RemoteTask.Builder(id)
    public RemoteTask toRemoteTask(int deviceId, String deviceName) {
        return new RemoteTask.Builder(getId())
                .setLabel(mLabel)
                .setDeviceId(deviceId)
                .setLastUsedTimestampMillis((int) mLastUsedTimeMillis)
                .setSourceDeviceName(deviceName)
                .build();
+29 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import static com.google.common.truth.Truth.assertThat;
import static com.android.server.companion.datatransfer.continuity.TaskContinuityTestUtils.createRunningTaskInfo;

import android.app.TaskInfo;
import android.companion.datatransfer.continuity.RemoteTask;
import android.platform.test.annotations.Presubmit;
import android.testing.AndroidTestingRunner;
import org.junit.Before;
@@ -120,4 +121,32 @@ public class RemoteTaskInfoTest {
        assertThat(result.getLastUsedTimeMillis())
            .isEqualTo(expectedLastActiveTime);
    }

    @Test
    public void testToRemoteTask_works() {
        // Setup the RemoteTaskInfo
        int expectedId = 1;
        String expectedLabel = "test";
        long expectedLastActiveTime = 100;
        String expectedDeviceName = "test_device";
        int expectedDeviceId = 2;
        TaskInfo taskInfo = createRunningTaskInfo(
            expectedId,
            expectedLabel,
            expectedLastActiveTime);
        RemoteTaskInfo remoteTaskInfo = new RemoteTaskInfo(taskInfo);

        // Convert to RemoteTask
        RemoteTask remoteTask = remoteTaskInfo.toRemoteTask(
            expectedDeviceId,
            expectedDeviceName);

        // Verify the fields
        assertThat(remoteTask.getId()).isEqualTo(expectedId);
        assertThat(remoteTask.getLabel()).isEqualTo(expectedLabel);
        assertThat(remoteTask.getLastUsedTimestampMillis())
            .isEqualTo(expectedLastActiveTime);
        assertThat(remoteTask.getDeviceId()).isEqualTo(expectedDeviceId);
        assertThat(remoteTask.getSourceDeviceName()).isEqualTo(expectedDeviceName);
    }
}
 No newline at end of file