From f15acf1b1a67ac861970feed835f86ee9d428d0b Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sun, 26 Nov 2023 14:08:05 -0600 Subject: [PATCH] Reduce duplicate code for Bluetooth Advertisements (#738) --- aioesphomeapi/client.py | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/aioesphomeapi/client.py b/aioesphomeapi/client.py index c652c01..9d233ad 100644 --- a/aioesphomeapi/client.py +++ b/aioesphomeapi/client.py @@ -483,6 +483,14 @@ class APIClient: return resp + def _unsub_bluetooth_advertisements( + self, unsub_callback: Callable[[], None] + ) -> None: + """Unsubscribe Bluetooth advertisements if connected.""" + if self._connection is not None: + unsub_callback() + self._connection.send_message(UnsubscribeBluetoothLEAdvertisementsRequest()) + async def subscribe_bluetooth_le_advertisements( self, on_bluetooth_le_advertisement: Callable[[BluetoothLEAdvertisement], None] ) -> Callable[[], None]: @@ -494,15 +502,7 @@ class APIClient: ), (BluetoothLEAdvertisementResponse,), ) - - def unsub() -> None: - if self._connection is not None: - unsub_callback() - self._connection.send_message( - UnsubscribeBluetoothLEAdvertisementsRequest() - ) - - return unsub + return partial(self._unsub_bluetooth_advertisements, unsub_callback) async def subscribe_bluetooth_le_raw_advertisements( self, on_advertisements: Callable[[list[BluetoothLERawAdvertisement]], None] @@ -514,15 +514,7 @@ class APIClient: partial(on_ble_raw_advertisement_response, on_advertisements), (BluetoothLERawAdvertisementsResponse,), ) - - def unsub() -> None: - if self._connection is not None: - unsub_callback() - self._connection.send_message( - UnsubscribeBluetoothLEAdvertisementsRequest() - ) - - return unsub + return partial(self._unsub_bluetooth_advertisements, unsub_callback) async def subscribe_bluetooth_connections_free( self, on_bluetooth_connections_free_update: Callable[[int, int], None]