From 5e59ca8ae4e29efb77acbd5513dcc109ea5dd2b4 Mon Sep 17 00:00:00 2001 From: Jaikumar Ganesh Date: Fri, 11 Sep 2009 12:16:19 -0700 Subject: Handle DisconnectRequested message sent by Bluez. --- core/jni/android_server_BluetoothEventLoop.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'core/jni') diff --git a/core/jni/android_server_BluetoothEventLoop.cpp b/core/jni/android_server_BluetoothEventLoop.cpp index 8fe7487..79a3247 100644 --- a/core/jni/android_server_BluetoothEventLoop.cpp +++ b/core/jni/android_server_BluetoothEventLoop.cpp @@ -45,6 +45,7 @@ static jmethodID method_onDeviceFound; static jmethodID method_onDeviceDisappeared; static jmethodID method_onDeviceCreated; static jmethodID method_onDeviceRemoved; +static jmethodID method_onDeviceDisconnectRequested; static jmethodID method_onCreatePairedDeviceResult; static jmethodID method_onGetDeviceServiceChannelResult; @@ -84,6 +85,8 @@ static void classInitNative(JNIEnv* env, jclass clazz) { "(Ljava/lang/String;)V"); method_onDeviceCreated = env->GetMethodID(clazz, "onDeviceCreated", "(Ljava/lang/String;)V"); method_onDeviceRemoved = env->GetMethodID(clazz, "onDeviceRemoved", "(Ljava/lang/String;)V"); + method_onDeviceDisconnectRequested = env->GetMethodID(clazz, "onDeviceDisconnectRequested", + "(Ljava/lang/String;)V"); method_onCreatePairedDeviceResult = env->GetMethodID(clazz, "onCreatePairedDeviceResult", "(Ljava/lang/String;I)V"); @@ -815,6 +818,14 @@ static DBusHandlerResult event_filter(DBusConnection *conn, DBusMessage *msg, str_array); } else LOG_AND_FREE_DBUS_ERROR_WITH_MSG(&err, msg); goto success; + } else if (dbus_message_is_signal(msg, + "org.bluez.Device", + "DisconnectRequested")) { + const char *remote_device_path = dbus_message_get_path(msg); + env->CallVoidMethod(nat->me, + method_onDeviceDisconnectRequested, + env->NewStringUTF(remote_device_path)); + goto success; } ret = a2dp_event_filter(msg, env); -- cgit v1.1