summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGaurav Asati <gasati@codeaurora.org>2014-05-28 11:33:14 +0530
committerSteve Kondik <shade@chemlab.org>2014-10-11 16:31:43 -0700
commit869566a941148a72175be5f172fcf139b40e112a (patch)
treee8ad38a195921586baa18fe23ff0dcc105b8204d
parent3219c40c1c79b855f7b3f83fbcad015adb9de24c (diff)
downloadandroid_packages_apps_Bluetooth-869566a941148a72175be5f172fcf139b40e112a.tar.gz
android_packages_apps_Bluetooth-869566a941148a72175be5f172fcf139b40e112a.tar.bz2
android_packages_apps_Bluetooth-869566a941148a72175be5f172fcf139b40e112a.zip
Bluetooth: Delay timeout for ConnectOtherProfile.
Some devices reject connection when connection is initiated after 6 secs, delay connection timeout for such devices to 10 secs. Change-Id: I676b98ae64085a45bd6ecb9a6aeac7921a009e84 CRs-Fixed: 671762
-rw-r--r--src/com/android/bluetooth/btservice/AdapterService.java25
1 files changed, 20 insertions, 5 deletions
diff --git a/src/com/android/bluetooth/btservice/AdapterService.java b/src/com/android/bluetooth/btservice/AdapterService.java
index 575031750..9d5befdbb 100644
--- a/src/com/android/bluetooth/btservice/AdapterService.java
+++ b/src/com/android/bluetooth/btservice/AdapterService.java
@@ -78,6 +78,7 @@ public class AdapterService extends Service {
private static final String TAG = "BluetoothAdapterService";
private static final boolean DBG = true;
private static final boolean TRACE_REF = true;
+ private static final String delayConnectTimeoutDevice[] = {"00:23:3D"}; // volkswagen carkit
//For Debugging only
private static int sRefCount=0;
@@ -414,12 +415,13 @@ public class AdapterService extends Service {
if (DBG)debugLog("cleanup() done");
}
- private static final int MESSAGE_PROFILE_SERVICE_STATE_CHANGED =1;
- private static final int MESSAGE_PROFILE_CONNECTION_STATE_CHANGED=20;
+ private static final int MESSAGE_PROFILE_SERVICE_STATE_CHANGED = 1;
+ private static final int MESSAGE_PROFILE_CONNECTION_STATE_CHANGED = 20;
private static final int MESSAGE_CONNECT_OTHER_PROFILES = 30;
- private static final int CONNECT_OTHER_PROFILES_TIMEOUT= 6000;
+ private static final int CONNECT_OTHER_PROFILES_TIMEOUT = 6000;
+ private static final int CONNECT_OTHER_PROFILES_TIMEOUT_DEYALED = 10000;
private static final int MESSAGE_AUTO_CONNECT_PROFILES = 50;
- private static final int AUTO_CONNECT_PROFILES_TIMEOUT= 500;
+ private static final int AUTO_CONNECT_PROFILES_TIMEOUT = 500;
private final Handler mHandler = new Handler() {
@Override
@@ -1219,12 +1221,25 @@ public class AdapterService extends Service {
}
public void connectOtherProfile(BluetoothDevice device, int firstProfileStatus){
+ String deviceAddress = device.getAddress();
+ boolean isConnectionTimeoutDelayed = false;
+
+ for (int i = 0; i < delayConnectTimeoutDevice.length;i++) {
+ if (deviceAddress.indexOf(delayConnectTimeoutDevice[i]) == 0) {
+ isConnectionTimeoutDelayed = true;
+ }
+ }
if ((mHandler.hasMessages(MESSAGE_CONNECT_OTHER_PROFILES) == false) &&
(isQuietModeEnabled()== false)){
Message m = mHandler.obtainMessage(MESSAGE_CONNECT_OTHER_PROFILES);
m.obj = device;
m.arg1 = (int)firstProfileStatus;
- mHandler.sendMessageDelayed(m,CONNECT_OTHER_PROFILES_TIMEOUT);
+ if (isConnectionTimeoutDelayed) {
+ mHandler.sendMessageDelayed(m,CONNECT_OTHER_PROFILES_TIMEOUT_DEYALED);
+ }
+ else {
+ mHandler.sendMessageDelayed(m,CONNECT_OTHER_PROFILES_TIMEOUT);
+ }
}
}