Merge changes I0a5c576b,I54fcf97b into qt-dev
* changes: Remove MediaParceledListSlice Remove MediaSessionServiceImpl
This commit is contained in:
@@ -9193,13 +9193,6 @@ HPLandroid/media/MediaMetadata$Builder;-><init>(Landroid/media/MediaMetadata;)V
|
||||
HSPLandroid/media/MediaMetadata$Builder;->build()Landroid/media/MediaMetadata;
|
||||
HPLandroid/media/MediaMetadata;->size()I
|
||||
HSPLandroid/media/MediaMetadata;->writeToParcel(Landroid/os/Parcel;I)V
|
||||
HSPLandroid/media/MediaParceledListSlice$2;-><init>()V
|
||||
HSPLandroid/media/MediaParceledListSlice$2;->createFromParcel(Landroid/os/Parcel;)Landroid/media/MediaParceledListSlice;
|
||||
HSPLandroid/media/MediaParceledListSlice$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
|
||||
HSPLandroid/media/MediaParceledListSlice;-><init>(Landroid/os/Parcel;)V
|
||||
HPLandroid/media/MediaParceledListSlice;-><init>(Ljava/util/List;)V
|
||||
HSPLandroid/media/MediaParceledListSlice;->getList()Ljava/util/List;
|
||||
HSPLandroid/media/MediaParceledListSlice;->writeToParcel(Landroid/os/Parcel;I)V
|
||||
HSPLandroid/media/MediaPlayer$2$1;->getSubtitleLooper()Landroid/os/Looper;
|
||||
HSPLandroid/media/MediaPlayer$2$1;->setSubtitleWidget(Landroid/media/SubtitleTrack$RenderingWidget;)V
|
||||
HSPLandroid/media/MediaPlayer$2;->run()V
|
||||
@@ -9446,7 +9439,7 @@ HPLandroid/media/session/ISessionController$Stub;->onTransact(ILandroid/os/Parce
|
||||
HPLandroid/media/session/ISessionControllerCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
|
||||
HPLandroid/media/session/ISessionControllerCallback$Stub$Proxy;->onMetadataChanged(Landroid/media/MediaMetadata;)V
|
||||
HPLandroid/media/session/ISessionControllerCallback$Stub$Proxy;->onPlaybackStateChanged(Landroid/media/session/PlaybackState;)V
|
||||
HPLandroid/media/session/ISessionControllerCallback$Stub$Proxy;->onQueueChanged(Landroid/media/MediaParceledListSlice;)V
|
||||
HPLandroid/media/session/ISessionControllerCallback$Stub$Proxy;->onQueueChanged(Landroid/media/ParceledListSlice;)V
|
||||
HPLandroid/media/session/ISessionControllerCallback$Stub$Proxy;->onSessionDestroyed()V
|
||||
HSPLandroid/media/session/ISessionManager$Stub$Proxy;->getSessions(Landroid/content/ComponentName;I)Ljava/util/List;
|
||||
HSPLandroid/media/session/ISessionManager$Stub;-><init>()V
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
/*
|
||||
* Copyright 2019 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package android.media;
|
||||
|
||||
/** @hide */
|
||||
parcelable MediaParceledListSlice;
|
||||
@@ -1,200 +0,0 @@
|
||||
/*
|
||||
* Copyright 2019 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package android.media;
|
||||
|
||||
import android.os.Binder;
|
||||
import android.os.IBinder;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import android.os.RemoteException;
|
||||
import android.util.Log;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Transfer a large list of objects across an IPC. Splits into multiple transactions if needed.
|
||||
* Note: Only use classes declared final in order to avoid subclasses overriding reading/writing
|
||||
* parcel logic.
|
||||
*
|
||||
* TODO: Add test for sending large data
|
||||
* @param <T> A Parcelable class which will be sent over the binder calls.
|
||||
* @hide
|
||||
*/
|
||||
public class MediaParceledListSlice<T extends Parcelable> implements Parcelable {
|
||||
private static final String TAG = "MediaParceledListSlice";
|
||||
private static final boolean DEBUG = false;
|
||||
|
||||
private static final int MAX_IPC_SIZE = 64 * 1024; // IBinder.MAX_IPC_SIZE
|
||||
|
||||
final List<T> mList;
|
||||
|
||||
public MediaParceledListSlice(List<T> list) {
|
||||
if (list == null) {
|
||||
throw new IllegalArgumentException("list shouldn't be null");
|
||||
}
|
||||
mList = list;
|
||||
}
|
||||
|
||||
MediaParceledListSlice(Parcel p) {
|
||||
final int itemCount = p.readInt();
|
||||
mList = new ArrayList<>(itemCount);
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "Retrieving " + itemCount + " items");
|
||||
}
|
||||
if (itemCount <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
int i = 0;
|
||||
while (i < itemCount) {
|
||||
if (p.readInt() == 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
final T parcelable = p.readParcelable(null);
|
||||
mList.add(parcelable);
|
||||
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "Read inline #" + i + ": " + mList.get(mList.size() - 1));
|
||||
}
|
||||
i++;
|
||||
}
|
||||
if (i >= itemCount) {
|
||||
return;
|
||||
}
|
||||
final IBinder retriever = p.readStrongBinder();
|
||||
while (i < itemCount) {
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "Reading more @" + i + " of " + itemCount + ": retriever=" + retriever);
|
||||
}
|
||||
Parcel data = Parcel.obtain();
|
||||
Parcel reply = Parcel.obtain();
|
||||
data.writeInt(i);
|
||||
try {
|
||||
retriever.transact(IBinder.FIRST_CALL_TRANSACTION, data, reply, 0);
|
||||
} catch (RemoteException e) {
|
||||
Log.w(TAG, "Failure retrieving array; only received " + i + " of " + itemCount, e);
|
||||
return;
|
||||
}
|
||||
while (i < itemCount && reply.readInt() != 0) {
|
||||
final T parcelable = reply.readParcelable(null);
|
||||
mList.add(parcelable);
|
||||
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "Read extra #" + i + ": " + mList.get(mList.size() - 1));
|
||||
}
|
||||
i++;
|
||||
}
|
||||
reply.recycle();
|
||||
data.recycle();
|
||||
}
|
||||
}
|
||||
|
||||
public List<T> getList() {
|
||||
return mList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Write this to another Parcel. Note that this discards the internal Parcel
|
||||
* and should not be used anymore. This is so we can pass this to a Binder
|
||||
* where we won't have a chance to call recycle on this.
|
||||
*/
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {
|
||||
final int itemCount = mList.size();
|
||||
dest.writeInt(itemCount);
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "Writing " + itemCount + " items");
|
||||
}
|
||||
if (itemCount > 0) {
|
||||
int i = 0;
|
||||
while (i < itemCount && dest.dataSize() < MAX_IPC_SIZE) {
|
||||
dest.writeInt(1);
|
||||
|
||||
final T parcelable = mList.get(i);
|
||||
dest.writeParcelable(parcelable, flags);
|
||||
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "Wrote inline #" + i + ": " + mList.get(i));
|
||||
}
|
||||
i++;
|
||||
}
|
||||
if (i < itemCount) {
|
||||
dest.writeInt(0);
|
||||
Binder retriever = new Binder() {
|
||||
@Override
|
||||
protected boolean onTransact(int code, Parcel data, Parcel reply, int flags)
|
||||
throws RemoteException {
|
||||
if (code != FIRST_CALL_TRANSACTION) {
|
||||
return super.onTransact(code, data, reply, flags);
|
||||
}
|
||||
int i = data.readInt();
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "Writing more @" + i + " of " + itemCount);
|
||||
}
|
||||
while (i < itemCount && reply.dataSize() < MAX_IPC_SIZE) {
|
||||
reply.writeInt(1);
|
||||
|
||||
final T parcelable = mList.get(i);
|
||||
reply.writeParcelable(parcelable, flags);
|
||||
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "Wrote extra #" + i + ": " + mList.get(i));
|
||||
}
|
||||
i++;
|
||||
}
|
||||
if (i < itemCount) {
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "Breaking @" + i + " of " + itemCount);
|
||||
}
|
||||
reply.writeInt(0);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "Breaking @" + i + " of " + itemCount + ": retriever=" + retriever);
|
||||
}
|
||||
dest.writeStrongBinder(retriever);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
int contents = 0;
|
||||
final List<T> list = getList();
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
contents |= list.get(i).describeContents();
|
||||
}
|
||||
return contents;
|
||||
}
|
||||
|
||||
public static final @android.annotation.NonNull Parcelable.Creator<MediaParceledListSlice> CREATOR =
|
||||
new Parcelable.Creator<MediaParceledListSlice>() {
|
||||
@Override
|
||||
public MediaParceledListSlice createFromParcel(Parcel in) {
|
||||
return new MediaParceledListSlice(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MediaParceledListSlice[] newArray(int size) {
|
||||
return new MediaParceledListSlice[size];
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -23,8 +23,8 @@ import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.ServiceConnection;
|
||||
import android.content.pm.ParceledListSlice;
|
||||
import android.media.MediaDescription;
|
||||
import android.media.MediaParceledListSlice;
|
||||
import android.media.session.MediaController;
|
||||
import android.media.session.MediaSession;
|
||||
import android.os.Binder;
|
||||
@@ -653,7 +653,7 @@ public final class MediaBrowser {
|
||||
}
|
||||
|
||||
private void onLoadChildren(final IMediaBrowserServiceCallbacks callback,
|
||||
final String parentId, final MediaParceledListSlice list, final Bundle options) {
|
||||
final String parentId, final ParceledListSlice list, final Bundle options) {
|
||||
mHandler.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
@@ -1107,12 +1107,12 @@ public final class MediaBrowser {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadChildren(String parentId, MediaParceledListSlice list) {
|
||||
public void onLoadChildren(String parentId, ParceledListSlice list) {
|
||||
onLoadChildrenWithOptions(parentId, list, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadChildrenWithOptions(String parentId, MediaParceledListSlice list,
|
||||
public void onLoadChildrenWithOptions(String parentId, ParceledListSlice list,
|
||||
final Bundle options) {
|
||||
MediaBrowser mediaBrowser = mMediaBrowser.get();
|
||||
if (mediaBrowser != null) {
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
package android.media.session;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.pm.ParceledListSlice;
|
||||
import android.media.AudioAttributes;
|
||||
import android.media.MediaMetadata;
|
||||
import android.media.MediaParceledListSlice;
|
||||
import android.media.session.ISessionController;
|
||||
import android.media.session.PlaybackState;
|
||||
import android.media.session.MediaSession;
|
||||
@@ -41,7 +41,7 @@ interface ISession {
|
||||
// These commands are for the TransportPerformer
|
||||
void setMetadata(in MediaMetadata metadata, long duration, String metadataDescription);
|
||||
void setPlaybackState(in PlaybackState state);
|
||||
void setQueue(in MediaParceledListSlice queue);
|
||||
void setQueue(in ParceledListSlice queue);
|
||||
void setQueueTitle(CharSequence title);
|
||||
void setExtras(in Bundle extras);
|
||||
void setRatingType(int type);
|
||||
|
||||
@@ -17,8 +17,8 @@ package android.media.session;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ParceledListSlice;
|
||||
import android.media.MediaMetadata;
|
||||
import android.media.MediaParceledListSlice;
|
||||
import android.media.Rating;
|
||||
import android.media.session.ISessionControllerCallback;
|
||||
import android.media.session.MediaController;
|
||||
@@ -82,7 +82,7 @@ interface ISessionController {
|
||||
String action, in Bundle args);
|
||||
MediaMetadata getMetadata();
|
||||
PlaybackState getPlaybackState();
|
||||
MediaParceledListSlice getQueue();
|
||||
ParceledListSlice getQueue();
|
||||
CharSequence getQueueTitle();
|
||||
Bundle getExtras();
|
||||
int getRatingType();
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
|
||||
package android.media.session;
|
||||
|
||||
import android.content.pm.ParceledListSlice;
|
||||
import android.media.MediaMetadata;
|
||||
import android.media.MediaParceledListSlice;
|
||||
import android.media.session.MediaController;
|
||||
import android.media.session.PlaybackState;
|
||||
import android.os.Bundle;
|
||||
@@ -31,7 +31,7 @@ oneway interface ISessionControllerCallback {
|
||||
// These callbacks are for the TransportController
|
||||
void onPlaybackStateChanged(in PlaybackState state);
|
||||
void onMetadataChanged(in MediaMetadata metadata);
|
||||
void onQueueChanged(in MediaParceledListSlice queue);
|
||||
void onQueueChanged(in ParceledListSlice queue);
|
||||
void onQueueTitleChanged(CharSequence title);
|
||||
void onExtrasChanged(in Bundle extras);
|
||||
void onVolumeInfoChanged(in MediaController.PlaybackInfo info);
|
||||
|
||||
@@ -21,10 +21,10 @@ import android.annotation.Nullable;
|
||||
import android.annotation.UnsupportedAppUsage;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.pm.ParceledListSlice;
|
||||
import android.media.AudioAttributes;
|
||||
import android.media.AudioManager;
|
||||
import android.media.MediaMetadata;
|
||||
import android.media.MediaParceledListSlice;
|
||||
import android.media.Rating;
|
||||
import android.media.VolumeProvider;
|
||||
import android.media.session.MediaSession.QueueItem;
|
||||
@@ -174,7 +174,7 @@ public final class MediaController {
|
||||
*/
|
||||
public @Nullable List<MediaSession.QueueItem> getQueue() {
|
||||
try {
|
||||
MediaParceledListSlice list = mSessionBinder.getQueue();
|
||||
ParceledListSlice list = mSessionBinder.getQueue();
|
||||
return list == null ? null : list.getList();
|
||||
} catch (RemoteException e) {
|
||||
Log.wtf(TAG, "Error calling getQueue.", e);
|
||||
@@ -1116,7 +1116,7 @@ public final class MediaController {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onQueueChanged(MediaParceledListSlice queue) {
|
||||
public void onQueueChanged(ParceledListSlice queue) {
|
||||
MediaController controller = mController.get();
|
||||
if (controller != null) {
|
||||
controller.postMessage(MSG_UPDATE_QUEUE, queue, null);
|
||||
@@ -1174,7 +1174,7 @@ public final class MediaController {
|
||||
break;
|
||||
case MSG_UPDATE_QUEUE:
|
||||
mCallback.onQueueChanged(msg.obj == null ? null :
|
||||
(List<QueueItem>) ((MediaParceledListSlice) msg.obj).getList());
|
||||
(List<QueueItem>) ((ParceledListSlice) msg.obj).getList());
|
||||
break;
|
||||
case MSG_UPDATE_QUEUE_TITLE:
|
||||
mCallback.onQueueTitleChanged((CharSequence) msg.obj);
|
||||
|
||||
@@ -24,10 +24,10 @@ import android.app.Activity;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ParceledListSlice;
|
||||
import android.media.AudioAttributes;
|
||||
import android.media.MediaDescription;
|
||||
import android.media.MediaMetadata;
|
||||
import android.media.MediaParceledListSlice;
|
||||
import android.media.Rating;
|
||||
import android.media.VolumeProvider;
|
||||
import android.media.session.MediaSessionManager.RemoteUserInfo;
|
||||
@@ -473,7 +473,7 @@ public final class MediaSession {
|
||||
*/
|
||||
public void setQueue(@Nullable List<QueueItem> queue) {
|
||||
try {
|
||||
mBinder.setQueue(queue == null ? null : new MediaParceledListSlice(queue));
|
||||
mBinder.setQueue(queue == null ? null : new ParceledListSlice(queue));
|
||||
} catch (RemoteException e) {
|
||||
Log.wtf("Dead object in setQueue.", e);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
package android.service.media;
|
||||
|
||||
import android.media.MediaParceledListSlice;
|
||||
import android.content.pm.ParceledListSlice;
|
||||
import android.media.session.MediaSession;
|
||||
import android.os.Bundle;
|
||||
|
||||
@@ -21,7 +21,7 @@ oneway interface IMediaBrowserServiceCallbacks {
|
||||
*/
|
||||
void onConnect(String root, in MediaSession.Token session, in Bundle extras);
|
||||
void onConnectFailed();
|
||||
void onLoadChildren(String mediaId, in MediaParceledListSlice list);
|
||||
void onLoadChildrenWithOptions(String mediaId, in MediaParceledListSlice list,
|
||||
void onLoadChildren(String mediaId, in ParceledListSlice list);
|
||||
void onLoadChildrenWithOptions(String mediaId, in ParceledListSlice list,
|
||||
in Bundle options);
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ import android.annotation.UnsupportedAppUsage;
|
||||
import android.app.Service;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.media.MediaParceledListSlice;
|
||||
import android.content.pm.ParceledListSlice;
|
||||
import android.media.browse.MediaBrowser;
|
||||
import android.media.browse.MediaBrowserUtils;
|
||||
import android.media.session.MediaSession;
|
||||
@@ -684,8 +684,8 @@ public abstract class MediaBrowserService extends Service {
|
||||
List<MediaBrowser.MediaItem> filteredList =
|
||||
(flag & RESULT_FLAG_OPTION_NOT_HANDLED) != 0
|
||||
? applyOptions(list, options) : list;
|
||||
final MediaParceledListSlice<MediaBrowser.MediaItem> pls =
|
||||
filteredList == null ? null : new MediaParceledListSlice<>(filteredList);
|
||||
final ParceledListSlice<MediaBrowser.MediaItem> pls =
|
||||
filteredList == null ? null : new ParceledListSlice<>(filteredList);
|
||||
try {
|
||||
connection.callbacks.onLoadChildrenWithOptions(parentId, pls, options);
|
||||
} catch (RemoteException ex) {
|
||||
|
||||
@@ -19,12 +19,12 @@ package com.android.server.media;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ParceledListSlice;
|
||||
import android.media.AudioAttributes;
|
||||
import android.media.AudioManager;
|
||||
import android.media.AudioManagerInternal;
|
||||
import android.media.AudioSystem;
|
||||
import android.media.MediaMetadata;
|
||||
import android.media.MediaParceledListSlice;
|
||||
import android.media.Rating;
|
||||
import android.media.VolumeProvider;
|
||||
import android.media.session.ISession;
|
||||
@@ -84,7 +84,7 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {
|
||||
private final MediaSession.Token mSessionToken;
|
||||
private final SessionStub mSession;
|
||||
private final SessionCb mSessionCb;
|
||||
private final MediaSessionService.ServiceImpl mService;
|
||||
private final MediaSessionService mService;
|
||||
private final Context mContext;
|
||||
|
||||
private final Object mLock = new Object();
|
||||
@@ -125,7 +125,7 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {
|
||||
|
||||
public MediaSessionRecord(int ownerPid, int ownerUid, int userId, String ownerPackageName,
|
||||
ISessionCallback cb, String tag, Bundle sessionInfo,
|
||||
MediaSessionService.ServiceImpl service, Looper handlerLooper) {
|
||||
MediaSessionService service, Looper handlerLooper) {
|
||||
mOwnerPid = ownerPid;
|
||||
mOwnerUid = ownerUid;
|
||||
mUserId = userId;
|
||||
@@ -612,7 +612,7 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {
|
||||
ISessionControllerCallbackHolder holder = mControllerCallbackHolders.get(i);
|
||||
try {
|
||||
holder.mCallback.onQueueChanged(mQueue == null ? null :
|
||||
new MediaParceledListSlice<>(mQueue));
|
||||
new ParceledListSlice<>(mQueue));
|
||||
} catch (DeadObjectException e) {
|
||||
mControllerCallbackHolders.remove(i);
|
||||
logCallbackException("Removing dead callback in pushQueueUpdate", holder, e);
|
||||
@@ -904,7 +904,7 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setQueue(MediaParceledListSlice queue) throws RemoteException {
|
||||
public void setQueue(ParceledListSlice queue) throws RemoteException {
|
||||
synchronized (mLock) {
|
||||
mQueue = queue == null ? null : (List<QueueItem>) queue.getList();
|
||||
}
|
||||
@@ -1469,9 +1469,9 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {
|
||||
}
|
||||
|
||||
@Override
|
||||
public MediaParceledListSlice getQueue() {
|
||||
public ParceledListSlice getQueue() {
|
||||
synchronized (mLock) {
|
||||
return mQueue == null ? null : new MediaParceledListSlice<>(mQueue);
|
||||
return mQueue == null ? null : new ParceledListSlice<>(mQueue);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user