Bug 1029386: Split Bluedroid start/stop code, r=shuang

This patch prepares refactoring of the Bluedroid start and stop
code towards an asynchronous design.
This commit is contained in:
Thomas Zimmermann 2014-07-03 09:51:40 +02:00
Родитель 2ace39db13
Коммит e11fd99785
1 изменённых файлов: 32 добавлений и 6 удалений

Просмотреть файл

@ -815,7 +815,7 @@ EnableInternal()
}
static nsresult
StartStopGonkBluetooth(bool aShouldEnable)
StartGonkBluetooth()
{
MOZ_ASSERT(NS_IsMainThread());
@ -824,17 +824,43 @@ StartStopGonkBluetooth(bool aShouldEnable)
BluetoothService* bs = BluetoothService::Get();
NS_ENSURE_TRUE(bs, NS_ERROR_FAILURE);
if (bs->IsEnabled() == aShouldEnable) {
if (bs->IsEnabled()) {
// Keep current enable status
nsRefPtr<nsRunnable> runnable =
new BluetoothService::ToggleBtAck(aShouldEnable);
new BluetoothService::ToggleBtAck(true);
if (NS_FAILED(NS_DispatchToMainThread(runnable))) {
BT_WARNING("Failed to dispatch to main thread!");
}
return NS_OK;
}
int ret = aShouldEnable ? EnableInternal() : sBtInterface->Disable();
int ret = EnableInternal();
NS_ENSURE_TRUE(ret == BT_STATUS_SUCCESS, NS_ERROR_FAILURE);
return NS_OK;
}
static nsresult
StopGonkBluetooth()
{
MOZ_ASSERT(NS_IsMainThread());
NS_ENSURE_TRUE(sBtInterface, NS_ERROR_FAILURE);
BluetoothService* bs = BluetoothService::Get();
NS_ENSURE_TRUE(bs, NS_ERROR_FAILURE);
if (!bs->IsEnabled()) {
// Keep current enable status
nsRefPtr<nsRunnable> runnable =
new BluetoothService::ToggleBtAck(false);
if (NS_FAILED(NS_DispatchToMainThread(runnable))) {
BT_WARNING("Failed to dispatch to main thread!");
}
return NS_OK;
}
int ret = sBtInterface->Disable();
NS_ENSURE_TRUE(ret == BT_STATUS_SUCCESS, NS_ERROR_FAILURE);
return NS_OK;
@ -889,7 +915,7 @@ BluetoothServiceBluedroid::StartInternal()
{
MOZ_ASSERT(NS_IsMainThread());
nsresult ret = StartStopGonkBluetooth(true);
nsresult ret = StartGonkBluetooth();
if (NS_FAILED(ret)) {
nsRefPtr<nsRunnable> runnable =
new BluetoothService::ToggleBtAck(false);
@ -907,7 +933,7 @@ BluetoothServiceBluedroid::StopInternal()
{
MOZ_ASSERT(NS_IsMainThread());
nsresult ret = StartStopGonkBluetooth(false);
nsresult ret = StopGonkBluetooth();
if (NS_FAILED(ret)) {
nsRefPtr<nsRunnable> runnable =
new BluetoothService::ToggleBtAck(true);