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

Commit b6212a3d authored by Jakub Pawlowski's avatar Jakub Pawlowski Committed by Andre Eisenbach
Browse files

Fix NPE when accessing mCallback in BluetoothGatt

This issue was introduced in commit
f2b84e7d.

Bug: 37710354
Test: none
Change-Id: I2d985ce97c44d4e096713e156e57437f44ea3ddb
parent 64e5e503
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);
                        }
                    }
                });
            }
        };