am 9ab05fff: Merge "Fix bug 2565463 Ensure an object cannot appear twice in the AudioFocus stack. Enforce parameter check in AudioManager.requestAudioFocus() Typo correction in AudioService.unregisterMediaButtonEventReceiver()" into froyo
Merge commit '9ab05fff41e983c9b3175096c320aefced81276b' into froyo-plus-aosp * commit '9ab05fff41e983c9b3175096c320aefced81276b': Fix bug 2565463 Ensure an object cannot appear twice in the
This commit is contained in:
@@ -1437,6 +1437,11 @@ public class AudioManager {
|
|||||||
*/
|
*/
|
||||||
public int requestAudioFocus(OnAudioFocusChangeListener l, int streamType, int durationHint) {
|
public int requestAudioFocus(OnAudioFocusChangeListener l, int streamType, int durationHint) {
|
||||||
int status = AUDIOFOCUS_REQUEST_FAILED;
|
int status = AUDIOFOCUS_REQUEST_FAILED;
|
||||||
|
if ((durationHint < AUDIOFOCUS_GAIN) || (durationHint > AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK))
|
||||||
|
{
|
||||||
|
Log.e(TAG, "Invalid duration hint, audio focus request denied");
|
||||||
|
return status;
|
||||||
|
}
|
||||||
registerAudioFocusListener(l);
|
registerAudioFocusListener(l);
|
||||||
//TODO protect request by permission check?
|
//TODO protect request by permission check?
|
||||||
IAudioService service = getService();
|
IAudioService service = getService();
|
||||||
|
|||||||
@@ -2063,6 +2063,9 @@ public class AudioService extends IAudioService.Stub {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// focus requester might already be somewhere below in the stack, remove it
|
||||||
|
removeFocusStackEntry(clientId, false);
|
||||||
|
|
||||||
// push focus requester at the top of the audio focus stack
|
// push focus requester at the top of the audio focus stack
|
||||||
mFocusStack.push(new FocusStackEntry(mainStreamType, focusChangeHint, false, fd, cb,
|
mFocusStack.push(new FocusStackEntry(mainStreamType, focusChangeHint, false, fd, cb,
|
||||||
clientId));
|
clientId));
|
||||||
@@ -2215,7 +2218,7 @@ public class AudioService extends IAudioService.Stub {
|
|||||||
|
|
||||||
/** see AudioManager.unregisterMediaButtonEventReceiver(ComponentName eventReceiver) */
|
/** see AudioManager.unregisterMediaButtonEventReceiver(ComponentName eventReceiver) */
|
||||||
public void unregisterMediaButtonEventReceiver(ComponentName eventReceiver) {
|
public void unregisterMediaButtonEventReceiver(ComponentName eventReceiver) {
|
||||||
Log.i(TAG, " Remote Control registerMediaButtonEventReceiver() for " + eventReceiver);
|
Log.i(TAG, " Remote Control unregisterMediaButtonEventReceiver() for " + eventReceiver);
|
||||||
|
|
||||||
synchronized(mRCStack) {
|
synchronized(mRCStack) {
|
||||||
removeMediaButtonReceiver(eventReceiver);
|
removeMediaButtonReceiver(eventReceiver);
|
||||||
|
|||||||
Reference in New Issue
Block a user