Merge "Cache the Binder call for PlaybackState" into udc-dev

This commit is contained in:
Hongwei Wang
2023-05-23 02:36:39 +00:00
committed by Android (Google) Code Review

View File

@@ -252,13 +252,16 @@ public class PipMediaController {
// It can be removed when min_sdk of the app is set to 31 or greater. // It can be removed when min_sdk of the app is set to 31 or greater.
@SuppressLint("NewApi") @SuppressLint("NewApi")
private List<RemoteAction> getMediaActions() { private List<RemoteAction> getMediaActions() {
if (mMediaController == null || mMediaController.getPlaybackState() == null) { // Cache the PlaybackState since it's a Binder call.
final PlaybackState playbackState;
if (mMediaController == null
|| (playbackState = mMediaController.getPlaybackState()) == null) {
return Collections.emptyList(); return Collections.emptyList();
} }
ArrayList<RemoteAction> mediaActions = new ArrayList<>(); ArrayList<RemoteAction> mediaActions = new ArrayList<>();
boolean isPlaying = mMediaController.getPlaybackState().isActive(); boolean isPlaying = playbackState.isActive();
long actions = mMediaController.getPlaybackState().getActions(); long actions = playbackState.getActions();
// Prev action // Prev action
mPrevAction.setEnabled((actions & PlaybackState.ACTION_SKIP_TO_PREVIOUS) != 0); mPrevAction.setEnabled((actions & PlaybackState.ACTION_SKIP_TO_PREVIOUS) != 0);