Bug 889231 - [Bluetooth] Lock-up occurs when you make a call in no signal network state, r=echou

This commit is contained in:
Ben Tian 2013-07-02 16:53:21 +08:00
Родитель b5ce9bb471
Коммит 334078d88a
1 изменённых файлов: 13 добавлений и 9 удалений

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

@ -68,15 +68,19 @@ TelephonyListener::NotifyError(int32_t aCallIndex,
const nsAString& aError)
{
BluetoothHfpManager* hfp = BluetoothHfpManager::Get();
// In order to not miss any related call state transition.
// It's possible that 3G network signal lost for unknown reason.
// If a call is released abnormally, NotifyError() will be called,
// instead of CallStateChanged(). We need to reset the call array state
// via setting CALL_STATE_DISCONNECTED
hfp->HandleCallStateChanged(aCallIndex,
nsITelephonyProvider::CALL_STATE_DISCONNECTED,
EmptyString(), false, true);
NS_WARNING("Reset the call state due to call transition ends abnormally");
if (aCallIndex > 0) {
// In order to not miss any related call state transition.
// It's possible that 3G network signal lost for unknown reason.
// If a call is released abnormally, NotifyError() will be called,
// instead of CallStateChanged(). We need to reset the call array state
// via setting CALL_STATE_DISCONNECTED
hfp->HandleCallStateChanged(aCallIndex,
nsITelephonyProvider::CALL_STATE_DISCONNECTED,
EmptyString(), false, true);
NS_WARNING("Reset the call state due to call transition ends abnormally");
}
NS_WARNING(NS_ConvertUTF16toUTF8(aError).get());
return NS_OK;
}