OSDN Git Service

A2DP MediaSession active state management and NPE
authorSanket Agarwal <sanketa@google.com>
Fri, 22 Apr 2016 20:06:24 +0000 (13:06 -0700)
committerSanket Agarwal <sanketa@google.com>
Fri, 22 Apr 2016 23:56:17 +0000 (23:56 +0000)
commitffb10b682610a24d5c54e8828c11276fe5703d65
tree422cd72bf1bb964dfe699a321d02d351608e775b
parenta73f7ac84dbe79af9df90c3d7f0d5da7ab814ba1
A2DP MediaSession active state management and NPE

UIs (such as SystemUI) depend on MediaSession.isActive state to
determine whether to show it on the overview (or shades). Currently we
are keeping the session active ever since the first bluetooth connect (A2DP) happens.

This change makes the session to be active when the device connects and
the first play happens (i.e. the play state of remote device
irrespective of who initated it) and in-active when device disconnects.

Also, avoid a NPE that may happen due to races between delay in
broadcasts and accesing bluetooth state machine.

Bug: b/28345602
Bug: b/28330860

Change-Id: Id7686308ada0b608b959258d137772ee5f24c18f
(cherry picked from commit faa30bec93650414fb90b60b5a488b32dd54b9ac)
src/com/android/bluetooth/a2dpsink/mbs/A2dpMediaBrowserService.java
src/com/android/bluetooth/hfpclient/connserv/HfpClientConnectionService.java