Callback declaration was changed in Android 5 so parameters order must be updated. Android Framework was also updated so we don't need workaround for it in Android 5. --- android/hal-pan.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/android/hal-pan.c b/android/hal-pan.c index d9e042a..56fd340 100644 --- a/android/hal-pan.c +++ b/android/hal-pan.c @@ -19,6 +19,7 @@ #include <stddef.h> #include <string.h> +#include "hal-utils.h" #include "hal-log.h" #include "hal.h" #include "hal-msg.h" @@ -45,19 +46,25 @@ static void handle_ctrl_state(void *buf, uint16_t len, int fd) { struct hal_ev_pan_ctrl_state *ev = buf; +#if ANDROID_VERSION >= PLATFORM_VER(5, 0, 0) + if (cbs->control_state_cb) + cbs->control_state_cb(ev->state, ev->local_role, ev->status, + (char *)ev->name); +#else /* - * FIXME: Callback declared in bt_pan.h is 'typedef void + * Callback declared in bt_pan.h is 'typedef void * (*btpan_control_state_callback)(btpan_control_state_t state, * bt_status_t error, int local_role, const char* ifname); * But PanService.Java defined it wrong way. * private void onControlStateChanged(int local_role, int state, * int error, String ifname). * First and third parameters are misplaced, so sending data according - * to PanService.Java, fix this if issue fixed in PanService.Java. + * to PanService.Java. */ if (cbs->control_state_cb) cbs->control_state_cb(ev->local_role, ev->state, ev->status, (char *)ev->name); +#endif } /* -- 1.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html