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

Commit a135e3db authored by Joe Antonetti's avatar Joe Antonetti Committed by Android (Google) Code Review
Browse files

Merge "[Handoff][2/N] Create TaskContinuityMessageSerializer" into main

parents de73ec46 8305b99c
Loading
Loading
Loading
Loading
+6 −17
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ import com.android.server.companion.datatransfer.continuity.messages.RemoteTaskR
import com.android.server.companion.datatransfer.continuity.messages.RemoteTaskUpdatedMessage;
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;
import com.android.server.companion.datatransfer.continuity.messages.TaskContinuityMessageSerializer;

import java.io.IOException;
import java.util.ArrayList;
@@ -195,31 +195,20 @@ class TaskBroadcaster
        sendMessage(associationId, deviceConnectedMessage);
    }

    private void sendMessage(
        int associationId,
        TaskContinuityMessageData data) {

        Slog.v(
            TAG,
            "Sending message to association id: "
                + associationId);

        TaskContinuityMessage message = new TaskContinuityMessage.Builder()
                .setData(data)
                .build();
    private void sendMessage(int associationId, TaskContinuityMessage message) {
        Slog.v(TAG, "Sending message to association id: " + associationId);

        try {
            mCompanionDeviceManager.sendMessage(
                CompanionDeviceManager.MESSAGE_ONEWAY_TASK_CONTINUITY,
                message.toBytes(),
                TaskContinuityMessageSerializer.serialize(message),
                new int[] {associationId});
        } catch (IOException e) {
            Slog.e(TAG, "Failed to send message to device " + associationId, e);
        }
    }

    private void sendMessageToAllConnectedAssociations(
        TaskContinuityMessageData data) {
    private void sendMessageToAllConnectedAssociations(TaskContinuityMessage message) {

        Collection<AssociationInfo> connectedAssociations
            = mConnectedAssociationStore.getConnectedAssociations();
@@ -229,7 +218,7 @@ class TaskBroadcaster
            "Sending message to " + connectedAssociations.size() + " associations.");

        for (AssociationInfo associationInfo : connectedAssociations) {
            sendMessage(associationInfo.getId(), data);
            sendMessage(associationInfo.getId(), message);
        }
    }

+1 −1
Original line number Diff line number Diff line
@@ -124,7 +124,7 @@ public final class TaskContinuityManagerService extends SystemService {

        Slog.v(TAG, "Received message from association id: " + associationId);

        switch (taskContinuityMessage.getData()) {
        switch (taskContinuityMessage) {
            case ContinuityDeviceConnected continuityDeviceConnected:
                mRemoteTaskStore.setTasks(
                    associationId,
+3 −1
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.companion.CompanionDeviceManager;
import android.util.Slog;

import com.android.server.companion.datatransfer.continuity.messages.TaskContinuityMessage;
import com.android.server.companion.datatransfer.continuity.messages.TaskContinuityMessageSerializer;

import java.util.function.BiConsumer;

@@ -94,7 +95,8 @@ class TaskContinuityMessageReceiver {
    private void onMessageReceived(int associationId, byte[] data) {
        Slog.v(TAG, "Received message from association id: " + associationId);
      try {
            TaskContinuityMessage taskContinuityMessage = new TaskContinuityMessage(data);
            TaskContinuityMessage taskContinuityMessage
                = TaskContinuityMessageSerializer.deserialize(data);
            if (mOnTaskContinuityMessageReceivedListener != null) {
                mOnTaskContinuityMessageReceivedListener.accept(
                    associationId,
+2 −5
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import com.android.server.LocalServices;
import com.android.server.companion.datatransfer.continuity.messages.HandoffRequestMessage;
import com.android.server.companion.datatransfer.continuity.messages.HandoffRequestResultMessage;
import com.android.server.companion.datatransfer.continuity.messages.TaskContinuityMessage;
import com.android.server.companion.datatransfer.continuity.messages.TaskContinuityMessageSerializer;
import com.android.server.wm.ActivityTaskManagerInternal;

import java.io.IOException;
@@ -131,10 +132,6 @@ public class InboundHandoffRequestController extends IHandoffTaskDataReceiver.St
                .get(handoffRequestResultMessage.taskId());
            mPendingHandoffRequests.remove(handoffRequestResultMessage.taskId());

            TaskContinuityMessage taskContinuityMessage = new TaskContinuityMessage.Builder()
                .setData(handoffRequestResultMessage)
                .build();

            int[] associationIdsArray = new int[associationIds.size()];
            for (int i = 0; i < associationIds.size(); i++) {
                associationIdsArray[i] = associationIds.get(i);
@@ -144,7 +141,7 @@ public class InboundHandoffRequestController extends IHandoffTaskDataReceiver.St
            try {
                mCompanionDeviceManager.sendMessage(
                    MESSAGE_ONEWAY_TASK_CONTINUITY,
                    taskContinuityMessage.toBytes(),
                    TaskContinuityMessageSerializer.serialize(handoffRequestResultMessage),
                    associationIdsArray);
            } catch (IOException e) {
                Slog.e(TAG, "Failed to send message to associations " + associationIds, e);
+2 −5
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import com.android.server.companion.datatransfer.continuity.connectivity.Connect
import com.android.server.companion.datatransfer.continuity.messages.HandoffRequestMessage;
import com.android.server.companion.datatransfer.continuity.messages.HandoffRequestResultMessage;
import com.android.server.companion.datatransfer.continuity.messages.TaskContinuityMessage;
import com.android.server.companion.datatransfer.continuity.messages.TaskContinuityMessageSerializer;

import android.app.ActivityOptions;
import android.app.HandoffActivityData;
@@ -96,14 +97,10 @@ public class OutboundHandoffRequestController {
            callbacks.add(callback);
            mPendingCallbacks.get(associationId).put(taskId, callbacks);
            HandoffRequestMessage handoffRequestMessage = new HandoffRequestMessage(taskId);
            TaskContinuityMessage taskContinuityMessage = new TaskContinuityMessage.Builder()
                .setData(handoffRequestMessage)
                .build();

            try {
                mCompanionDeviceManager.sendMessage(
                    CompanionDeviceManager.MESSAGE_ONEWAY_TASK_CONTINUITY,
                    taskContinuityMessage.toBytes(),
                    TaskContinuityMessageSerializer.serialize(handoffRequestMessage),
                    new int[] {associationId});
            } catch (IOException e) {
                Slog.e(TAG, "Failed to send handoff request message to device " + associationId, e);
Loading