Merge "Merge notifySessionCreationFailed into notifyRequestFailed" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
531bb231d8
@@ -26909,7 +26909,6 @@ package android.media {
|
|||||||
method public final void notifyRequestFailed(long, int);
|
method public final void notifyRequestFailed(long, int);
|
||||||
method public final void notifyRoutes(@NonNull java.util.Collection<android.media.MediaRoute2Info>);
|
method public final void notifyRoutes(@NonNull java.util.Collection<android.media.MediaRoute2Info>);
|
||||||
method public final void notifySessionCreated(@NonNull android.media.RoutingSessionInfo, long);
|
method public final void notifySessionCreated(@NonNull android.media.RoutingSessionInfo, long);
|
||||||
method public final void notifySessionCreationFailed(long);
|
|
||||||
method public final void notifySessionReleased(@NonNull String);
|
method public final void notifySessionReleased(@NonNull String);
|
||||||
method public final void notifySessionUpdated(@NonNull android.media.RoutingSessionInfo);
|
method public final void notifySessionUpdated(@NonNull android.media.RoutingSessionInfo);
|
||||||
method @CallSuper @Nullable public android.os.IBinder onBind(@NonNull android.content.Intent);
|
method @CallSuper @Nullable public android.os.IBinder onBind(@NonNull android.content.Intent);
|
||||||
|
|||||||
@@ -28,7 +28,6 @@ oneway interface IMediaRoute2ProviderServiceCallback {
|
|||||||
// TODO: Change it to updateRoutes?
|
// TODO: Change it to updateRoutes?
|
||||||
void updateState(in MediaRoute2ProviderInfo providerInfo);
|
void updateState(in MediaRoute2ProviderInfo providerInfo);
|
||||||
void notifySessionCreated(in RoutingSessionInfo sessionInfo, long requestId);
|
void notifySessionCreated(in RoutingSessionInfo sessionInfo, long requestId);
|
||||||
void notifySessionCreationFailed(long requestId);
|
|
||||||
void notifySessionUpdated(in RoutingSessionInfo sessionInfo);
|
void notifySessionUpdated(in RoutingSessionInfo sessionInfo);
|
||||||
void notifySessionReleased(in RoutingSessionInfo sessionInfo);
|
void notifySessionReleased(in RoutingSessionInfo sessionInfo);
|
||||||
void notifyRequestFailed(long requestId, int reason);
|
void notifyRequestFailed(long requestId, int reason);
|
||||||
|
|||||||
@@ -233,6 +233,7 @@ public abstract class MediaRoute2ProviderService extends Service {
|
|||||||
String sessionId = sessionInfo.getId();
|
String sessionId = sessionInfo.getId();
|
||||||
synchronized (mSessionLock) {
|
synchronized (mSessionLock) {
|
||||||
if (mSessionInfo.containsKey(sessionId)) {
|
if (mSessionInfo.containsKey(sessionId)) {
|
||||||
|
// TODO: Notify failure to the requester, and throw exception if needed.
|
||||||
Log.w(TAG, "Ignoring duplicate session id.");
|
Log.w(TAG, "Ignoring duplicate session id.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -252,24 +253,6 @@ public abstract class MediaRoute2ProviderService extends Service {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Notifies clients of that the session could not be created.
|
|
||||||
*
|
|
||||||
* @param requestId id of the previous request to create the session provided in
|
|
||||||
* {@link #onCreateSession(long, String, String, Bundle)}.
|
|
||||||
* @see #onCreateSession(long, String, String, Bundle)
|
|
||||||
*/
|
|
||||||
public final void notifySessionCreationFailed(long requestId) {
|
|
||||||
if (mRemoteCallback == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
mRemoteCallback.notifySessionCreationFailed(requestId);
|
|
||||||
} catch (RemoteException ex) {
|
|
||||||
Log.w(TAG, "Failed to notify session creation failed.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Notifies the existing session is updated. For example, when
|
* Notifies the existing session is updated. For example, when
|
||||||
* {@link RoutingSessionInfo#getSelectedRoutes() selected routes} are changed.
|
* {@link RoutingSessionInfo#getSelectedRoutes() selected routes} are changed.
|
||||||
@@ -364,7 +347,7 @@ public abstract class MediaRoute2ProviderService extends Service {
|
|||||||
* {@link Bundle} which contains how to control the session.
|
* {@link Bundle} which contains how to control the session.
|
||||||
* <p>
|
* <p>
|
||||||
* If you can't create the session or want to reject the request, call
|
* If you can't create the session or want to reject the request, call
|
||||||
* {@link #notifySessionCreationFailed(long)} with the given {@code requestId}.
|
* {@link #notifyRequestFailed(long, int)} with the given {@code requestId}.
|
||||||
*
|
*
|
||||||
* @param requestId the id of this request
|
* @param requestId the id of this request
|
||||||
* @param packageName the package name of the application that selected the route
|
* @param packageName the package name of the application that selected the route
|
||||||
|
|||||||
@@ -216,8 +216,7 @@ public class SampleMediaRoute2ProviderService extends MediaRoute2ProviderService
|
|||||||
@Nullable Bundle sessionHints) {
|
@Nullable Bundle sessionHints) {
|
||||||
MediaRoute2Info route = mRoutes.get(routeId);
|
MediaRoute2Info route = mRoutes.get(routeId);
|
||||||
if (route == null || TextUtils.equals(ROUTE_ID3_SESSION_CREATION_FAILED, routeId)) {
|
if (route == null || TextUtils.equals(ROUTE_ID3_SESSION_CREATION_FAILED, routeId)) {
|
||||||
// Tell the router that session cannot be created by passing null as sessionInfo.
|
notifyRequestFailed(requestId, REASON_UNKNOWN_ERROR);
|
||||||
notifySessionCreationFailed(requestId);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
maybeDeselectRoute(routeId);
|
maybeDeselectRoute(routeId);
|
||||||
|
|||||||
@@ -111,7 +111,6 @@ abstract class MediaRoute2Provider {
|
|||||||
void onProviderStateChanged(@Nullable MediaRoute2Provider provider);
|
void onProviderStateChanged(@Nullable MediaRoute2Provider provider);
|
||||||
void onSessionCreated(@NonNull MediaRoute2Provider provider,
|
void onSessionCreated(@NonNull MediaRoute2Provider provider,
|
||||||
@Nullable RoutingSessionInfo sessionInfo, long requestId);
|
@Nullable RoutingSessionInfo sessionInfo, long requestId);
|
||||||
void onSessionCreationFailed(@NonNull MediaRoute2Provider provider, long requestId);
|
|
||||||
void onSessionUpdated(@NonNull MediaRoute2Provider provider,
|
void onSessionUpdated(@NonNull MediaRoute2Provider provider,
|
||||||
@NonNull RoutingSessionInfo sessionInfo);
|
@NonNull RoutingSessionInfo sessionInfo);
|
||||||
void onSessionReleased(@NonNull MediaRoute2Provider provider,
|
void onSessionReleased(@NonNull MediaRoute2Provider provider,
|
||||||
|
|||||||
@@ -328,19 +328,6 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider
|
|||||||
mCallback.onSessionCreated(this, sessionInfo, requestId);
|
mCallback.onSessionCreated(this, sessionInfo, requestId);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onSessionCreationFailed(Connection connection, long requestId) {
|
|
||||||
if (mActiveConnection != connection) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (requestId == MediaRoute2ProviderService.REQUEST_ID_NONE) {
|
|
||||||
Slog.w(TAG, "onSessionCreationFailed: Ignoring requestId REQUEST_ID_NONE");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
mCallback.onSessionCreationFailed(this, requestId);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void onSessionUpdated(Connection connection, RoutingSessionInfo sessionInfo) {
|
private void onSessionUpdated(Connection connection, RoutingSessionInfo sessionInfo) {
|
||||||
if (mActiveConnection != connection) {
|
if (mActiveConnection != connection) {
|
||||||
return;
|
return;
|
||||||
@@ -543,10 +530,6 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider
|
|||||||
mHandler.post(() -> onSessionCreated(Connection.this, sessionInfo, requestId));
|
mHandler.post(() -> onSessionCreated(Connection.this, sessionInfo, requestId));
|
||||||
}
|
}
|
||||||
|
|
||||||
void postSessionCreationFailed(long requestId) {
|
|
||||||
mHandler.post(() -> onSessionCreationFailed(Connection.this, requestId));
|
|
||||||
}
|
|
||||||
|
|
||||||
void postSessionUpdated(RoutingSessionInfo sessionInfo) {
|
void postSessionUpdated(RoutingSessionInfo sessionInfo) {
|
||||||
mHandler.post(() -> onSessionUpdated(Connection.this, sessionInfo));
|
mHandler.post(() -> onSessionUpdated(Connection.this, sessionInfo));
|
||||||
}
|
}
|
||||||
@@ -555,7 +538,7 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider
|
|||||||
mHandler.post(() -> onSessionReleased(Connection.this, sessionInfo));
|
mHandler.post(() -> onSessionReleased(Connection.this, sessionInfo));
|
||||||
}
|
}
|
||||||
|
|
||||||
void postSessionReleased(long requestId, int reason) {
|
void postRequestFailed(long requestId, int reason) {
|
||||||
mHandler.post(() -> onRequestFailed(Connection.this, requestId, reason));
|
mHandler.post(() -> onRequestFailed(Connection.this, requestId, reason));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -588,14 +571,6 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notifySessionCreationFailed(long requestId) {
|
|
||||||
Connection connection = mConnectionRef.get();
|
|
||||||
if (connection != null) {
|
|
||||||
connection.postSessionCreationFailed(requestId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void notifySessionUpdated(RoutingSessionInfo sessionInfo) {
|
public void notifySessionUpdated(RoutingSessionInfo sessionInfo) {
|
||||||
Connection connection = mConnectionRef.get();
|
Connection connection = mConnectionRef.get();
|
||||||
@@ -616,7 +591,7 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider
|
|||||||
public void notifyRequestFailed(long requestId, int reason) {
|
public void notifyRequestFailed(long requestId, int reason) {
|
||||||
Connection connection = mConnectionRef.get();
|
Connection connection = mConnectionRef.get();
|
||||||
if (connection != null) {
|
if (connection != null) {
|
||||||
connection.postSessionReleased(requestId, reason);
|
connection.postRequestFailed(requestId, reason);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -608,7 +608,8 @@ class MediaRouter2ServiceImpl {
|
|||||||
routerRecord.mUserRecord.mHandler.sendMessage(
|
routerRecord.mUserRecord.mHandler.sendMessage(
|
||||||
obtainMessage(UserHandler::requestCreateSessionOnHandler,
|
obtainMessage(UserHandler::requestCreateSessionOnHandler,
|
||||||
routerRecord.mUserRecord.mHandler,
|
routerRecord.mUserRecord.mHandler,
|
||||||
routerRecord, route, uniqueRequestId, sessionHints));
|
routerRecord, /* managerRecord= */ null, route, uniqueRequestId,
|
||||||
|
sessionHints));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void selectRouteWithRouter2Locked(@NonNull IMediaRouter2 router,
|
private void selectRouteWithRouter2Locked(@NonNull IMediaRouter2 router,
|
||||||
@@ -788,7 +789,8 @@ class MediaRouter2ServiceImpl {
|
|||||||
routerRecord.mUserRecord.mHandler.sendMessage(
|
routerRecord.mUserRecord.mHandler.sendMessage(
|
||||||
obtainMessage(UserHandler::requestCreateSessionOnHandler,
|
obtainMessage(UserHandler::requestCreateSessionOnHandler,
|
||||||
routerRecord.mUserRecord.mHandler,
|
routerRecord.mUserRecord.mHandler,
|
||||||
routerRecord, route, uniqueRequestId, null /* sessionHints */));
|
routerRecord, managerRecord, route, uniqueRequestId,
|
||||||
|
/* sessionHints= */ null));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void selectRouteWithManagerLocked(@NonNull IMediaRouter2Manager manager,
|
private void selectRouteWithManagerLocked(@NonNull IMediaRouter2Manager manager,
|
||||||
@@ -927,7 +929,7 @@ class MediaRouter2ServiceImpl {
|
|||||||
return ((long) routerOrManagerId << 32) | originalRequestId;
|
return ((long) routerOrManagerId << 32) | originalRequestId;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int toRouterOrManagerId(long uniqueRequestId) {
|
static int toRequesterId(long uniqueRequestId) {
|
||||||
return (int) (uniqueRequestId >> 32);
|
return (int) (uniqueRequestId >> 32);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1107,11 +1109,6 @@ class MediaRouter2ServiceImpl {
|
|||||||
this, provider, sessionInfo, requestId));
|
this, provider, sessionInfo, requestId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSessionCreationFailed(@NonNull MediaRoute2Provider provider, long requestId) {
|
|
||||||
sendMessage(PooledLambda.obtainMessage(UserHandler::onSessionCreationFailedOnHandler,
|
|
||||||
this, provider, requestId));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSessionUpdated(@NonNull MediaRoute2Provider provider,
|
public void onSessionUpdated(@NonNull MediaRoute2Provider provider,
|
||||||
@@ -1223,7 +1220,8 @@ class MediaRouter2ServiceImpl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void requestCreateSessionOnHandler(@NonNull RouterRecord routerRecord,
|
private void requestCreateSessionOnHandler(@NonNull RouterRecord routerRecord,
|
||||||
@NonNull MediaRoute2Info route, long requestId, @Nullable Bundle sessionHints) {
|
@Nullable ManagerRecord managerRecord, @NonNull MediaRoute2Info route,
|
||||||
|
long requestId, @Nullable Bundle sessionHints) {
|
||||||
|
|
||||||
final MediaRoute2Provider provider = findProvider(route.getProviderId());
|
final MediaRoute2Provider provider = findProvider(route.getProviderId());
|
||||||
if (provider == null) {
|
if (provider == null) {
|
||||||
@@ -1235,7 +1233,7 @@ class MediaRouter2ServiceImpl {
|
|||||||
|
|
||||||
// TODO: Apply timeout for each request (How many seconds should we wait?)
|
// TODO: Apply timeout for each request (How many seconds should we wait?)
|
||||||
SessionCreationRequest request =
|
SessionCreationRequest request =
|
||||||
new SessionCreationRequest(routerRecord, route, requestId);
|
new SessionCreationRequest(routerRecord, managerRecord, route, requestId);
|
||||||
mSessionCreationRequests.add(request);
|
mSessionCreationRequests.add(request);
|
||||||
|
|
||||||
provider.requestCreateSession(routerRecord.mPackageName, route.getOriginalId(),
|
provider.requestCreateSession(routerRecord.mPackageName, route.getOriginalId(),
|
||||||
@@ -1421,30 +1419,6 @@ class MediaRouter2ServiceImpl {
|
|||||||
mSessionToRouterMap.put(sessionInfo.getId(), routerRecord);
|
mSessionToRouterMap.put(sessionInfo.getId(), routerRecord);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onSessionCreationFailedOnHandler(@NonNull MediaRoute2Provider provider,
|
|
||||||
long requestId) {
|
|
||||||
SessionCreationRequest matchingRequest = null;
|
|
||||||
|
|
||||||
for (SessionCreationRequest request : mSessionCreationRequests) {
|
|
||||||
if (request.mRequestId == requestId
|
|
||||||
&& TextUtils.equals(
|
|
||||||
request.mRoute.getProviderId(), provider.getUniqueId())) {
|
|
||||||
matchingRequest = request;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (matchingRequest == null) {
|
|
||||||
Slog.w(TAG, "Ignoring session creation failed result for unknown request. "
|
|
||||||
+ "requestId=" + requestId);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
mSessionCreationRequests.remove(matchingRequest);
|
|
||||||
notifySessionCreationFailedToRouter(matchingRequest.mRouterRecord,
|
|
||||||
toOriginalRequestId(requestId));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void onSessionInfoChangedOnHandler(@NonNull MediaRoute2Provider provider,
|
private void onSessionInfoChangedOnHandler(@NonNull MediaRoute2Provider provider,
|
||||||
@NonNull RoutingSessionInfo sessionInfo) {
|
@NonNull RoutingSessionInfo sessionInfo) {
|
||||||
List<IMediaRouter2Manager> managers = getManagers();
|
List<IMediaRouter2Manager> managers = getManagers();
|
||||||
@@ -1483,30 +1457,56 @@ class MediaRouter2ServiceImpl {
|
|||||||
|
|
||||||
private void onRequestFailedOnHandler(@NonNull MediaRoute2Provider provider,
|
private void onRequestFailedOnHandler(@NonNull MediaRoute2Provider provider,
|
||||||
long requestId, int reason) {
|
long requestId, int reason) {
|
||||||
final int managerId = toRouterOrManagerId(requestId);
|
if (handleSessionCreationRequestFailed(provider, requestId, reason)) {
|
||||||
|
|
||||||
MediaRouter2ServiceImpl service = mServiceRef.get();
|
|
||||||
if (service == null) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ManagerRecord managerToNotifyFailure = null;
|
final int requesterId = toRequesterId(requestId);
|
||||||
synchronized (service.mLock) {
|
for (ManagerRecord manager : getManagerRecords()) {
|
||||||
for (ManagerRecord manager : mUserRecord.mManagerRecords) {
|
if (manager.mManagerId == requesterId) {
|
||||||
if (manager.mManagerId == managerId) {
|
notifyRequestFailedToManager(
|
||||||
managerToNotifyFailure = manager;
|
manager.mManager, toOriginalRequestId(requestId), reason);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Currently, only the manager can get notified of failures.
|
||||||
|
// TODO: Notify router too when the related callback is introduced.
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Find a way to prevent providers from notifying error on random requestId.
|
||||||
|
// Solutions can be:
|
||||||
|
// 1) Record the other type of requests too (not only session creation request)
|
||||||
|
// 2) Throw exception on providers when they try to notify error on random requestId.
|
||||||
|
private boolean handleSessionCreationRequestFailed(@NonNull MediaRoute2Provider provider,
|
||||||
|
long requestId, int reason) {
|
||||||
|
// Check whether the failure is about creating a session
|
||||||
|
SessionCreationRequest matchingRequest = null;
|
||||||
|
for (SessionCreationRequest request : mSessionCreationRequests) {
|
||||||
|
if (request.mRequestId == requestId && TextUtils.equals(
|
||||||
|
request.mRoute.getProviderId(), provider.getUniqueId())) {
|
||||||
|
matchingRequest = request;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (matchingRequest == null) {
|
||||||
|
// The failure is not about creating a session.
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (managerToNotifyFailure == null) {
|
mSessionCreationRequests.remove(matchingRequest);
|
||||||
Slog.w(TAG, "No matching managerRecord found for managerId=" + managerId);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
notifyRequestFailedToManager(
|
// Notify the requester about the failure.
|
||||||
managerToNotifyFailure.mManager, toOriginalRequestId(requestId), reason);
|
// The call should be made by either MediaRouter2 or MediaRouter2Manager.
|
||||||
|
if (matchingRequest.mRequestedManagerRecord == null) {
|
||||||
|
notifySessionCreationFailedToRouter(
|
||||||
|
matchingRequest.mRouterRecord, toOriginalRequestId(requestId));
|
||||||
|
} else {
|
||||||
|
notifyRequestFailedToManager(matchingRequest.mRequestedManagerRecord.mManager,
|
||||||
|
toOriginalRequestId(requestId), reason);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void notifySessionCreatedToRouter(@NonNull RouterRecord routerRecord,
|
private void notifySessionCreatedToRouter(@NonNull RouterRecord routerRecord,
|
||||||
@@ -1596,6 +1596,16 @@ class MediaRouter2ServiceImpl {
|
|||||||
return managers;
|
return managers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<ManagerRecord> getManagerRecords() {
|
||||||
|
MediaRouter2ServiceImpl service = mServiceRef.get();
|
||||||
|
if (service == null) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
synchronized (service.mLock) {
|
||||||
|
return new ArrayList<>(mUserRecord.mManagerRecords);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void notifyRoutesToRouter(@NonNull IMediaRouter2 router) {
|
private void notifyRoutesToRouter(@NonNull IMediaRouter2 router) {
|
||||||
List<MediaRoute2Info> routes = new ArrayList<>();
|
List<MediaRoute2Info> routes = new ArrayList<>();
|
||||||
for (MediaRoute2ProviderInfo providerInfo : mLastProviderInfos) {
|
for (MediaRoute2ProviderInfo providerInfo : mLastProviderInfos) {
|
||||||
@@ -1789,12 +1799,16 @@ class MediaRouter2ServiceImpl {
|
|||||||
|
|
||||||
final class SessionCreationRequest {
|
final class SessionCreationRequest {
|
||||||
public final RouterRecord mRouterRecord;
|
public final RouterRecord mRouterRecord;
|
||||||
|
public final ManagerRecord mRequestedManagerRecord;
|
||||||
public final MediaRoute2Info mRoute;
|
public final MediaRoute2Info mRoute;
|
||||||
public final long mRequestId;
|
public final long mRequestId;
|
||||||
|
|
||||||
|
// requestedManagerRecord is not null only when the request is made by manager.
|
||||||
SessionCreationRequest(@NonNull RouterRecord routerRecord,
|
SessionCreationRequest(@NonNull RouterRecord routerRecord,
|
||||||
|
@Nullable ManagerRecord requestedManagerRecord,
|
||||||
@NonNull MediaRoute2Info route, long requestId) {
|
@NonNull MediaRoute2Info route, long requestId) {
|
||||||
mRouterRecord = routerRecord;
|
mRouterRecord = routerRecord;
|
||||||
|
mRequestedManagerRecord = requestedManagerRecord;
|
||||||
mRoute = route;
|
mRoute = route;
|
||||||
mRequestId = requestId;
|
mRequestId = requestId;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user