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

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

Merge "[Handoff][3/N] Remove Tasks Upon Handoff" into main

parents 6e7c85c1 d69a8148
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -71,7 +71,8 @@ public final class TaskContinuityManagerService
        mRemoteTaskStore = new RemoteTaskStore();
        mOutboundHandoffRequestController = new OutboundHandoffRequestController(
            context,
            mTaskContinuityMessenger);
            mTaskContinuityMessenger,
            mRemoteTaskStore);
        mInboundHandoffRequestController = new InboundHandoffRequestController(
            mTaskContinuityMessenger);
    }
+7 −1
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import com.android.server.companion.datatransfer.continuity.messages.HandoffRequ
import com.android.server.companion.datatransfer.continuity.messages.HandoffRequestResultMessage;
import com.android.server.companion.datatransfer.continuity.handoff.HandoffActivityStarter;
import com.android.server.companion.datatransfer.continuity.handoff.HandoffRequestCallbackHolder;
import com.android.server.companion.datatransfer.continuity.tasks.RemoteTaskStore;

import android.annotation.NonNull;
import android.app.HandoffActivityData;
@@ -54,19 +55,23 @@ public class OutboundHandoffRequestController {

    private final Context mContext;
    private final TaskContinuityMessenger mTaskContinuityMessenger;
    private final RemoteTaskStore mRemoteTaskStore;
    private final HandoffRequestCallbackHolder mHandoffRequestCallbackHolder
        = new HandoffRequestCallbackHolder();
    private final Set<PendingHandoffRequest> mPendingHandoffRequests = new HashSet<>();

    public OutboundHandoffRequestController(
        @NonNull Context context,
        @NonNull TaskContinuityMessenger taskContinuityMessenger) {
        @NonNull TaskContinuityMessenger taskContinuityMessenger,
        @NonNull RemoteTaskStore remoteTaskStore) {

        Objects.requireNonNull(context);
        Objects.requireNonNull(taskContinuityMessenger);
        Objects.requireNonNull(remoteTaskStore);

        mContext = context;
        mTaskContinuityMessenger = taskContinuityMessenger;
        mRemoteTaskStore = remoteTaskStore;
    }

    public void requestHandoff(int associationId, int taskId, IHandoffRequestCallback callback) {
@@ -157,6 +162,7 @@ public class OutboundHandoffRequestController {
            mPendingHandoffRequests.remove(request);
            mHandoffRequestCallbackHolder
                .notifyAndRemoveCallbacks(associationId, taskId, statusCode);
            mRemoteTaskStore.removeTask(associationId, taskId);
        }
    }
}
 No newline at end of file
+7 −1
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import static org.mockito.ArgumentMatchers.any;
import com.android.server.companion.datatransfer.continuity.connectivity.TaskContinuityMessenger;
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.tasks.RemoteTaskStore;

import android.app.ActivityManager;
import android.app.HandoffActivityData;
@@ -56,6 +57,7 @@ public class OutboundHandoffRequestControllerTest {
    @Mock private Context mMockContext;
    @Mock private TaskContinuityMessenger mMockTaskContinuityMessenger;
    @Mock private PackageManager mMockPackageManager;
    @Mock private RemoteTaskStore mMockRemoteTaskStore;

    private OutboundHandoffRequestController mOutboundHandoffRequestController;

@@ -65,7 +67,8 @@ public class OutboundHandoffRequestControllerTest {
        doReturn(mMockPackageManager).when(mMockContext).getPackageManager();
        mOutboundHandoffRequestController = new OutboundHandoffRequestController(
            mMockContext,
            mMockTaskContinuityMessenger);
            mMockTaskContinuityMessenger,
            mMockRemoteTaskStore);
    }

    @Test
@@ -130,6 +133,9 @@ public class OutboundHandoffRequestControllerTest {
            associationId,
            taskId,
            TaskContinuityManager.HANDOFF_REQUEST_RESULT_SUCCESS);

        // Verify the task was removed from the store.
        verify(mMockRemoteTaskStore).removeTask(associationId, taskId);
    }

    @Test