Filter various callbacks in BluetoothPhoneService

The BT spec is extremely strict on state updates which conflicts with
Telecom's architecture which often sends multiple non-atomic callbacks
for a single UI change. Filter out certain updates in
BluetoothPhoneService to eliminate redundant/spurious headset state
updates that can cause problems in BT devices.

One of the scenarios is described below for CDMA conference calls.

1) Call 1 and Call 2 are being merged into conference Call 3.
2) Call 1 has its parent set to Call 3, but Call 2 does not have
a parent yet.
3) updateHeadsetWithCallState now thinks that there are two active
calls (Call 2 and Call 3) when there is actually only one active
call (Call 3).

Bug: 18053043
Change-Id: I1766b430c23018638dbc1b88956d905c013bb8ad
1 file changed