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

Commit d7822e89 authored by [D's avatar [D[1;5D
Browse files

Set recents policy to default on session close.

This ensures that any automated apps will show in the default device's
recents once the session terminates.

Bug: 437848392
Test: atest ComputerControlSessionTest
Flag: android.companion.virtualdevice.flags.computer_control_access
Change-Id: I5a7301b45f11cfe581451dd9ac4c26bd5a5ce2af
parent 0e94fa0b
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -16,6 +16,10 @@

package com.android.server.companion.virtual.computercontrol;

import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_CUSTOM;
import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_DEFAULT;
import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_RECENTS;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.UserIdInt;
@@ -81,8 +85,7 @@ final class ComputerControlSessionImpl extends IComputerControlSession.Stub
        mOnClosedListener = onClosedListener;
        VirtualDeviceParams virtualDeviceParams = new VirtualDeviceParams.Builder()
                .setName(mParams.getName())
                .setDevicePolicy(VirtualDeviceParams.POLICY_TYPE_RECENTS,
                        VirtualDeviceParams.DEVICE_POLICY_CUSTOM)
                .setDevicePolicy(POLICY_TYPE_RECENTS, DEVICE_POLICY_CUSTOM)
                .build();
        String permissionControllerPackage = packageManager.getPermissionControllerPackageName();
        ActivityPolicyExemption permissionController =
@@ -207,6 +210,7 @@ final class ComputerControlSessionImpl extends IComputerControlSession.Stub

    @Override
    public void close() throws RemoteException {
        mVirtualDevice.setDevicePolicy(POLICY_TYPE_RECENTS, DEVICE_POLICY_DEFAULT);
        mVirtualDevice.close();
        mAppToken.unlinkToDeath(this, 0);
        mOnClosedListener.onClosed(asBinder());
+8 −0
Original line number Diff line number Diff line
@@ -16,6 +16,10 @@

package com.android.server.companion.virtual.computercontrol;

import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_CUSTOM;
import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_DEFAULT;
import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_RECENTS;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.any;
@@ -119,6 +123,9 @@ public class ComputerControlSessionTest {
                eq(mAppToken), any(), mVirtualDeviceParamsArgumentCaptor.capture(), any());
        assertThat(mVirtualDeviceParamsArgumentCaptor.getValue().getName())
                .isEqualTo(mParams.getName());
        assertThat(mVirtualDeviceParamsArgumentCaptor.getValue()
                .getDevicePolicy(POLICY_TYPE_RECENTS))
                .isEqualTo(DEVICE_POLICY_CUSTOM);

        verify(mVirtualDevice).addActivityPolicyExemption(
                mActivityPolicyExemptionArgumentCaptor.capture());
@@ -167,6 +174,7 @@ public class ComputerControlSessionTest {
    @Test
    public void closeSession_closesVirtualDevice() throws Exception {
        mSession.close();
        verify(mVirtualDevice).setDevicePolicy(POLICY_TYPE_RECENTS, DEVICE_POLICY_DEFAULT);
        verify(mVirtualDevice).close();
        verify(mOnClosedListener).onClosed(mSession.asBinder());
    }