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

Commit b7648388 authored by Rahul Sabnis's avatar Rahul Sabnis Committed by Etienne Ruffieux
Browse files

Adjusts maximum transmit packet size for pbap to 8192 bytes

Tag: #feature
Bug: 187174891
Test: Manual
Merged-In: Ic482dfda37239262ecb3d9c0d5bbf2b1dd81f3e4
Change-Id: Ic482dfda37239262ecb3d9c0d5bbf2b1dd81f3e4
parent 3513cd6f
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
@@ -78,6 +78,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;

@@ -244,7 +250,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 {
@@ -345,7 +352,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.