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

Commit 23c94de7 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Close BluetoothGatt when disconnected"

parents 2ec109c9 06d9546a
Loading
Loading
Loading
Loading
+16 −7
Original line number Diff line number Diff line
@@ -223,14 +223,16 @@ public class BatteryStateMachine extends StateMachine {
            return false;
        }

        if (mBluetoothGatt == null) {
        if (mGattCallback == null) {
            mGattCallback = new GattCallback();
        }
        if (mBluetoothGatt != null) {
            Log.w(TAG, "Trying connectGatt with existing BluetoothGatt instance.");
            mBluetoothGatt.close();
        }
        mBluetoothGatt = mDevice.connectGatt(service, /*autoConnect=*/false,
                mGattCallback, TRANSPORT_AUTO, /*opportunistic=*/true,
                PHY_LE_1M_MASK | PHY_LE_2M_MASK, getHandler());
        } else {
            mBluetoothGatt.connect();
        }
        return mBluetoothGatt != null;
    }

@@ -256,6 +258,11 @@ public class BatteryStateMachine extends StateMachine {
            log(TAG, "Enter (" + mDevice + "): " + messageWhatToString(
                        getCurrentMessage().what));

            if (mBluetoothGatt != null) {
                mBluetoothGatt.close();
                mBluetoothGatt = null;
            }

            if (mLastConnectionState != BluetoothProfile.STATE_DISCONNECTED) {
                // Don't broadcast during startup
                dispatchConnectionStateChanged(mLastConnectionState,
@@ -575,7 +582,9 @@ public class BatteryStateMachine extends StateMachine {
            int batteryLevel = value[0] & 0xFF;

            BatteryService service = mServiceRef.get();
            if (service != null) {
                service.handleBatteryChanged(mDevice, batteryLevel);
            }
        }
    }
}
+2 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.bluetooth.bas;
import static android.bluetooth.BluetoothGatt.GATT_SUCCESS;

import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.after;
@@ -157,6 +158,7 @@ public class BatteryStateMachineTest {
        // Check that we are in Disconnected state
        Assert.assertThat(mBatteryStateMachine.getCurrentState(),
                IsInstanceOf.instanceOf(BatteryStateMachine.Disconnected.class));
        assertNull(mBatteryStateMachine.mBluetoothGatt);
    }

    @Test