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

Commit d8375f53 authored by Jakub Pawlowski's avatar Jakub Pawlowski
Browse files

Fix NPE when accessing mCallback in BluetoothGatt

This issue was introduced in commit
4eab49652e48159fd37f827d30b822f2f187551e.

Bug: 37710354
Test: none
Change-Id: I2d985ce97c44d4e096713e156e57437f44ea3ddb
(cherry picked from commit 0e4ac75f2e291305a493796186d44a081926f3a8)
parent ce4012c6
Loading
Loading
Loading
Loading
+47 −16
Original line number Diff line number Diff line
@@ -159,9 +159,11 @@ public final class BluetoothGatt implements BluetoothProfile {
                    mHandler.post(new Runnable() {
                        @Override
                        public void run() {
                            if (mCallback != null) {
                                mCallback.onConnectionStateChange(BluetoothGatt.this, GATT_FAILURE,
                                                  BluetoothProfile.STATE_DISCONNECTED);
                            }
                        }
                    });

                    synchronized(mStateLock) {
@@ -192,8 +194,10 @@ public final class BluetoothGatt implements BluetoothProfile {
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onPhyUpdate(BluetoothGatt.this, txPhy, rxPhy, status);
                        }
                    }
                });
            }

@@ -212,8 +216,10 @@ public final class BluetoothGatt implements BluetoothProfile {
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onPhyRead(BluetoothGatt.this, txPhy, rxPhy, status);
                        }
                    }
                });
            }

@@ -235,7 +241,10 @@ public final class BluetoothGatt implements BluetoothProfile {
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        mCallback.onConnectionStateChange(BluetoothGatt.this, status, profileState);
                        if (mCallback != null) {
                            mCallback.onConnectionStateChange(BluetoothGatt.this, status,
                                                              profileState);
                        }
                    }
                });

@@ -294,8 +303,10 @@ public final class BluetoothGatt implements BluetoothProfile {
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onServicesDiscovered(BluetoothGatt.this, status);
                        }
                    }
                });
            }

@@ -344,7 +355,10 @@ public final class BluetoothGatt implements BluetoothProfile {
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        mCallback.onCharacteristicRead(BluetoothGatt.this, characteristic, status);
                        if (mCallback != null) {
                            mCallback.onCharacteristicRead(BluetoothGatt.this, characteristic,
                                                           status);
                        }
                    }
                });
            }
@@ -390,7 +404,10 @@ public final class BluetoothGatt implements BluetoothProfile {
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        mCallback.onCharacteristicWrite(BluetoothGatt.this, characteristic, status);
                        if (mCallback != null) {
                            mCallback.onCharacteristicWrite(BluetoothGatt.this, characteristic,
                                                            status);
                        }
                    }
                });
            }
@@ -416,8 +433,10 @@ public final class BluetoothGatt implements BluetoothProfile {
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onCharacteristicChanged(BluetoothGatt.this, characteristic);
                        }
                    }
                });
            }

@@ -461,8 +480,10 @@ public final class BluetoothGatt implements BluetoothProfile {
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onDescriptorRead(BluetoothGatt.this, descriptor, status);
                        }
                    }
                });
            }

@@ -505,8 +526,10 @@ public final class BluetoothGatt implements BluetoothProfile {
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onDescriptorWrite(BluetoothGatt.this, descriptor, status);
                        }
                    }
                });
            }

@@ -529,8 +552,10 @@ public final class BluetoothGatt implements BluetoothProfile {
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                           mCallback.onReliableWriteCompleted(BluetoothGatt.this, status);
                        }
                    }
                });
            }

@@ -548,8 +573,10 @@ public final class BluetoothGatt implements BluetoothProfile {
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onReadRemoteRssi(BluetoothGatt.this, rssi, status);
                        }
                    }
                });
            }

@@ -568,8 +595,10 @@ public final class BluetoothGatt implements BluetoothProfile {
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onMtuChanged(BluetoothGatt.this, mtu, status);
                        }
                    }
                });
            }

@@ -590,9 +619,11 @@ public final class BluetoothGatt implements BluetoothProfile {
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onConnectionUpdated(BluetoothGatt.this, interval, latency,
                                                          timeout, status);
                        }
                    }
                });
            }
        };