From 043251a8bca898c87bc043d51bf12fe0ba4acf25 Mon Sep 17 00:00:00 2001 From: Andrei Emeltchenko Date: Thu, 31 Oct 2013 14:42:35 +0200 Subject: [PATCH] android/daemon: Fix not reporting scan mode to Java After set_adapter_property() higher layer expects callback to be returned even if property is not changes. Otherwise Java timeouts and reset Bluetooth enetring to the loop. ... BluetoothAdapterState( 2850): Timeout will setting scan mode.. Continuing with disable... ... --- android/adapter.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/android/adapter.c b/android/adapter.c index 7baf3567c..c7e97d4c5 100644 --- a/android/adapter.c +++ b/android/adapter.c @@ -629,21 +629,21 @@ static uint8_t set_scan_mode(void *buf, uint16_t len) switch (*mode) { case HAL_ADAPTER_SCAN_MODE_NONE: if (!cur_conn && !cur_disc) - return HAL_STATUS_DONE; + goto done; conn = false; disc = false; break; case HAL_ADAPTER_SCAN_MODE_CONN: if (cur_conn && !cur_disc) - return HAL_STATUS_DONE; + goto done; conn = true; disc = false; break; case HAL_ADAPTER_SCAN_MODE_CONN_DISC: if (cur_conn && cur_disc) - return HAL_STATUS_DONE; + goto done; conn = true; disc = true; @@ -663,6 +663,12 @@ static uint8_t set_scan_mode(void *buf, uint16_t len) } return HAL_STATUS_SUCCESS; + +done: + /* Android expects property changed callback */ + scan_mode_changed(); + + return HAL_STATUS_DONE; } static uint8_t set_property(void *buf, uint16_t len) -- 2.47.3