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

Commit 9e7fbfa2 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "[CDM] Add shell cmd to create a dummy transport"

parents ed3b53a0 4c959754
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -918,7 +918,7 @@ public class CompanionDeviceManagerService extends SystemService {
                String[] args, ShellCallback callback, ResultReceiver resultReceiver)
                throws RemoteException {
            new CompanionDeviceShellCommand(CompanionDeviceManagerService.this, mAssociationStore,
                    mDevicePresenceMonitor)
                    mDevicePresenceMonitor, mTransportManager)
                    .exec(this, in, out, err, args, callback, resultReceiver);
        }

+14 −1
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.os.Binder;
import android.os.ShellCommand;

import com.android.server.companion.presence.CompanionDevicePresenceMonitor;
import com.android.server.companion.transport.CompanionTransportManager;

import java.io.PrintWriter;
import java.util.List;
@@ -32,13 +33,16 @@ class CompanionDeviceShellCommand extends ShellCommand {
    private final CompanionDeviceManagerService mService;
    private final AssociationStore mAssociationStore;
    private final CompanionDevicePresenceMonitor mDevicePresenceMonitor;
    private final CompanionTransportManager mTransportManager;

    CompanionDeviceShellCommand(CompanionDeviceManagerService service,
            AssociationStore associationStore,
            CompanionDevicePresenceMonitor devicePresenceMonitor) {
            CompanionDevicePresenceMonitor devicePresenceMonitor,
            CompanionTransportManager transportManager) {
        mService = service;
        mAssociationStore = associationStore;
        mDevicePresenceMonitor = devicePresenceMonitor;
        mTransportManager = transportManager;
    }

    @Override
@@ -107,6 +111,12 @@ class CompanionDeviceShellCommand extends ShellCommand {
                }
                break;

                case "create-dummy-transport":
                    // This command creates a RawTransport in order to test Transport listeners
                    associationId = getNextIntArgRequired();
                    mTransportManager.createDummyTransport(associationId);
                    break;

                default:
                    return handleDefaultCommands(cmd);
            }
@@ -165,5 +175,8 @@ class CompanionDeviceShellCommand extends ShellCommand {
        pw.println("      for a long time (90 days or as configured via ");
        pw.println("      \"debug.cdm.cdmservice.removal_time_window\" system property). ");
        pw.println("      USE FOR DEBUGGING AND/OR TESTING PURPOSES ONLY.");

        pw.println("  create-dummy-transport <ASSOCIATION_ID>");
        pw.println("      Create a dummy RawTransport for testing puspose only");
    }
}
+16 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import com.android.internal.annotations.GuardedBy;
import com.android.server.LocalServices;
import com.android.server.companion.AssociationStore;

import java.io.FileDescriptor;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
@@ -346,6 +347,21 @@ public class CompanionTransportManager {
        this.mSecureTransportEnabled = enabled;
    }

    /**
     * For testing purpose only.
     *
     * Create a dummy RawTransport and notify onTransportChanged listeners.
     */
    public void createDummyTransport(int associationId) {
        synchronized (mTransports) {
            FileDescriptor fd = new FileDescriptor();
            ParcelFileDescriptor pfd = new ParcelFileDescriptor(fd);
            Transport transport = new RawTransport(associationId, pfd, mContext);
            mTransports.put(associationId, transport);
            notifyOnTransportsChanged();
        }
    }

    private boolean isSecureTransportEnabled() {
        boolean enabled = !Build.IS_DEBUGGABLE || mSecureTransportEnabled;