Loading android/app/src/com/android/bluetooth/avrcp/AddressedMediaPlayer.java +8 −21 Original line number Diff line number Diff line Loading @@ -57,14 +57,12 @@ public class AddressedMediaPlayer { private final List<MediaSession.QueueItem> mEmptyNowPlayingList; private long mLastTrackIdSent; private boolean mNowPlayingListUpdated; public AddressedMediaPlayer(AvrcpMediaRspInterface mediaInterface) { mEmptyNowPlayingList = new ArrayList<MediaSession.QueueItem>(); mNowPlayingList = mEmptyNowPlayingList; mMediaInterface = mediaInterface; mLastTrackIdSent = MediaSession.QueueItem.UNKNOWN_ID; mNowPlayingListUpdated = false; } void cleanup() { Loading @@ -72,7 +70,6 @@ public class AddressedMediaPlayer { mNowPlayingList = mEmptyNowPlayingList; mMediaInterface = null; mLastTrackIdSent = MediaSession.QueueItem.UNKNOWN_ID; mNowPlayingListUpdated = false; } /* get now playing list from addressed player */ Loading @@ -84,7 +81,7 @@ public class AddressedMediaPlayer { mMediaInterface.folderItemsRsp(bdaddr, AvrcpConstants.RSP_NO_AVBL_PLAY, null); return; } List<MediaSession.QueueItem> items = getNowPlayingList(mediaController); List<MediaSession.QueueItem> items = updateNowPlayingList(mediaController); getFolderItemsFilterAttr(bdaddr, reqObj, items, AvrcpConstants.BTRC_SCOPE_NOW_PLAYING, reqObj.mStartItem, reqObj.mEndItem, mediaController); } Loading @@ -94,7 +91,7 @@ public class AddressedMediaPlayer { @Nullable MediaController mediaController) { int status = AvrcpConstants.RSP_NO_ERROR; long mediaId = ByteBuffer.wrap(itemAttr.mUid).getLong(); List<MediaSession.QueueItem> items = getNowPlayingList(mediaController); List<MediaSession.QueueItem> items = updateNowPlayingList(mediaController); // NOTE: this is out-of-spec (AVRCP 1.6.1 sec 6.10.4.3, p90) but we answer it anyway // because some CTs ask for it. Loading @@ -121,14 +118,10 @@ public class AddressedMediaPlayer { /* Refresh and get the queue of now playing. */ private @NonNull List<MediaSession.QueueItem> getNowPlayingList( @Nullable MediaController mediaController) { @NonNull List<MediaSession.QueueItem> updateNowPlayingList(@Nullable MediaController mediaController) { if (mediaController == null) return mEmptyNowPlayingList; List<MediaSession.QueueItem> items = mediaController.getQueue(); if (items != null && !mNowPlayingListUpdated) { mNowPlayingList = items; return mNowPlayingList; } if (items == null) { Log.i(TAG, "null queue from " + mediaController.getPackageName() + ", constructing single-item list"); Loading @@ -140,18 +133,17 @@ public class AddressedMediaPlayer { items.add(current); } if (!items.equals(mNowPlayingList)) sendNowPlayingListChanged(); mNowPlayingList = items; if (mNowPlayingListUpdated) sendNowPlayingListChanged(); return mNowPlayingList; } private void sendNowPlayingListChanged() { if (mMediaInterface == null) return; if (DEBUG) Log.d(TAG, "sendNowPlayingListChanged()"); mMediaInterface.uidsChangedRsp(AvrcpConstants.NOTIFICATION_TYPE_CHANGED); mMediaInterface.nowPlayingChangedRsp(AvrcpConstants.NOTIFICATION_TYPE_CHANGED); mNowPlayingListUpdated = false; } /* Constructs a queue item representing the current playing metadata from an Loading Loading @@ -211,15 +203,10 @@ public class AddressedMediaPlayer { return bundle; } void updateNowPlayingList(@Nullable MediaController mediaController) { mNowPlayingListUpdated = true; getNowPlayingList(mediaController); } /* Instructs media player to play particular media item */ void playItem(byte[] bdaddr, byte[] uid, @Nullable MediaController mediaController) { long qid = ByteBuffer.wrap(uid).getLong(); List<MediaSession.QueueItem> items = getNowPlayingList(mediaController); List<MediaSession.QueueItem> items = updateNowPlayingList(mediaController); if (mediaController == null) { Log.e(TAG, "No mediaController when PlayItem " + qid + " requested"); Loading Loading @@ -250,7 +237,7 @@ public class AddressedMediaPlayer { } void getTotalNumOfItems(byte[] bdaddr, @Nullable MediaController mediaController) { List<MediaSession.QueueItem> items = getNowPlayingList(mediaController); List<MediaSession.QueueItem> items = updateNowPlayingList(mediaController); if (DEBUG) Log.d(TAG, "getTotalNumOfItems: " + items.size() + " items."); mMediaInterface.getTotalNumOfItemsRsp(bdaddr, AvrcpConstants.RSP_NO_ERROR, 0, items.size()); } Loading Loading
android/app/src/com/android/bluetooth/avrcp/AddressedMediaPlayer.java +8 −21 Original line number Diff line number Diff line Loading @@ -57,14 +57,12 @@ public class AddressedMediaPlayer { private final List<MediaSession.QueueItem> mEmptyNowPlayingList; private long mLastTrackIdSent; private boolean mNowPlayingListUpdated; public AddressedMediaPlayer(AvrcpMediaRspInterface mediaInterface) { mEmptyNowPlayingList = new ArrayList<MediaSession.QueueItem>(); mNowPlayingList = mEmptyNowPlayingList; mMediaInterface = mediaInterface; mLastTrackIdSent = MediaSession.QueueItem.UNKNOWN_ID; mNowPlayingListUpdated = false; } void cleanup() { Loading @@ -72,7 +70,6 @@ public class AddressedMediaPlayer { mNowPlayingList = mEmptyNowPlayingList; mMediaInterface = null; mLastTrackIdSent = MediaSession.QueueItem.UNKNOWN_ID; mNowPlayingListUpdated = false; } /* get now playing list from addressed player */ Loading @@ -84,7 +81,7 @@ public class AddressedMediaPlayer { mMediaInterface.folderItemsRsp(bdaddr, AvrcpConstants.RSP_NO_AVBL_PLAY, null); return; } List<MediaSession.QueueItem> items = getNowPlayingList(mediaController); List<MediaSession.QueueItem> items = updateNowPlayingList(mediaController); getFolderItemsFilterAttr(bdaddr, reqObj, items, AvrcpConstants.BTRC_SCOPE_NOW_PLAYING, reqObj.mStartItem, reqObj.mEndItem, mediaController); } Loading @@ -94,7 +91,7 @@ public class AddressedMediaPlayer { @Nullable MediaController mediaController) { int status = AvrcpConstants.RSP_NO_ERROR; long mediaId = ByteBuffer.wrap(itemAttr.mUid).getLong(); List<MediaSession.QueueItem> items = getNowPlayingList(mediaController); List<MediaSession.QueueItem> items = updateNowPlayingList(mediaController); // NOTE: this is out-of-spec (AVRCP 1.6.1 sec 6.10.4.3, p90) but we answer it anyway // because some CTs ask for it. Loading @@ -121,14 +118,10 @@ public class AddressedMediaPlayer { /* Refresh and get the queue of now playing. */ private @NonNull List<MediaSession.QueueItem> getNowPlayingList( @Nullable MediaController mediaController) { @NonNull List<MediaSession.QueueItem> updateNowPlayingList(@Nullable MediaController mediaController) { if (mediaController == null) return mEmptyNowPlayingList; List<MediaSession.QueueItem> items = mediaController.getQueue(); if (items != null && !mNowPlayingListUpdated) { mNowPlayingList = items; return mNowPlayingList; } if (items == null) { Log.i(TAG, "null queue from " + mediaController.getPackageName() + ", constructing single-item list"); Loading @@ -140,18 +133,17 @@ public class AddressedMediaPlayer { items.add(current); } if (!items.equals(mNowPlayingList)) sendNowPlayingListChanged(); mNowPlayingList = items; if (mNowPlayingListUpdated) sendNowPlayingListChanged(); return mNowPlayingList; } private void sendNowPlayingListChanged() { if (mMediaInterface == null) return; if (DEBUG) Log.d(TAG, "sendNowPlayingListChanged()"); mMediaInterface.uidsChangedRsp(AvrcpConstants.NOTIFICATION_TYPE_CHANGED); mMediaInterface.nowPlayingChangedRsp(AvrcpConstants.NOTIFICATION_TYPE_CHANGED); mNowPlayingListUpdated = false; } /* Constructs a queue item representing the current playing metadata from an Loading Loading @@ -211,15 +203,10 @@ public class AddressedMediaPlayer { return bundle; } void updateNowPlayingList(@Nullable MediaController mediaController) { mNowPlayingListUpdated = true; getNowPlayingList(mediaController); } /* Instructs media player to play particular media item */ void playItem(byte[] bdaddr, byte[] uid, @Nullable MediaController mediaController) { long qid = ByteBuffer.wrap(uid).getLong(); List<MediaSession.QueueItem> items = getNowPlayingList(mediaController); List<MediaSession.QueueItem> items = updateNowPlayingList(mediaController); if (mediaController == null) { Log.e(TAG, "No mediaController when PlayItem " + qid + " requested"); Loading Loading @@ -250,7 +237,7 @@ public class AddressedMediaPlayer { } void getTotalNumOfItems(byte[] bdaddr, @Nullable MediaController mediaController) { List<MediaSession.QueueItem> items = getNowPlayingList(mediaController); List<MediaSession.QueueItem> items = updateNowPlayingList(mediaController); if (DEBUG) Log.d(TAG, "getTotalNumOfItems: " + items.size() + " items."); mMediaInterface.getTotalNumOfItemsRsp(bdaddr, AvrcpConstants.RSP_NO_ERROR, 0, items.size()); } Loading