Add workaround for broken vendor camera on/off requests.
authorTyler Gunn <tgunn@google.com>
Thu, 11 May 2017 00:46:06 +0000 (17:46 -0700)
committerTyler Gunn <tgunn@google.com>
Mon, 15 May 2017 20:14:18 +0000 (13:14 -0700)
commit3aadc8a6c9c0b681587ad61aee73138b87c0ae35
tree14823cbcf9bd191204b9ea1dd38f2b87c2eee297
parent96e2d85ef5300fdac5acf89daabfa2584f969d0d
Add workaround for broken vendor camera on/off requests.

Scenario: A and B are in video call.
A goes to the background, pausing the video.
B attempts to turn off their camera.
The request fails to be interpreted by vendor code.

Reason: This SHOULD really be a request to go from/to:
Audio/TX/RX/Paused --> Audio/RX/Paused
However, it MUST be sent as:
Audio/TX/RX/Paused --> Audio/RX

The introduction of the VideoPauseTracker in N caused the request to be
sent in the former correct format rather than the latter incorrect format.

The VideoPauseTracker attempts to ensure that a request to pause sent by
the framework vs the incall ui are kept in sync (we use pause to disable
video on a call when the data limit is reached).  In the process of ensuring
pause and resume requests were handled properly, this code was
fixing the malformed request.

Added a workaround to the code to ensure the requests remain in the same
broken format vendor code depends on.

Test: Manual, unit
Bug: 35304446
Change-Id: I9b974542234d3f567aba3f2996a815e39bc8963e
src/java/com/android/ims/internal/ImsVideoCallProviderWrapper.java