am c0384b6b: DO NOT MERGE: Move advetise clean up to callback code. fixes b/13289050 Cherrypick from master to fix b/13289050

* commit 'c0384b6b18617cc395814c5b20077955a185e392':
  DO NOT MERGE: Move advetise clean up to callback code. fixes b/13289050 Cherrypick from master to fix b/13289050
This commit is contained in:
Wei Wang
2014-03-20 03:41:47 +00:00
committed by Android Git Automerger

View File

@@ -593,7 +593,6 @@ public final class BluetoothAdapter {
return false;
}
mAdvertisingGattCallback.stopAdvertising();
mAdvertisingGattCallback = null;
return true;
} catch (RemoteException e) {
Log.e(TAG, "", e);
@@ -1797,15 +1796,12 @@ public final class BluetoothAdapter {
try {
IBluetoothGatt iGatt = adapter.getBluetoothManager().getBluetoothGatt();
iGatt.stopAdvertising();
Log.d(TAG, "unregistering client " + mLeHandle);
iGatt.unregisterClient(mLeHandle);
} catch (RemoteException e) {
Log.e(TAG, "Failed to stop advertising and unregister" + e);
Log.e(TAG, "Failed to stop advertising" + e);
}
} else {
Log.e(TAG, "stopAdvertising, BluetoothAdapter is null");
}
mLeHandle = -1;
notifyAll();
}
}
@@ -1995,6 +1991,26 @@ public final class BluetoothAdapter {
if (advertiseState == STATE_ADVERTISE_STARTED) {
mAdvertiseCallback.onAdvertiseStart(status);
} else {
synchronized (this) {
if (status == ADVERTISE_CALLBACK_SUCCESS) {
BluetoothAdapter adapter = mBluetoothAdapter.get();
if (adapter != null) {
try {
IBluetoothGatt iGatt =
adapter.getBluetoothManager().getBluetoothGatt();
Log.d(TAG, "unregistering client " + mLeHandle);
iGatt.unregisterClient(mLeHandle);
// Reset advertise app handle.
mLeHandle = -1;
adapter.mAdvertisingGattCallback = null;
} catch (RemoteException e) {
Log.e(TAG, "Failed to unregister client" + e);
}
} else {
Log.e(TAG, "cannot unregister client, BluetoothAdapter is null");
}
}
}
mAdvertiseCallback.onAdvertiseStop(status);
}
}