Loading services/companion/java/com/android/server/companion/datatransfer/continuity/TaskContinuityManagerService.java +6 −0 Original line number Original line Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.content.Context; import android.util.Slog; import android.util.Slog; import com.android.server.companion.datatransfer.continuity.messages.ContinuityDeviceConnected; import com.android.server.companion.datatransfer.continuity.messages.ContinuityDeviceConnected; import com.android.server.companion.datatransfer.continuity.messages.RemoteTaskAddedMessage; import com.android.server.companion.datatransfer.continuity.messages.RemoteTaskRemovedMessage; import com.android.server.companion.datatransfer.continuity.messages.RemoteTaskRemovedMessage; import com.android.server.companion.datatransfer.continuity.messages.TaskContinuityMessage; import com.android.server.companion.datatransfer.continuity.messages.TaskContinuityMessage; import com.android.server.companion.datatransfer.continuity.tasks.RemoteTaskStore; import com.android.server.companion.datatransfer.continuity.tasks.RemoteTaskStore; Loading Loading @@ -108,6 +109,11 @@ public final class TaskContinuityManagerService extends SystemService { associationId, associationId, continuityDeviceConnected.getRemoteTasks()); continuityDeviceConnected.getRemoteTasks()); break; break; case RemoteTaskAddedMessage remoteTaskAddedMessage: mRemoteTaskStore.addTask( associationId, remoteTaskAddedMessage.getTask()); break; case RemoteTaskRemovedMessage remoteTaskRemovedMessage: case RemoteTaskRemovedMessage remoteTaskRemovedMessage: mRemoteTaskStore.removeTask( mRemoteTaskStore.removeTask( associationId, associationId, Loading services/companion/java/com/android/server/companion/datatransfer/continuity/tasks/RemoteTaskStore.java +15 −0 Original line number Original line Diff line number Diff line Loading @@ -66,6 +66,21 @@ public class RemoteTaskStore implements ConnectedAssociationStore.Observer { } } } } public void addTask(int associationId, RemoteTaskInfo taskInfo) { synchronized (mRemoteDeviceTaskLists) { if (!mRemoteDeviceTaskLists.containsKey(associationId)) { Slog.e( TAG, "addTask failure for association: " + associationId + " - not connected."); return; } Slog.v(TAG, "Adding task: " + taskInfo.getId() + " for association: " + associationId); mRemoteDeviceTaskLists.get(associationId).addTask(taskInfo); } } public void removeTask(int associationId, int taskId) { public void removeTask(int associationId, int taskId) { synchronized (mRemoteDeviceTaskLists) { synchronized (mRemoteDeviceTaskLists) { if (!mRemoteDeviceTaskLists.containsKey(associationId)) { if (!mRemoteDeviceTaskLists.containsKey(associationId)) { Loading services/tests/servicestests/src/com/android/server/companion/datatransfer/continuity/tasks/RemoteTaskStoreTest.java +29 −0 Original line number Original line Diff line number Diff line Loading @@ -141,6 +141,35 @@ public class RemoteTaskStoreTest { assertThat(taskStore.getMostRecentTasks()).isEmpty(); assertThat(taskStore.getMostRecentTasks()).isEmpty(); } } @Test public void addTask_addsTaskToAssociation() { // Create a fake association info, and have connected association store return it. AssociationInfo associationInfo = createAssociationInfo(1, "name"); when(mMockConnectedAssociationStore.getConnectedAssociationById(1)) .thenReturn(associationInfo); taskStore.onTransportConnected(associationInfo); RemoteTaskInfo remoteTaskInfo = createNewRemoteTaskInfo(1, "task1", 100L); RemoteTask remoteTask = remoteTaskInfo.toRemoteTask(associationInfo.getId(), "name"); taskStore.setTasks(1, Collections.singletonList(remoteTaskInfo)); assertThat(taskStore.getMostRecentTasks()).containsExactly(remoteTask); // Add a new task to the association. RemoteTaskInfo newRemoteTaskInfo = createNewRemoteTaskInfo(2, "task2", 200L); RemoteTask newRemoteTask = newRemoteTaskInfo.toRemoteTask(associationInfo.getId(), "name"); taskStore.addTask(1, newRemoteTaskInfo); // Verify the most recent tasks are added to the task store. assertThat(taskStore.getMostRecentTasks()).containsExactly(newRemoteTask); } @Test public void addTask_doesNotAddTaskIfAssociationNotConnected() { RemoteTaskInfo remoteTaskInfo = createNewRemoteTaskInfo(1, "task1", 100L); taskStore.addTask(1, remoteTaskInfo); assertThat(taskStore.getMostRecentTasks()).isEmpty(); } private RemoteTaskInfo createNewRemoteTaskInfo( private RemoteTaskInfo createNewRemoteTaskInfo( int id, int id, String label, String label, Loading Loading
services/companion/java/com/android/server/companion/datatransfer/continuity/TaskContinuityManagerService.java +6 −0 Original line number Original line Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.content.Context; import android.util.Slog; import android.util.Slog; import com.android.server.companion.datatransfer.continuity.messages.ContinuityDeviceConnected; import com.android.server.companion.datatransfer.continuity.messages.ContinuityDeviceConnected; import com.android.server.companion.datatransfer.continuity.messages.RemoteTaskAddedMessage; import com.android.server.companion.datatransfer.continuity.messages.RemoteTaskRemovedMessage; import com.android.server.companion.datatransfer.continuity.messages.RemoteTaskRemovedMessage; import com.android.server.companion.datatransfer.continuity.messages.TaskContinuityMessage; import com.android.server.companion.datatransfer.continuity.messages.TaskContinuityMessage; import com.android.server.companion.datatransfer.continuity.tasks.RemoteTaskStore; import com.android.server.companion.datatransfer.continuity.tasks.RemoteTaskStore; Loading Loading @@ -108,6 +109,11 @@ public final class TaskContinuityManagerService extends SystemService { associationId, associationId, continuityDeviceConnected.getRemoteTasks()); continuityDeviceConnected.getRemoteTasks()); break; break; case RemoteTaskAddedMessage remoteTaskAddedMessage: mRemoteTaskStore.addTask( associationId, remoteTaskAddedMessage.getTask()); break; case RemoteTaskRemovedMessage remoteTaskRemovedMessage: case RemoteTaskRemovedMessage remoteTaskRemovedMessage: mRemoteTaskStore.removeTask( mRemoteTaskStore.removeTask( associationId, associationId, Loading
services/companion/java/com/android/server/companion/datatransfer/continuity/tasks/RemoteTaskStore.java +15 −0 Original line number Original line Diff line number Diff line Loading @@ -66,6 +66,21 @@ public class RemoteTaskStore implements ConnectedAssociationStore.Observer { } } } } public void addTask(int associationId, RemoteTaskInfo taskInfo) { synchronized (mRemoteDeviceTaskLists) { if (!mRemoteDeviceTaskLists.containsKey(associationId)) { Slog.e( TAG, "addTask failure for association: " + associationId + " - not connected."); return; } Slog.v(TAG, "Adding task: " + taskInfo.getId() + " for association: " + associationId); mRemoteDeviceTaskLists.get(associationId).addTask(taskInfo); } } public void removeTask(int associationId, int taskId) { public void removeTask(int associationId, int taskId) { synchronized (mRemoteDeviceTaskLists) { synchronized (mRemoteDeviceTaskLists) { if (!mRemoteDeviceTaskLists.containsKey(associationId)) { if (!mRemoteDeviceTaskLists.containsKey(associationId)) { Loading
services/tests/servicestests/src/com/android/server/companion/datatransfer/continuity/tasks/RemoteTaskStoreTest.java +29 −0 Original line number Original line Diff line number Diff line Loading @@ -141,6 +141,35 @@ public class RemoteTaskStoreTest { assertThat(taskStore.getMostRecentTasks()).isEmpty(); assertThat(taskStore.getMostRecentTasks()).isEmpty(); } } @Test public void addTask_addsTaskToAssociation() { // Create a fake association info, and have connected association store return it. AssociationInfo associationInfo = createAssociationInfo(1, "name"); when(mMockConnectedAssociationStore.getConnectedAssociationById(1)) .thenReturn(associationInfo); taskStore.onTransportConnected(associationInfo); RemoteTaskInfo remoteTaskInfo = createNewRemoteTaskInfo(1, "task1", 100L); RemoteTask remoteTask = remoteTaskInfo.toRemoteTask(associationInfo.getId(), "name"); taskStore.setTasks(1, Collections.singletonList(remoteTaskInfo)); assertThat(taskStore.getMostRecentTasks()).containsExactly(remoteTask); // Add a new task to the association. RemoteTaskInfo newRemoteTaskInfo = createNewRemoteTaskInfo(2, "task2", 200L); RemoteTask newRemoteTask = newRemoteTaskInfo.toRemoteTask(associationInfo.getId(), "name"); taskStore.addTask(1, newRemoteTaskInfo); // Verify the most recent tasks are added to the task store. assertThat(taskStore.getMostRecentTasks()).containsExactly(newRemoteTask); } @Test public void addTask_doesNotAddTaskIfAssociationNotConnected() { RemoteTaskInfo remoteTaskInfo = createNewRemoteTaskInfo(1, "task1", 100L); taskStore.addTask(1, remoteTaskInfo); assertThat(taskStore.getMostRecentTasks()).isEmpty(); } private RemoteTaskInfo createNewRemoteTaskInfo( private RemoteTaskInfo createNewRemoteTaskInfo( int id, int id, String label, String label, Loading