Loading media/java/android/media/AudioFocusInfo.java +6 −0 Original line number Diff line number Diff line Loading @@ -130,6 +130,12 @@ public final class AudioFocusInfo implements Parcelable { */ public int getFlags() { return mFlags; } /** @hide */ public boolean isLossReceivedTransient() { return mLossReceived == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT || mLossReceived == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK; } @Override public int describeContents() { return 0; Loading services/core/java/com/android/server/audio/MediaFocusControl.java +18 −3 Original line number Diff line number Diff line Loading @@ -407,7 +407,21 @@ public class MediaFocusControl implements PlayerFocusEnforcer { } } // Also handle focus restoration for apps in the multi-focus list. if (mMultiAudioFocusEnabled && !mMultiAudioFocusList.isEmpty()) { if (audioFocusDesktop()) { final boolean canReassignAudioFocus = canReassignAudioFocus(); for (FocusRequester multifr : mMultiAudioFocusList) { // Check if the requester needs its focus restored. This is true if: // - focus can be reassigned (e.g. no call) AND it had a transient loss, // - OR it's a locked focus owner. if ((canReassignAudioFocus && multifr.toAudioFocusInfo().isLossReceivedTransient()) || isLockedFocusOwner(multifr)) { multifr.handleFocusGain(AudioManager.AUDIOFOCUS_GAIN); } } } else { for (FocusRequester multifr : mMultiAudioFocusList) { if (isLockedFocusOwner(multifr)) { multifr.handleFocusGain(AudioManager.AUDIOFOCUS_GAIN); Loading @@ -415,6 +429,7 @@ public class MediaFocusControl implements PlayerFocusEnforcer { } } } } /** * Focus is requested, propagate the associated loss throughout the stack. Loading Loading
media/java/android/media/AudioFocusInfo.java +6 −0 Original line number Diff line number Diff line Loading @@ -130,6 +130,12 @@ public final class AudioFocusInfo implements Parcelable { */ public int getFlags() { return mFlags; } /** @hide */ public boolean isLossReceivedTransient() { return mLossReceived == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT || mLossReceived == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK; } @Override public int describeContents() { return 0; Loading
services/core/java/com/android/server/audio/MediaFocusControl.java +18 −3 Original line number Diff line number Diff line Loading @@ -407,7 +407,21 @@ public class MediaFocusControl implements PlayerFocusEnforcer { } } // Also handle focus restoration for apps in the multi-focus list. if (mMultiAudioFocusEnabled && !mMultiAudioFocusList.isEmpty()) { if (audioFocusDesktop()) { final boolean canReassignAudioFocus = canReassignAudioFocus(); for (FocusRequester multifr : mMultiAudioFocusList) { // Check if the requester needs its focus restored. This is true if: // - focus can be reassigned (e.g. no call) AND it had a transient loss, // - OR it's a locked focus owner. if ((canReassignAudioFocus && multifr.toAudioFocusInfo().isLossReceivedTransient()) || isLockedFocusOwner(multifr)) { multifr.handleFocusGain(AudioManager.AUDIOFOCUS_GAIN); } } } else { for (FocusRequester multifr : mMultiAudioFocusList) { if (isLockedFocusOwner(multifr)) { multifr.handleFocusGain(AudioManager.AUDIOFOCUS_GAIN); Loading @@ -415,6 +429,7 @@ public class MediaFocusControl implements PlayerFocusEnforcer { } } } } /** * Focus is requested, propagate the associated loss throughout the stack. Loading