merge in lmp-mr1-release history after reset to lmp-mr1-dev
diff --git a/jni/com_android_bluetooth_btservice_AdapterService.cpp b/jni/com_android_bluetooth_btservice_AdapterService.cpp
index ea765b5..f780364 100644
--- a/jni/com_android_bluetooth_btservice_AdapterService.cpp
+++ b/jni/com_android_bluetooth_btservice_AdapterService.cpp
@@ -900,7 +900,7 @@
     return result;
 }
 
-static jboolean isConnectedNative(JNIEnv* env, jobject obj, jbyteArray address) {
+static int getConnectionStateNative(JNIEnv* env, jobject obj, jbyteArray address) {
     ALOGV("%s:",__FUNCTION__);
     if (!sBluetoothInterface) return JNI_FALSE;
 
@@ -913,7 +913,7 @@
     int ret = sBluetoothInterface->get_connection_state((bt_bdaddr_t *)addr);
     env->ReleaseByteArrayElements(address, addr, 0);
 
-    return (ret != 0 ? JNI_TRUE : JNI_FALSE);
+    return ret;
 }
 
 static jboolean pinReplyNative(JNIEnv *env, jobject obj, jbyteArray address, jboolean accept,
@@ -1231,7 +1231,7 @@
     {"createBondNative", "([BI)Z", (void*) createBondNative},
     {"removeBondNative", "([B)Z", (void*) removeBondNative},
     {"cancelBondNative", "([B)Z", (void*) cancelBondNative},
-    {"isConnectedNative", "([B)Z", (void*) isConnectedNative},
+    {"getConnectionStateNative", "([B)I", (void*) getConnectionStateNative},
     {"pinReplyNative", "([BZI[B)Z", (void*) pinReplyNative},
     {"sspReplyNative", "([BIZI)Z", (void*) sspReplyNative},
     {"getRemoteServicesNative", "([B)Z", (void*) getRemoteServicesNative},
diff --git a/src/com/android/bluetooth/btservice/AdapterService.java b/src/com/android/bluetooth/btservice/AdapterService.java
index 404ea6d..190be11 100644
--- a/src/com/android/bluetooth/btservice/AdapterService.java
+++ b/src/com/android/bluetooth/btservice/AdapterService.java
@@ -871,12 +871,10 @@
             return service.getBondState(device);
         }
 
-        public boolean isConnected(BluetoothDevice device) {
+        public int getConnectionState(BluetoothDevice device) {
             AdapterService service = getService();
-            if (service == null) {
-                return false;
-            }
-            return service.isConnected(device);
+            if (service == null) return 0;
+            return service.getConnectionState(device);
         }
 
         public String getRemoteName(BluetoothDevice device) {
@@ -1475,10 +1473,10 @@
         return deviceProp.getBondState();
     }
 
-    boolean isConnected(BluetoothDevice device) {
+    int getConnectionState(BluetoothDevice device) {
         enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission");
         byte[] addr = Utils.getBytesFromAddress(device.getAddress());
-        return isConnectedNative(addr);
+        return getConnectionStateNative(addr);
     }
 
      String getRemoteName(BluetoothDevice device) {
@@ -1891,7 +1889,7 @@
     /*package*/ native boolean removeBondNative(byte[] address);
     /*package*/ native boolean cancelBondNative(byte[] address);
 
-    /*package*/ native boolean isConnectedNative(byte[] address);
+    /*package*/ native int getConnectionStateNative(byte[] address);
 
     private native boolean startDiscoveryNative();
     private native boolean cancelDiscoveryNative();