diff options
author | Jaikumar Ganesh <jaikumar@google.com> | 2011-06-21 13:24:46 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2011-06-21 13:24:46 -0700 |
commit | 9e5d0de9a333683533a021e9733e824cac666d18 (patch) | |
tree | acc84d931b1d9159890ab40615a76d86902a8620 /core/jni | |
parent | 6f1a8edcc00db40a8ad300e15a23f7f1de298c3b (diff) | |
parent | b38fa2a0ac2bde56504929de6a3dd61ac723958e (diff) | |
download | frameworks_base-9e5d0de9a333683533a021e9733e824cac666d18.zip frameworks_base-9e5d0de9a333683533a021e9733e824cac666d18.tar.gz frameworks_base-9e5d0de9a333683533a021e9733e824cac666d18.tar.bz2 |
am b38fa2a0: Merge "DO NOT MERGE Incoming Bluetooth Connection requests - dialog." into gingerbread
* commit 'b38fa2a0ac2bde56504929de6a3dd61ac723958e':
DO NOT MERGE Incoming Bluetooth Connection requests - dialog.
Diffstat (limited to 'core/jni')
-rw-r--r-- | core/jni/android_server_BluetoothEventLoop.cpp | 28 | ||||
-rw-r--r-- | core/jni/android_server_BluetoothService.cpp | 30 |
2 files changed, 35 insertions, 23 deletions
diff --git a/core/jni/android_server_BluetoothEventLoop.cpp b/core/jni/android_server_BluetoothEventLoop.cpp index de003df..73dfdbe 100644 --- a/core/jni/android_server_BluetoothEventLoop.cpp +++ b/core/jni/android_server_BluetoothEventLoop.cpp @@ -106,7 +106,7 @@ static void classInitNative(JNIEnv* env, jclass clazz) { "(Ljava/lang/String;Z)V"); method_onAgentAuthorize = env->GetMethodID(clazz, "onAgentAuthorize", - "(Ljava/lang/String;Ljava/lang/String;)Z"); + "(Ljava/lang/String;Ljava/lang/String;I)V"); method_onAgentOutOfBandDataAvailable = env->GetMethodID(clazz, "onAgentOutOfBandDataAvailable", "(Ljava/lang/String;)Z"); method_onAgentCancel = env->GetMethodID(clazz, "onAgentCancel", "()V"); @@ -917,29 +917,11 @@ DBusHandlerResult agent_event_filter(DBusConnection *conn, LOGV("... object_path = %s", object_path); LOGV("... uuid = %s", uuid); - bool auth_granted = - env->CallBooleanMethod(nat->me, method_onAgentAuthorize, - env->NewStringUTF(object_path), env->NewStringUTF(uuid)); + dbus_message_ref(msg); // increment refcount because we pass to java + env->CallBooleanMethod(nat->me, method_onAgentAuthorize, + env->NewStringUTF(object_path), env->NewStringUTF(uuid), + int(msg)); - // reply - if (auth_granted) { - DBusMessage *reply = dbus_message_new_method_return(msg); - if (!reply) { - LOGE("%s: Cannot create message reply\n", __FUNCTION__); - goto failure; - } - dbus_connection_send(nat->conn, reply, NULL); - dbus_message_unref(reply); - } else { - DBusMessage *reply = dbus_message_new_error(msg, - "org.bluez.Error.Rejected", "Authorization rejected"); - if (!reply) { - LOGE("%s: Cannot create message reply\n", __FUNCTION__); - goto failure; - } - dbus_connection_send(nat->conn, reply, NULL); - dbus_message_unref(reply); - } goto success; } else if (dbus_message_is_method_call(msg, "org.bluez.Agent", "OutOfBandAvailable")) { diff --git a/core/jni/android_server_BluetoothService.cpp b/core/jni/android_server_BluetoothService.cpp index daa59a6..be2e5f3 100644 --- a/core/jni/android_server_BluetoothService.cpp +++ b/core/jni/android_server_BluetoothService.cpp @@ -599,6 +599,35 @@ static jboolean setRemoteOutOfBandDataNative(JNIEnv *env, jobject object, jstrin return JNI_FALSE; } +static jboolean setAuthorizationNative(JNIEnv *env, jobject object, jstring address, + jboolean val, int nativeData) { +#ifdef HAVE_BLUETOOTH + LOGV(__FUNCTION__); + native_data_t *nat = get_native_data(env, object); + if (nat) { + DBusMessage *msg = (DBusMessage *)nativeData; + DBusMessage *reply; + if (val) { + reply = dbus_message_new_method_return(msg); + } else { + reply = dbus_message_new_error(msg, + "org.bluez.Error.Rejected", "Authorization rejected"); + } + if (!reply) { + LOGE("%s: Cannot create message reply D-Bus\n", __FUNCTION__); + dbus_message_unref(msg); + return JNI_FALSE; + } + + dbus_connection_send(nat->conn, reply, NULL); + dbus_message_unref(msg); + dbus_message_unref(reply); + return JNI_TRUE; + } +#endif + return JNI_FALSE; +} + static jboolean setPinNative(JNIEnv *env, jobject object, jstring address, jstring pin, int nativeData) { #ifdef HAVE_BLUETOOTH @@ -1029,6 +1058,7 @@ static JNINativeMethod sMethods[] = { (void *)setPairingConfirmationNative}, {"setPasskeyNative", "(Ljava/lang/String;II)Z", (void *)setPasskeyNative}, {"setRemoteOutOfBandDataNative", "(Ljava/lang/String;[B[BI)Z", (void *)setRemoteOutOfBandDataNative}, + {"setAuthorizationNative", "(Ljava/lang/String;ZI)Z", (void *)setAuthorizationNative}, {"setPinNative", "(Ljava/lang/String;Ljava/lang/String;I)Z", (void *)setPinNative}, {"cancelPairingUserInputNative", "(Ljava/lang/String;I)Z", (void *)cancelPairingUserInputNative}, |