Loading media/java/android/media/AudioFocusInfo.java +12 −2 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ public final class AudioFocusInfo implements Parcelable { private final int mClientUid; private final String mClientId; private final String mPackageName; private final int mSdkTarget; private int mGainRequest; private int mLossReceived; private int mFlags; Loading @@ -49,7 +50,7 @@ public final class AudioFocusInfo implements Parcelable { * @hide */ public AudioFocusInfo(AudioAttributes aa, int clientUid, String clientId, String packageName, int gainRequest, int lossReceived, int flags) { int gainRequest, int lossReceived, int flags, int sdk) { mAttributes = aa == null ? new AudioAttributes.Builder().build() : aa; mClientUid = clientUid; mClientId = clientId == null ? "" : clientId; Loading @@ -57,6 +58,7 @@ public final class AudioFocusInfo implements Parcelable { mGainRequest = gainRequest; mLossReceived = lossReceived; mFlags = flags; mSdkTarget = sdk; } Loading Loading @@ -96,6 +98,9 @@ public final class AudioFocusInfo implements Parcelable { @SystemApi public int getLossReceived() { return mLossReceived; } /** @hide */ public int getSdkTarget() { return mSdkTarget; } /** @hide */ public void clearLossReceived() { mLossReceived = 0; } Loading @@ -122,6 +127,7 @@ public final class AudioFocusInfo implements Parcelable { dest.writeInt(mGainRequest); dest.writeInt(mLossReceived); dest.writeInt(mFlags); dest.writeInt(mSdkTarget); } @SystemApi Loading Loading @@ -161,6 +167,9 @@ public final class AudioFocusInfo implements Parcelable { if (mFlags != other.mFlags) { return false; } if (mSdkTarget != other.mSdkTarget) { return false; } return true; } Loading @@ -175,7 +184,8 @@ public final class AudioFocusInfo implements Parcelable { in.readString(), //String packageName in.readInt(), //int gainRequest in.readInt(), //int lossReceived in.readInt() //int flags in.readInt(), //int flags in.readInt() //int sdkTarget ); } Loading media/java/android/media/AudioManager.java +11 −2 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.media.session.MediaSession; import android.media.session.MediaSessionLegacyHelper; import android.media.session.MediaSessionManager; import android.os.Binder; import android.os.Build; import android.os.Handler; import android.os.IBinder; import android.os.Looper; Loading Loading @@ -2483,13 +2484,21 @@ public class AudioManager { registerAudioFocusRequest(afr); final IAudioService service = getService(); final int status; int sdk; try { sdk = getContext().getApplicationInfo().targetSdkVersion; } catch (NullPointerException e) { // some tests don't have a Context sdk = Build.VERSION.SDK_INT; } try { status = service.requestAudioFocus(afr.getAudioAttributes(), afr.getFocusGain(), mICallBack, mAudioFocusDispatcher, getIdForAudioFocusListener(afr.getOnAudioFocusChangeListener()), getContext().getOpPackageName() /* package name */, afr.getFlags(), ap != null ? ap.cb() : null); ap != null ? ap.cb() : null, sdk); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading @@ -2515,7 +2524,7 @@ public class AudioManager { AudioSystem.IN_VOICE_COMM_FOCUS_ID, getContext().getOpPackageName(), AUDIOFOCUS_FLAG_LOCK, null /* policy token */); null /* policy token */, 0 /* sdk n/a here*/); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading media/java/android/media/IAudioService.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -121,7 +121,7 @@ interface IAudioService { int requestAudioFocus(in AudioAttributes aa, int durationHint, IBinder cb, IAudioFocusDispatcher fd, String clientId, String callingPackageName, int flags, IAudioPolicyCallback pcb); IAudioPolicyCallback pcb, int sdk); int abandonAudioFocus(IAudioFocusDispatcher fd, String clientId, in AudioAttributes aa, in String callingPackageName); Loading services/core/java/com/android/server/audio/AudioService.java +2 −2 Original line number Diff line number Diff line Loading @@ -5669,7 +5669,7 @@ public class AudioService extends IAudioService.Stub //========================================================================================== public int requestAudioFocus(AudioAttributes aa, int durationHint, IBinder cb, IAudioFocusDispatcher fd, String clientId, String callingPackageName, int flags, IAudioPolicyCallback pcb) { IAudioPolicyCallback pcb, int sdk) { // permission checks if ((flags & AudioManager.AUDIOFOCUS_FLAG_LOCK) == AudioManager.AUDIOFOCUS_FLAG_LOCK) { if (AudioSystem.IN_VOICE_COMM_FOCUS_ID.equals(clientId)) { Loading @@ -5690,7 +5690,7 @@ public class AudioService extends IAudioService.Stub } return mMediaFocusControl.requestAudioFocus(aa, durationHint, cb, fd, clientId, callingPackageName, flags); clientId, callingPackageName, flags, sdk); } public int abandonAudioFocus(IAudioFocusDispatcher fd, String clientId, AudioAttributes aa, Loading services/core/java/com/android/server/audio/FocusRequester.java +10 −3 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ public class FocusRequester { private final String mPackageName; private final int mCallingUid; private final MediaFocusControl mFocusController; // never null private final int mSdkTarget; /** * the audio focus gain request that caused the addition of this object in the focus stack. Loading Loading @@ -87,7 +88,7 @@ public class FocusRequester { */ FocusRequester(AudioAttributes aa, int focusRequest, int grantFlags, IAudioFocusDispatcher afl, IBinder source, String id, AudioFocusDeathHandler hdlr, String pn, int uid, @NonNull MediaFocusControl ctlr) { String pn, int uid, @NonNull MediaFocusControl ctlr, int sdk) { mAttributes = aa; mFocusDispatcher = afl; mSourceRef = source; Loading @@ -99,6 +100,7 @@ public class FocusRequester { mGrantFlags = grantFlags; mFocusLossReceived = AudioManager.AUDIOFOCUS_NONE; mFocusController = ctlr; mSdkTarget = sdk; } FocusRequester(AudioFocusInfo afi, IAudioFocusDispatcher afl, Loading @@ -110,6 +112,7 @@ public class FocusRequester { mFocusGainRequest = afi.getGainRequest(); mFocusLossReceived = AudioManager.AUDIOFOCUS_NONE; mGrantFlags = afi.getFlags(); mSdkTarget = afi.getSdkTarget(); mFocusDispatcher = afl; mSourceRef = source; Loading Loading @@ -169,6 +172,9 @@ public class FocusRequester { return mAttributes; } int getSdkTarget() { return mSdkTarget; } private static String focusChangeToString(int focus) { switch(focus) { Loading Loading @@ -226,7 +232,8 @@ public class FocusRequester { + " -- loss: " + focusLossToString() + " -- notified: " + mFocusLossWasNotified + " -- uid: " + mCallingUid + " -- attr: " + mAttributes); + " -- attr: " + mAttributes + " -- sdk:" + mSdkTarget); } Loading Loading @@ -419,6 +426,6 @@ public class FocusRequester { AudioFocusInfo toAudioFocusInfo() { return new AudioFocusInfo(mAttributes, mCallingUid, mClientId, mPackageName, mFocusGainRequest, mFocusLossReceived, mGrantFlags); mFocusGainRequest, mFocusLossReceived, mGrantFlags, mSdkTarget); } } Loading
media/java/android/media/AudioFocusInfo.java +12 −2 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ public final class AudioFocusInfo implements Parcelable { private final int mClientUid; private final String mClientId; private final String mPackageName; private final int mSdkTarget; private int mGainRequest; private int mLossReceived; private int mFlags; Loading @@ -49,7 +50,7 @@ public final class AudioFocusInfo implements Parcelable { * @hide */ public AudioFocusInfo(AudioAttributes aa, int clientUid, String clientId, String packageName, int gainRequest, int lossReceived, int flags) { int gainRequest, int lossReceived, int flags, int sdk) { mAttributes = aa == null ? new AudioAttributes.Builder().build() : aa; mClientUid = clientUid; mClientId = clientId == null ? "" : clientId; Loading @@ -57,6 +58,7 @@ public final class AudioFocusInfo implements Parcelable { mGainRequest = gainRequest; mLossReceived = lossReceived; mFlags = flags; mSdkTarget = sdk; } Loading Loading @@ -96,6 +98,9 @@ public final class AudioFocusInfo implements Parcelable { @SystemApi public int getLossReceived() { return mLossReceived; } /** @hide */ public int getSdkTarget() { return mSdkTarget; } /** @hide */ public void clearLossReceived() { mLossReceived = 0; } Loading @@ -122,6 +127,7 @@ public final class AudioFocusInfo implements Parcelable { dest.writeInt(mGainRequest); dest.writeInt(mLossReceived); dest.writeInt(mFlags); dest.writeInt(mSdkTarget); } @SystemApi Loading Loading @@ -161,6 +167,9 @@ public final class AudioFocusInfo implements Parcelable { if (mFlags != other.mFlags) { return false; } if (mSdkTarget != other.mSdkTarget) { return false; } return true; } Loading @@ -175,7 +184,8 @@ public final class AudioFocusInfo implements Parcelable { in.readString(), //String packageName in.readInt(), //int gainRequest in.readInt(), //int lossReceived in.readInt() //int flags in.readInt(), //int flags in.readInt() //int sdkTarget ); } Loading
media/java/android/media/AudioManager.java +11 −2 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.media.session.MediaSession; import android.media.session.MediaSessionLegacyHelper; import android.media.session.MediaSessionManager; import android.os.Binder; import android.os.Build; import android.os.Handler; import android.os.IBinder; import android.os.Looper; Loading Loading @@ -2483,13 +2484,21 @@ public class AudioManager { registerAudioFocusRequest(afr); final IAudioService service = getService(); final int status; int sdk; try { sdk = getContext().getApplicationInfo().targetSdkVersion; } catch (NullPointerException e) { // some tests don't have a Context sdk = Build.VERSION.SDK_INT; } try { status = service.requestAudioFocus(afr.getAudioAttributes(), afr.getFocusGain(), mICallBack, mAudioFocusDispatcher, getIdForAudioFocusListener(afr.getOnAudioFocusChangeListener()), getContext().getOpPackageName() /* package name */, afr.getFlags(), ap != null ? ap.cb() : null); ap != null ? ap.cb() : null, sdk); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading @@ -2515,7 +2524,7 @@ public class AudioManager { AudioSystem.IN_VOICE_COMM_FOCUS_ID, getContext().getOpPackageName(), AUDIOFOCUS_FLAG_LOCK, null /* policy token */); null /* policy token */, 0 /* sdk n/a here*/); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading
media/java/android/media/IAudioService.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -121,7 +121,7 @@ interface IAudioService { int requestAudioFocus(in AudioAttributes aa, int durationHint, IBinder cb, IAudioFocusDispatcher fd, String clientId, String callingPackageName, int flags, IAudioPolicyCallback pcb); IAudioPolicyCallback pcb, int sdk); int abandonAudioFocus(IAudioFocusDispatcher fd, String clientId, in AudioAttributes aa, in String callingPackageName); Loading
services/core/java/com/android/server/audio/AudioService.java +2 −2 Original line number Diff line number Diff line Loading @@ -5669,7 +5669,7 @@ public class AudioService extends IAudioService.Stub //========================================================================================== public int requestAudioFocus(AudioAttributes aa, int durationHint, IBinder cb, IAudioFocusDispatcher fd, String clientId, String callingPackageName, int flags, IAudioPolicyCallback pcb) { IAudioPolicyCallback pcb, int sdk) { // permission checks if ((flags & AudioManager.AUDIOFOCUS_FLAG_LOCK) == AudioManager.AUDIOFOCUS_FLAG_LOCK) { if (AudioSystem.IN_VOICE_COMM_FOCUS_ID.equals(clientId)) { Loading @@ -5690,7 +5690,7 @@ public class AudioService extends IAudioService.Stub } return mMediaFocusControl.requestAudioFocus(aa, durationHint, cb, fd, clientId, callingPackageName, flags); clientId, callingPackageName, flags, sdk); } public int abandonAudioFocus(IAudioFocusDispatcher fd, String clientId, AudioAttributes aa, Loading
services/core/java/com/android/server/audio/FocusRequester.java +10 −3 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ public class FocusRequester { private final String mPackageName; private final int mCallingUid; private final MediaFocusControl mFocusController; // never null private final int mSdkTarget; /** * the audio focus gain request that caused the addition of this object in the focus stack. Loading Loading @@ -87,7 +88,7 @@ public class FocusRequester { */ FocusRequester(AudioAttributes aa, int focusRequest, int grantFlags, IAudioFocusDispatcher afl, IBinder source, String id, AudioFocusDeathHandler hdlr, String pn, int uid, @NonNull MediaFocusControl ctlr) { String pn, int uid, @NonNull MediaFocusControl ctlr, int sdk) { mAttributes = aa; mFocusDispatcher = afl; mSourceRef = source; Loading @@ -99,6 +100,7 @@ public class FocusRequester { mGrantFlags = grantFlags; mFocusLossReceived = AudioManager.AUDIOFOCUS_NONE; mFocusController = ctlr; mSdkTarget = sdk; } FocusRequester(AudioFocusInfo afi, IAudioFocusDispatcher afl, Loading @@ -110,6 +112,7 @@ public class FocusRequester { mFocusGainRequest = afi.getGainRequest(); mFocusLossReceived = AudioManager.AUDIOFOCUS_NONE; mGrantFlags = afi.getFlags(); mSdkTarget = afi.getSdkTarget(); mFocusDispatcher = afl; mSourceRef = source; Loading Loading @@ -169,6 +172,9 @@ public class FocusRequester { return mAttributes; } int getSdkTarget() { return mSdkTarget; } private static String focusChangeToString(int focus) { switch(focus) { Loading Loading @@ -226,7 +232,8 @@ public class FocusRequester { + " -- loss: " + focusLossToString() + " -- notified: " + mFocusLossWasNotified + " -- uid: " + mCallingUid + " -- attr: " + mAttributes); + " -- attr: " + mAttributes + " -- sdk:" + mSdkTarget); } Loading Loading @@ -419,6 +426,6 @@ public class FocusRequester { AudioFocusInfo toAudioFocusInfo() { return new AudioFocusInfo(mAttributes, mCallingUid, mClientId, mPackageName, mFocusGainRequest, mFocusLossReceived, mGrantFlags); mFocusGainRequest, mFocusLossReceived, mGrantFlags, mSdkTarget); } }