Replace Handler with Executor
This change addresses API council feedback around the new setOnRtpRxNoticeListener method. Bug: 168585020 Test: Manually built the tree. Test: Tests pending as per b/169965769. Change-Id: Ie8291df9b10960f78bdfdd5986767e896a953abf Merged-In: Ie8291df9b10960f78bdfdd5986767e896a953abf
This commit is contained in:
committed by
Josh Hou
parent
caf9ae8b52
commit
49bd548e23
@@ -5097,7 +5097,7 @@ package android.media {
|
||||
}
|
||||
|
||||
public class MediaPlayer implements android.media.AudioRouting android.media.VolumeAutomation {
|
||||
method @RequiresPermission(android.Manifest.permission.BIND_IMS_SERVICE) public void setOnRtpRxNoticeListener(@NonNull android.content.Context, @NonNull android.media.MediaPlayer.OnRtpRxNoticeListener, @Nullable android.os.Handler);
|
||||
method @RequiresPermission(android.Manifest.permission.BIND_IMS_SERVICE) public void setOnRtpRxNoticeListener(@NonNull android.content.Context, @NonNull java.util.concurrent.Executor, @NonNull android.media.MediaPlayer.OnRtpRxNoticeListener);
|
||||
}
|
||||
|
||||
public static interface MediaPlayer.OnRtpRxNoticeListener {
|
||||
|
||||
@@ -19,6 +19,7 @@ package android.media;
|
||||
import static android.Manifest.permission.BIND_IMS_SERVICE;
|
||||
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
||||
|
||||
import android.annotation.CallbackExecutor;
|
||||
import android.annotation.IntDef;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
@@ -91,6 +92,7 @@ import java.util.Scanner;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.Vector;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
|
||||
/**
|
||||
@@ -2172,7 +2174,7 @@ public class MediaPlayer extends PlayerBase
|
||||
mOnVideoSizeChangedListener = null;
|
||||
mOnTimedTextListener = null;
|
||||
mOnRtpRxNoticeListener = null;
|
||||
mOnRtpRxNoticeHandler = null;
|
||||
mOnRtpRxNoticeExecutor = null;
|
||||
synchronized (mTimeProviderLock) {
|
||||
if (mTimeProvider != null) {
|
||||
mTimeProvider.close();
|
||||
@@ -3711,7 +3713,6 @@ public class MediaPlayer extends PlayerBase
|
||||
|
||||
case MEDIA_RTP_RX_NOTICE:
|
||||
final OnRtpRxNoticeListener rtpRxNoticeListener = mOnRtpRxNoticeListener;
|
||||
final Handler rtpRxNoticeHandler = mOnRtpRxNoticeHandler;
|
||||
if (rtpRxNoticeListener == null) {
|
||||
return;
|
||||
}
|
||||
@@ -3730,14 +3731,9 @@ public class MediaPlayer extends PlayerBase
|
||||
} finally {
|
||||
parcel.recycle();
|
||||
}
|
||||
if (rtpRxNoticeHandler == null) {
|
||||
rtpRxNoticeListener.onRtpRxNotice(mMediaPlayer, noticeType, data);
|
||||
} else {
|
||||
rtpRxNoticeHandler.post(
|
||||
() ->
|
||||
rtpRxNoticeListener
|
||||
.onRtpRxNotice(mMediaPlayer, noticeType, data));
|
||||
}
|
||||
mOnRtpRxNoticeExecutor.execute(() ->
|
||||
rtpRxNoticeListener
|
||||
.onRtpRxNotice(mMediaPlayer, noticeType, data));
|
||||
}
|
||||
return;
|
||||
|
||||
@@ -4305,28 +4301,26 @@ public class MediaPlayer extends PlayerBase
|
||||
*
|
||||
* @see OnRtpRxNoticeListener
|
||||
*
|
||||
* @param listener the listener called after a notice from RTP Rx
|
||||
* @param handler the {@link Handler} that receives RTP Tx events. If null is passed,
|
||||
* notifications will be posted on the thread that created this MediaPlayer
|
||||
* instance. If the creating thread does not have a {@link Looper}, then
|
||||
* notifications will be posted on the main thread.
|
||||
* @param listener the listener called after a notice from RTP Rx.
|
||||
* @param executor the {@link Executor} on which to post RTP Tx events.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
@RequiresPermission(BIND_IMS_SERVICE)
|
||||
public void setOnRtpRxNoticeListener(
|
||||
@NonNull Context context,
|
||||
@NonNull OnRtpRxNoticeListener listener, @Nullable Handler handler) {
|
||||
@NonNull @CallbackExecutor Executor executor,
|
||||
@NonNull OnRtpRxNoticeListener listener) {
|
||||
Objects.requireNonNull(context);
|
||||
Preconditions.checkArgument(
|
||||
context.checkSelfPermission(BIND_IMS_SERVICE) == PERMISSION_GRANTED,
|
||||
BIND_IMS_SERVICE + " permission not granted.");
|
||||
mOnRtpRxNoticeListener = Objects.requireNonNull(listener);
|
||||
mOnRtpRxNoticeHandler = handler;
|
||||
mOnRtpRxNoticeExecutor = Objects.requireNonNull(executor);
|
||||
}
|
||||
|
||||
private OnRtpRxNoticeListener mOnRtpRxNoticeListener;
|
||||
private Handler mOnRtpRxNoticeHandler;
|
||||
private Executor mOnRtpRxNoticeExecutor;
|
||||
|
||||
/**
|
||||
* Register a callback to be invoked when a selected track has timed metadata available.
|
||||
|
||||
Reference in New Issue
Block a user