Loading services/companion/java/com/android/server/companion/datatransfer/continuity/TaskBroadcaster.java +9 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.util.Slog; import com.android.server.companion.datatransfer.continuity.connectivity.ConnectedAssociationStore; 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.RemoteTaskInfo; import com.android.server.companion.datatransfer.continuity.messages.TaskContinuityMessage; import com.android.server.companion.datatransfer.continuity.messages.TaskContinuityMessageData; Loading Loading @@ -133,6 +134,14 @@ class TaskBroadcaster } } @Override public void onTaskRemoved(int taskId) throws RemoteException { Slog.v(TAG, "onTaskRemoved: taskId=" + taskId); RemoteTaskRemovedMessage taskRemovedMessage = new RemoteTaskRemovedMessage(taskId); sendMessageToAllConnectedAssociations(taskRemovedMessage); } private void sendDeviceConnectedMessage(int associationId) { Slog.v( TAG, Loading services/tests/servicestests/src/com/android/server/companion/datatransfer/continuity/TaskBroadcasterTest.java +28 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,8 @@ import com.android.server.companion.datatransfer.continuity.connectivity.Connect import com.android.server.companion.datatransfer.continuity.messages.ContinuityDeviceConnected; import com.android.server.companion.datatransfer.continuity.messages.TaskContinuityMessage; 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.TaskContinuityMessageData; import org.junit.Before; import org.junit.Test; Loading Loading @@ -212,4 +214,30 @@ public class TaskBroadcasterTest { (RemoteTaskAddedMessage) taskContinuityMessage.getData(); assertThat(remoteTaskAddedMessage.getTask().getId()).isEqualTo(taskId); } @Test public void testOnTaskRemoved_sendsMessageToAllAssociations() throws Exception { // Start broadcasting. int taskId = 123; mTaskBroadcaster.startBroadcasting(); verify(mMockConnectedAssociationStore, times(1)).addObserver(mTaskBroadcaster); AssociationInfo associationInfo = createAssociationInfo(1, "name1"); when(mMockConnectedAssociationStore.getConnectedAssociations()) .thenReturn(Arrays.asList(associationInfo)); mTaskBroadcaster.onTaskRemoved(taskId); // Verify sendMessage is called ArgumentCaptor<byte[]> messageCaptor = ArgumentCaptor.forClass(byte[].class); verify(mMockCompanionDeviceManagerService, times(1)).sendMessage( eq(CompanionDeviceManager.MESSAGE_ONEWAY_TASK_CONTINUITY), messageCaptor.capture(), any(int[].class)); byte[] capturedMessage = messageCaptor.getValue(); TaskContinuityMessage taskContinuityMessage = new TaskContinuityMessage(capturedMessage); assertThat(taskContinuityMessage.getData()).isInstanceOf(RemoteTaskRemovedMessage.class); RemoteTaskRemovedMessage remoteTaskRemovedMessage = (RemoteTaskRemovedMessage) taskContinuityMessage.getData(); assertThat(remoteTaskRemovedMessage.taskId()).isEqualTo(taskId); } } No newline at end of file Loading
services/companion/java/com/android/server/companion/datatransfer/continuity/TaskBroadcaster.java +9 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.util.Slog; import com.android.server.companion.datatransfer.continuity.connectivity.ConnectedAssociationStore; 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.RemoteTaskInfo; import com.android.server.companion.datatransfer.continuity.messages.TaskContinuityMessage; import com.android.server.companion.datatransfer.continuity.messages.TaskContinuityMessageData; Loading Loading @@ -133,6 +134,14 @@ class TaskBroadcaster } } @Override public void onTaskRemoved(int taskId) throws RemoteException { Slog.v(TAG, "onTaskRemoved: taskId=" + taskId); RemoteTaskRemovedMessage taskRemovedMessage = new RemoteTaskRemovedMessage(taskId); sendMessageToAllConnectedAssociations(taskRemovedMessage); } private void sendDeviceConnectedMessage(int associationId) { Slog.v( TAG, Loading
services/tests/servicestests/src/com/android/server/companion/datatransfer/continuity/TaskBroadcasterTest.java +28 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,8 @@ import com.android.server.companion.datatransfer.continuity.connectivity.Connect import com.android.server.companion.datatransfer.continuity.messages.ContinuityDeviceConnected; import com.android.server.companion.datatransfer.continuity.messages.TaskContinuityMessage; 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.TaskContinuityMessageData; import org.junit.Before; import org.junit.Test; Loading Loading @@ -212,4 +214,30 @@ public class TaskBroadcasterTest { (RemoteTaskAddedMessage) taskContinuityMessage.getData(); assertThat(remoteTaskAddedMessage.getTask().getId()).isEqualTo(taskId); } @Test public void testOnTaskRemoved_sendsMessageToAllAssociations() throws Exception { // Start broadcasting. int taskId = 123; mTaskBroadcaster.startBroadcasting(); verify(mMockConnectedAssociationStore, times(1)).addObserver(mTaskBroadcaster); AssociationInfo associationInfo = createAssociationInfo(1, "name1"); when(mMockConnectedAssociationStore.getConnectedAssociations()) .thenReturn(Arrays.asList(associationInfo)); mTaskBroadcaster.onTaskRemoved(taskId); // Verify sendMessage is called ArgumentCaptor<byte[]> messageCaptor = ArgumentCaptor.forClass(byte[].class); verify(mMockCompanionDeviceManagerService, times(1)).sendMessage( eq(CompanionDeviceManager.MESSAGE_ONEWAY_TASK_CONTINUITY), messageCaptor.capture(), any(int[].class)); byte[] capturedMessage = messageCaptor.getValue(); TaskContinuityMessage taskContinuityMessage = new TaskContinuityMessage(capturedMessage); assertThat(taskContinuityMessage.getData()).isInstanceOf(RemoteTaskRemovedMessage.class); RemoteTaskRemovedMessage remoteTaskRemovedMessage = (RemoteTaskRemovedMessage) taskContinuityMessage.getData(); assertThat(remoteTaskRemovedMessage.taskId()).isEqualTo(taskId); } } No newline at end of file