am c7dd6640: Merge "Fix audio focus evaluation order for display update" into jb-mr1.1-dev
* commit 'c7dd6640246841672a60e0c0ec4d9544372e1f84': Fix audio focus evaluation order for display update
This commit is contained in:
@@ -5088,18 +5088,23 @@ public class AudioService extends IAudioService.Stub implements OnFinished {
|
||||
// top of the stack for the media button event receivers : simply using the top of the
|
||||
// stack would make the entry disappear from the RemoteControlDisplay in conditions such as
|
||||
// notifications playing during music playback.
|
||||
// crawl the AudioFocus stack until an entry is found with the following characteristics:
|
||||
// Crawl the AudioFocus stack from the top until an entry is found with the following
|
||||
// characteristics:
|
||||
// - focus gain on STREAM_MUSIC stream
|
||||
// - non-transient focus gain on a stream other than music
|
||||
FocusStackEntry af = null;
|
||||
Iterator<FocusStackEntry> stackIterator = mFocusStack.iterator();
|
||||
while(stackIterator.hasNext()) {
|
||||
FocusStackEntry fse = (FocusStackEntry)stackIterator.next();
|
||||
if ((fse.mStreamType == AudioManager.STREAM_MUSIC)
|
||||
|| (fse.mFocusChangeType == AudioManager.AUDIOFOCUS_GAIN)) {
|
||||
af = fse;
|
||||
break;
|
||||
try {
|
||||
for (int index = mFocusStack.size()-1; index >= 0; index--) {
|
||||
FocusStackEntry fse = mFocusStack.elementAt(index);
|
||||
if ((fse.mStreamType == AudioManager.STREAM_MUSIC)
|
||||
|| (fse.mFocusChangeType == AudioManager.AUDIOFOCUS_GAIN)) {
|
||||
af = fse;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (ArrayIndexOutOfBoundsException e) {
|
||||
Log.e(TAG, "Wrong index accessing audio focus stack when updating RCD: " + e);
|
||||
af = null;
|
||||
}
|
||||
if (af == null) {
|
||||
clearRemoteControlDisplay_syncAfRcs();
|
||||
@@ -5120,6 +5125,7 @@ public class AudioService extends IAudioService.Stub implements OnFinished {
|
||||
clearRemoteControlDisplay_syncAfRcs();
|
||||
return;
|
||||
}
|
||||
|
||||
// refresh conditions were verified: update the remote controls
|
||||
// ok to call: synchronized mAudioFocusLock then on mRCStack, mRCStack is not empty
|
||||
updateRemoteControlDisplay_syncAfRcs(infoChangedFlags);
|
||||
|
||||
Reference in New Issue
Block a user