Merge "Replace Handler with Executor" into sc-dev
This commit is contained in:
@@ -5072,7 +5072,7 @@ package android.media {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public class MediaPlayer implements android.media.AudioRouting android.media.VolumeAutomation {
|
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 {
|
public static interface MediaPlayer.OnRtpRxNoticeListener {
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ package android.media;
|
|||||||
import static android.Manifest.permission.BIND_IMS_SERVICE;
|
import static android.Manifest.permission.BIND_IMS_SERVICE;
|
||||||
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
||||||
|
|
||||||
|
import android.annotation.CallbackExecutor;
|
||||||
import android.annotation.IntDef;
|
import android.annotation.IntDef;
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
@@ -91,6 +92,7 @@ import java.util.Scanner;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
|
import java.util.concurrent.Executor;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -2172,7 +2174,7 @@ public class MediaPlayer extends PlayerBase
|
|||||||
mOnVideoSizeChangedListener = null;
|
mOnVideoSizeChangedListener = null;
|
||||||
mOnTimedTextListener = null;
|
mOnTimedTextListener = null;
|
||||||
mOnRtpRxNoticeListener = null;
|
mOnRtpRxNoticeListener = null;
|
||||||
mOnRtpRxNoticeHandler = null;
|
mOnRtpRxNoticeExecutor = null;
|
||||||
synchronized (mTimeProviderLock) {
|
synchronized (mTimeProviderLock) {
|
||||||
if (mTimeProvider != null) {
|
if (mTimeProvider != null) {
|
||||||
mTimeProvider.close();
|
mTimeProvider.close();
|
||||||
@@ -3711,7 +3713,6 @@ public class MediaPlayer extends PlayerBase
|
|||||||
|
|
||||||
case MEDIA_RTP_RX_NOTICE:
|
case MEDIA_RTP_RX_NOTICE:
|
||||||
final OnRtpRxNoticeListener rtpRxNoticeListener = mOnRtpRxNoticeListener;
|
final OnRtpRxNoticeListener rtpRxNoticeListener = mOnRtpRxNoticeListener;
|
||||||
final Handler rtpRxNoticeHandler = mOnRtpRxNoticeHandler;
|
|
||||||
if (rtpRxNoticeListener == null) {
|
if (rtpRxNoticeListener == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -3730,14 +3731,9 @@ public class MediaPlayer extends PlayerBase
|
|||||||
} finally {
|
} finally {
|
||||||
parcel.recycle();
|
parcel.recycle();
|
||||||
}
|
}
|
||||||
if (rtpRxNoticeHandler == null) {
|
mOnRtpRxNoticeExecutor.execute(() ->
|
||||||
rtpRxNoticeListener.onRtpRxNotice(mMediaPlayer, noticeType, data);
|
rtpRxNoticeListener
|
||||||
} else {
|
.onRtpRxNotice(mMediaPlayer, noticeType, data));
|
||||||
rtpRxNoticeHandler.post(
|
|
||||||
() ->
|
|
||||||
rtpRxNoticeListener
|
|
||||||
.onRtpRxNotice(mMediaPlayer, noticeType, data));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -4305,28 +4301,26 @@ public class MediaPlayer extends PlayerBase
|
|||||||
*
|
*
|
||||||
* @see OnRtpRxNoticeListener
|
* @see OnRtpRxNoticeListener
|
||||||
*
|
*
|
||||||
* @param listener the listener called after a notice from RTP Rx
|
* @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,
|
* @param executor the {@link Executor} on which to post RTP Tx events.
|
||||||
* 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.
|
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(BIND_IMS_SERVICE)
|
@RequiresPermission(BIND_IMS_SERVICE)
|
||||||
public void setOnRtpRxNoticeListener(
|
public void setOnRtpRxNoticeListener(
|
||||||
@NonNull Context context,
|
@NonNull Context context,
|
||||||
@NonNull OnRtpRxNoticeListener listener, @Nullable Handler handler) {
|
@NonNull @CallbackExecutor Executor executor,
|
||||||
|
@NonNull OnRtpRxNoticeListener listener) {
|
||||||
Objects.requireNonNull(context);
|
Objects.requireNonNull(context);
|
||||||
Preconditions.checkArgument(
|
Preconditions.checkArgument(
|
||||||
context.checkSelfPermission(BIND_IMS_SERVICE) == PERMISSION_GRANTED,
|
context.checkSelfPermission(BIND_IMS_SERVICE) == PERMISSION_GRANTED,
|
||||||
BIND_IMS_SERVICE + " permission not granted.");
|
BIND_IMS_SERVICE + " permission not granted.");
|
||||||
mOnRtpRxNoticeListener = Objects.requireNonNull(listener);
|
mOnRtpRxNoticeListener = Objects.requireNonNull(listener);
|
||||||
mOnRtpRxNoticeHandler = handler;
|
mOnRtpRxNoticeExecutor = Objects.requireNonNull(executor);
|
||||||
}
|
}
|
||||||
|
|
||||||
private OnRtpRxNoticeListener mOnRtpRxNoticeListener;
|
private OnRtpRxNoticeListener mOnRtpRxNoticeListener;
|
||||||
private Handler mOnRtpRxNoticeHandler;
|
private Executor mOnRtpRxNoticeExecutor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register a callback to be invoked when a selected track has timed metadata available.
|
* Register a callback to be invoked when a selected track has timed metadata available.
|
||||||
|
|||||||
Reference in New Issue
Block a user