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

Commit f4615f15 authored by Rahul Sabnis's avatar Rahul Sabnis
Browse files

Adjusts maximum transmit packet size for pbap to 8192 bytes

Tag: #feature
Bug: 187174891
Test: Manual
Change-Id: Ic482dfda37239262ecb3d9c0d5bbf2b1dd81f3e4
parent 5e00ad11
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
@@ -32,10 +32,24 @@ import javax.obex.ObexTransport;
public class BluetoothObexTransport implements ObexTransport {
    private BluetoothSocket mSocket = null;

    /**
     * Will default at the maximum packet length.
     */
    public static final int PACKET_SIZE_UNSPECIFIED = -1;

    private int mMaxTransmitPacketSize = PACKET_SIZE_UNSPECIFIED;
    private int mMaxReceivePacketSize = PACKET_SIZE_UNSPECIFIED;

    public BluetoothObexTransport(BluetoothSocket socket) {
        this.mSocket = socket;
    }

    public BluetoothObexTransport(BluetoothSocket socket, int transmitSize, int receiveSize) {
        this.mSocket = socket;
        this.mMaxTransmitPacketSize = transmitSize;
        this.mMaxReceivePacketSize = receiveSize;
    }

    @Override
    public void close() throws IOException {
        mSocket.close();
@@ -84,7 +98,7 @@ public class BluetoothObexTransport implements ObexTransport {
    @Override
    public int getMaxTransmitPacketSize() {
        if (mSocket.getConnectionType() != BluetoothSocket.TYPE_L2CAP) {
            return -1;
            return mMaxTransmitPacketSize;
        }
        return mSocket.getMaxTransmitPacketSize();
    }
@@ -92,7 +106,7 @@ public class BluetoothObexTransport implements ObexTransport {
    @Override
    public int getMaxReceivePacketSize() {
        if (mSocket.getConnectionType() != BluetoothSocket.TYPE_L2CAP) {
            return -1;
            return mMaxReceivePacketSize;
        }
        return mSocket.getMaxReceivePacketSize();
    }
+10 −2
Original line number Diff line number Diff line
@@ -75,6 +75,12 @@ class PbapStateMachine extends StateMachine {
    static final int AUTH_KEY_INPUT = 7;
    static final int AUTH_CANCELLED = 8;

    /**
     * Used to limit PBAP OBEX maximum packet size in order to reduce
     * transaction time.
     */
    private static final int PBAP_OBEX_MAXIMUM_PACKET_SIZE = 8192;

    private BluetoothPbapService mService;
    private IObexConnectionHandler mIObexConnectionHandler;

@@ -241,7 +247,8 @@ class PbapStateMachine extends StateMachine {
        private void rejectConnection() {
            mPbapServer =
                    new BluetoothPbapObexServer(mServiceHandler, mService, PbapStateMachine.this);
            BluetoothObexTransport transport = new BluetoothObexTransport(mConnSocket);
            BluetoothObexTransport transport = new BluetoothObexTransport(mConnSocket,
                    PBAP_OBEX_MAXIMUM_PACKET_SIZE, BluetoothObexTransport.PACKET_SIZE_UNSPECIFIED);
            ObexRejectServer server =
                    new ObexRejectServer(ResponseCodes.OBEX_HTTP_UNAVAILABLE, mConnSocket);
            try {
@@ -342,7 +349,8 @@ class PbapStateMachine extends StateMachine {
                mObexAuth.setChallenged(false);
                mObexAuth.setCancelled(false);
            }
            BluetoothObexTransport transport = new BluetoothObexTransport(mConnSocket);
            BluetoothObexTransport transport = new BluetoothObexTransport(mConnSocket,
                    PBAP_OBEX_MAXIMUM_PACKET_SIZE, BluetoothObexTransport.PACKET_SIZE_UNSPECIFIED);
            mServerSession = new ServerSession(transport, mPbapServer, mObexAuth);
            // It's ok to just use one wake lock
            // Message MSG_ACQUIRE_WAKE_LOCK is always surrounded by RELEASE. safe.