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

Commit 612b8bef authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Fix Bluetooth GATT API default handler assignment"

parents 9d9aab48 c131051e
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -1714,7 +1714,7 @@ public final class BluetoothDevice implements Parcelable {
     *             an d{@link BluetoothDevice#PHY_LE_CODED_MASK}. This option does not take effect
     *             if {@code autoConnect} is set to true.
     * @param handler The handler to use for the callback. If {@code null}, callbacks will happen
     *             on the service's main thread.
     *             on an un-specified background thread.
     * @throws NullPointerException if callback is null
     */
    public BluetoothGatt connectGatt(Context context, boolean autoConnect,
@@ -1723,9 +1723,6 @@ public final class BluetoothDevice implements Parcelable {
        if (callback == null)
            throw new NullPointerException("callback is null");

        if (handler == null)
            handler = new Handler(Looper.getMainLooper());

        // TODO(Bluetooth) check whether platform support BLE
        //     Do the check here or in GattServer?
        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
+30 −14
Original line number Diff line number Diff line
@@ -156,7 +156,7 @@ public final class BluetoothGatt implements BluetoothProfile {
                }
                mClientIf = clientIf;
                if (status != GATT_SUCCESS) {
                    mHandler.post(new Runnable() {
                    runOrQueueCallback(new Runnable() {
                        @Override
                        public void run() {
                            if (mCallback != null) {
@@ -191,7 +191,7 @@ public final class BluetoothGatt implements BluetoothProfile {
                    return;
                }

                mHandler.post(new Runnable() {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
@@ -213,7 +213,7 @@ public final class BluetoothGatt implements BluetoothProfile {
                    return;
                }

                mHandler.post(new Runnable() {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
@@ -238,7 +238,7 @@ public final class BluetoothGatt implements BluetoothProfile {
                int profileState = connected ? BluetoothProfile.STATE_CONNECTED :
                                               BluetoothProfile.STATE_DISCONNECTED;

                mHandler.post(new Runnable() {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
@@ -300,7 +300,7 @@ public final class BluetoothGatt implements BluetoothProfile {
                    }
                }

                mHandler.post(new Runnable() {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
@@ -352,7 +352,7 @@ public final class BluetoothGatt implements BluetoothProfile {

                if (status == 0) characteristic.setValue(value);

                mHandler.post(new Runnable() {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
@@ -401,7 +401,7 @@ public final class BluetoothGatt implements BluetoothProfile {

                mAuthRetryState = AUTH_RETRY_STATE_IDLE;

                mHandler.post(new Runnable() {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
@@ -430,7 +430,7 @@ public final class BluetoothGatt implements BluetoothProfile {

                characteristic.setValue(value);

                mHandler.post(new Runnable() {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
@@ -477,7 +477,7 @@ public final class BluetoothGatt implements BluetoothProfile {

                mAuthRetryState = AUTH_RETRY_STATE_IDLE;

                mHandler.post(new Runnable() {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
@@ -523,7 +523,7 @@ public final class BluetoothGatt implements BluetoothProfile {

                mAuthRetryState = AUTH_RETRY_STATE_IDLE;

                mHandler.post(new Runnable() {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
@@ -549,7 +549,7 @@ public final class BluetoothGatt implements BluetoothProfile {
                    mDeviceBusy = false;
                }

                mHandler.post(new Runnable() {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
@@ -570,7 +570,7 @@ public final class BluetoothGatt implements BluetoothProfile {
                if (!address.equals(mDevice.getAddress())) {
                    return;
                }
                mHandler.post(new Runnable() {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
@@ -592,7 +592,7 @@ public final class BluetoothGatt implements BluetoothProfile {
                    return;
                }

                mHandler.post(new Runnable() {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
@@ -616,7 +616,7 @@ public final class BluetoothGatt implements BluetoothProfile {
                    return;
                }

                mHandler.post(new Runnable() {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
@@ -702,6 +702,22 @@ public final class BluetoothGatt implements BluetoothProfile {
        return null;
    }

    /**
     * Queue the runnable on a {@link Handler} provided by the user, or execute the runnable
     * immediately if no Handler was provided.
     */
    private void runOrQueueCallback(final Runnable cb) {
        if (mHandler == null) {
          try {
            cb.run();
          } catch (Exception ex) {
            Log.w(TAG, "Unhandled exception in callback", ex);
          }
        } else {
          mHandler.post(cb);
        }
    }

    /**
     * Register an application callback to start using GATT.
     *