Closed Bug 789434 Opened 12 years ago Closed 12 years ago

[b2g-bluetooth] BluetoothManager can't receive signals from DBus after disabling

Categories

(Core :: DOM: Device Interfaces, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 792819

People

(Reporter: gyeh, Unassigned)

References

Details

When bluetooth is disabled, StopInternal() is invoked and clear the entire table "mBluetoothSignalObserverTable", which means the entry of BluetoothManager is also removed from the table, and the manager will not receive signals like adapteradded then.

Two ways to fix this issue.

First, we register manager again right after clearing the table.

Second, when we restart/re-enable bluetooth, register bluetooth manager again. Note that the bluetooth manager has been registered when it is created, so we shouldn't register at the first time of enabling bluetooth.

Any idea?
I think this issue should be fixed in bug 764559. In bug 764559, the implementation is quite similar with the second solution. 

When the bluetooth is turned on for the first time after creating BluetoothManager, the object path of BluetoothManager should have been registered and variable isEnabled is true. So we won't double-register it in function HandleMozsettingChanged(). 

On the contrast, if the bluetooth is turned off and then turned on, we need to register in function HandleMozsettingChanged() because the table was cleared in StopInternal(). At this time, the value of isEnabled is false and the object path of BluetoothManager will be registered here.

I know that this solution is not very intuitive, any other suggestions? Or we'd like to take the first solution?
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.