Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 707644d8 authored by Tyler Gunn's avatar Tyler Gunn
Browse files

Enhance ImsPhoneCall/Tracker logging and fix swap on bad state change

ImsPhoneConnection:
- Added check in update() to ensure we skip the update if we are putting
the call into an ACTIVE state, but there is a pending request to
hold the ImsCall.  This is really a bug in the RIL; we are NOT getting
the callSessionHeld callback when putting a recently formed conference
call into the background.  Without this check, we end up detaching the
ImsPhoneConnection from the "background" ImsPhoneCall and attaching it
to the "foreground" ImsPhoneConnection, which causes a scenario where there
are multiple active calls at the same time.  I will file a bug against
the RIL to fix this missing state reporting.

ImsPhoneCallTracker:
- in switchWaitingOrHoldingAndActive check for the case where we are
holding a foreground call and reset the flag indicating we're expecting
to see a resume.  This wasn't causing the bug I was working on but I
can see how it might have undesirable effects.
- added some extra debug logging to help track down hold/resumes
- fixed some BAD logic in onCallMerged added in change ID
I94abbae37eb6773f1824c0e5c3a267d345610ada.  This code was swapping the
ImsPhoneCall references for foreground and background directly in order
to ensure that the right calls were passed in to ImsPhoneCall#merge.
The ImsPhoneCallTracker assumes the ImsPhoneCalls mForegroundCall and
mBackgroundCall will always stay the same; ImsPhoneConnections are attached
and detached from these ImsPhoneCalls, but the original references must
stay the same.  Fixed up that code to ensure it does what its supposed to
without messing up the original references.
- Added logState method which can be turned on via debug flag to periodically
dump verbose state of the calls tracked my ImsPhoneCallTracker.  I had
a hard time figuring out what was going on and this helped a lot.

ImsPhoneCall:
- Added enhanced logging when ImsPhoneConnections are moved between the
foreground, background, etc calls.  Also added knowledge of whether an
ImsPhoneCall is a foreground or background call so that logging can be made
more clear.

- After operations which change which calls are FG or BG, calling
ImsPhoneCallTracker.logState() which will log the full ImsPhoneCallTracker
state for even easier debugging (but only if the stop-ship flag is on).

Bug: 22173672
Change-Id: I704af9522a81ee036f290c7c723de4c3602229fd
parent c8582255
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment