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

Commit d173ec43 authored by HsingYuan Lo's avatar HsingYuan Lo
Browse files

Expose service changed event to application (2/3)

Handle service changed event from GattService

Bug: 154056389
Tag: #feature
Test: test service changed scenario
Change-Id: If56dcbd7cf17b23c88cceb9c67c5d75b21320965
parent a4d7db20
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -688,6 +688,31 @@ public final class BluetoothGatt implements BluetoothProfile {
                        }
                    });
                }

                /**
                 * Callback invoked when service changed event is received
                 * @hide
                 */
                @Override
                public void onServiceChanged(String address) {
                    if (DBG) {
                        Log.d(TAG, "onServiceChanged() - Device=" + address);
                    }

                    if (!address.equals(mDevice.getAddress())) {
                        return;
                    }

                    runOrQueueCallback(new Runnable() {
                        @Override
                        public void run() {
                            final BluetoothGattCallback callback = mCallback;
                            if (callback != null) {
                                callback.onServiceChanged(BluetoothGatt.this);
                            }
                        }
                    });
                }
            };

    /*package*/ BluetoothGatt(IBluetoothGatt iGatt, BluetoothDevice device,
+13 −0
Original line number Diff line number Diff line
@@ -194,4 +194,17 @@ public abstract class BluetoothGattCallback {
    public void onConnectionUpdated(BluetoothGatt gatt, int interval, int latency, int timeout,
            int status) {
    }

    /**
     * Callback indicating service changed event is received
     *
     * <p>Receiving this event means that the GATT database is out of sync with
     * the remote device. {@link BluetoothGatt#discoverServices} should be
     * called to re-discover the services.
     *
     * @param gatt GATT client involved
     * @hide
     */
    public void onServiceChanged(BluetoothGatt gatt) {
    }
}