Loading media/java/android/media/IMediaRouter2Manager.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ import android.media.AppId; */ oneway interface IMediaRouter2Manager { void notifySessionCreated(int requestId, in RoutingSessionInfo session); void notifySessionUpdated(in RoutingSessionInfo session); void notifySessionUpdated(in RoutingSessionInfo session, in boolean shouldShowVolumeUi); void notifySessionReleased(in RoutingSessionInfo session); void notifyDiscoveryPreferenceChanged(String packageName, in RouteDiscoveryPreference discoveryPreference); Loading media/java/android/media/MediaRouter2.java +33 −11 Original line number Diff line number Diff line Loading @@ -1332,7 +1332,7 @@ public final class MediaRouter2 { mSystemController.setRoutingSessionInfo(ensureClientPackageNameForSystemSession( currentSystemSessionInfo, mContext.getPackageName())); if (!oldInfo.equals(currentSystemSessionInfo)) { notifyControllerUpdated(mSystemController); notifyControllerUpdated(mSystemController, /* shouldShowVolumeUi= */ false); } } Loading Loading @@ -1396,7 +1396,7 @@ public final class MediaRouter2 { MediaRoute2Info currentRoute = routesMap.get(selectedRoute); MediaRoute2Info oldRoute = mPreviousUnfilteredRoutes.get(selectedRoute); if (!currentRoute.equals(oldRoute)) { notifyControllerUpdated(controller); notifyControllerUpdated(controller, /* shouldShowVolumeUi= */ false); break; } } Loading Loading @@ -1527,7 +1527,7 @@ public final class MediaRouter2 { sessionInfo, mImpl.getClientPackageName()); } controller.setRoutingSessionInfo(sessionInfo); notifyControllerUpdated(controller); notifyControllerUpdated(controller, /* shouldShowVolumeUi= */ false); } } Loading Loading @@ -1775,9 +1775,10 @@ public final class MediaRouter2 { } } private void notifyControllerUpdated(RoutingController controller) { private void notifyControllerUpdated(RoutingController controller, boolean shouldShowVolumeUi) { for (ControllerCallbackRecord record : mControllerCallbackRecords) { record.mExecutor.execute(() -> record.mCallback.onControllerUpdated(controller)); record.mExecutor.execute( () -> record.mCallback.onControllerUpdated(controller, shouldShowVolumeUi)); } } Loading Loading @@ -1960,6 +1961,23 @@ public final class MediaRouter2 { * @see #getSystemController() */ public void onControllerUpdated(@NonNull RoutingController controller) {} /** * Equivalent to {@link #onControllerUpdated(RoutingController)} except it adds {@code * shouldShowVolumeUi}, which indicates that a UI affordance should be presented as a result * of this controller update. Likely, because the update is the result of a HW volume key * press. * * <p>By default, this method invokes {@link #onControllerUpdated(RoutingController)}, which * means it's sufficient to override any of the methods in this class to receive controller * update events. * * @hide */ public void onControllerUpdated( @NonNull RoutingController controller, boolean shouldShowVolumeUi) { this.onControllerUpdated(controller); } } /** Loading Loading @@ -3704,7 +3722,8 @@ public final class MediaRouter2 { notifyTransferFailure(route); } private void onSessionUpdated(@NonNull RoutingSessionInfo session) { private void onSessionUpdated( @NonNull RoutingSessionInfo session, boolean shouldShowVolumeUi) { if (!isSessionRelatedToTargetPackageName(session)) { return; } Loading @@ -3717,7 +3736,7 @@ public final class MediaRouter2 { } else { controller = new RoutingController(session); } notifyControllerUpdated(controller); notifyControllerUpdated(controller, shouldShowVolumeUi); } /** Loading Loading @@ -3773,7 +3792,8 @@ public final class MediaRouter2 { } } private void onSessionUpdatedOnHandler(@NonNull RoutingSessionInfo updatedSession) { private void onSessionUpdatedOnHandler( @NonNull RoutingSessionInfo updatedSession, boolean shouldShowVolumeUi) { for (MediaRouter2Manager.TransferRequest request : mTransferRequests) { String sessionId = request.mOldSessionInfo.getId(); if (!TextUtils.equals(sessionId, updatedSession.getId())) { Loading @@ -3785,7 +3805,7 @@ public final class MediaRouter2 { break; } } this.onSessionUpdated(updatedSession); this.onSessionUpdated(updatedSession, shouldShowVolumeUi); } private void onSessionReleasedOnHandler(@NonNull RoutingSessionInfo session) { Loading Loading @@ -3922,12 +3942,14 @@ public final class MediaRouter2 { } @Override public void notifySessionUpdated(RoutingSessionInfo routingSessionInfo) { public void notifySessionUpdated( RoutingSessionInfo routingSessionInfo, boolean shouldShowVolumeUi) { mHandler.sendMessage( obtainMessage( ProxyMediaRouter2Impl::onSessionUpdatedOnHandler, ProxyMediaRouter2Impl.this, routingSessionInfo)); routingSessionInfo, shouldShowVolumeUi)); } @Override Loading media/java/android/media/MediaRouter2Manager.java +8 −3 Original line number Diff line number Diff line Loading @@ -1116,9 +1116,14 @@ public final class MediaRouter2Manager { } @Override public void notifySessionUpdated(RoutingSessionInfo session) { mHandler.sendMessage(obtainMessage(MediaRouter2Manager::handleSessionsUpdatedOnHandler, MediaRouter2Manager.this, session)); public void notifySessionUpdated( RoutingSessionInfo session, boolean ignoredShouldShowVolumeUi) { // This class doesn't support shouldShowVolumeUi. MediaRouter2 does. mHandler.sendMessage( obtainMessage( MediaRouter2Manager::handleSessionsUpdatedOnHandler, MediaRouter2Manager.this, session)); } @Override Loading services/core/java/com/android/server/media/MediaRoute2Provider.java +6 −1 Original line number Diff line number Diff line Loading @@ -198,11 +198,16 @@ abstract class MediaRoute2Provider { * affected by global session changes. This set may only be non-empty when the {@code * sessionInfo} is for the global session, and therefore has no {@link * RoutingSessionInfo#getClientPackageName()}. * @param shouldShowVolumeSystemUi Whether a volume UI affordance should be presented as a * result of this session update. For example, this session update may be the result of * a volume change in response to a volume hardware key press, in which case a volume * slider should be presented. */ void onSessionUpdated( @NonNull MediaRoute2Provider provider, @NonNull RoutingSessionInfo sessionInfo, Set<String> packageNamesWithRoutingSessionOverrides); Set<String> packageNamesWithRoutingSessionOverrides, boolean shouldShowVolumeSystemUi); void onSessionReleased(@NonNull MediaRoute2Provider provider, @NonNull RoutingSessionInfo sessionInfo); Loading services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java +2 −1 Original line number Diff line number Diff line Loading @@ -697,7 +697,8 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider { mCallback::onSessionUpdated, this, session, /* packageNamesWithRoutingSessionOverrides= */ Set.of())); /* packageNamesWithRoutingSessionOverrides= */ Set.of(), /* shouldShowVolumeUi= */ false)); } private void dispatchSessionReleased(RoutingSessionInfo session) { Loading Loading
media/java/android/media/IMediaRouter2Manager.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ import android.media.AppId; */ oneway interface IMediaRouter2Manager { void notifySessionCreated(int requestId, in RoutingSessionInfo session); void notifySessionUpdated(in RoutingSessionInfo session); void notifySessionUpdated(in RoutingSessionInfo session, in boolean shouldShowVolumeUi); void notifySessionReleased(in RoutingSessionInfo session); void notifyDiscoveryPreferenceChanged(String packageName, in RouteDiscoveryPreference discoveryPreference); Loading
media/java/android/media/MediaRouter2.java +33 −11 Original line number Diff line number Diff line Loading @@ -1332,7 +1332,7 @@ public final class MediaRouter2 { mSystemController.setRoutingSessionInfo(ensureClientPackageNameForSystemSession( currentSystemSessionInfo, mContext.getPackageName())); if (!oldInfo.equals(currentSystemSessionInfo)) { notifyControllerUpdated(mSystemController); notifyControllerUpdated(mSystemController, /* shouldShowVolumeUi= */ false); } } Loading Loading @@ -1396,7 +1396,7 @@ public final class MediaRouter2 { MediaRoute2Info currentRoute = routesMap.get(selectedRoute); MediaRoute2Info oldRoute = mPreviousUnfilteredRoutes.get(selectedRoute); if (!currentRoute.equals(oldRoute)) { notifyControllerUpdated(controller); notifyControllerUpdated(controller, /* shouldShowVolumeUi= */ false); break; } } Loading Loading @@ -1527,7 +1527,7 @@ public final class MediaRouter2 { sessionInfo, mImpl.getClientPackageName()); } controller.setRoutingSessionInfo(sessionInfo); notifyControllerUpdated(controller); notifyControllerUpdated(controller, /* shouldShowVolumeUi= */ false); } } Loading Loading @@ -1775,9 +1775,10 @@ public final class MediaRouter2 { } } private void notifyControllerUpdated(RoutingController controller) { private void notifyControllerUpdated(RoutingController controller, boolean shouldShowVolumeUi) { for (ControllerCallbackRecord record : mControllerCallbackRecords) { record.mExecutor.execute(() -> record.mCallback.onControllerUpdated(controller)); record.mExecutor.execute( () -> record.mCallback.onControllerUpdated(controller, shouldShowVolumeUi)); } } Loading Loading @@ -1960,6 +1961,23 @@ public final class MediaRouter2 { * @see #getSystemController() */ public void onControllerUpdated(@NonNull RoutingController controller) {} /** * Equivalent to {@link #onControllerUpdated(RoutingController)} except it adds {@code * shouldShowVolumeUi}, which indicates that a UI affordance should be presented as a result * of this controller update. Likely, because the update is the result of a HW volume key * press. * * <p>By default, this method invokes {@link #onControllerUpdated(RoutingController)}, which * means it's sufficient to override any of the methods in this class to receive controller * update events. * * @hide */ public void onControllerUpdated( @NonNull RoutingController controller, boolean shouldShowVolumeUi) { this.onControllerUpdated(controller); } } /** Loading Loading @@ -3704,7 +3722,8 @@ public final class MediaRouter2 { notifyTransferFailure(route); } private void onSessionUpdated(@NonNull RoutingSessionInfo session) { private void onSessionUpdated( @NonNull RoutingSessionInfo session, boolean shouldShowVolumeUi) { if (!isSessionRelatedToTargetPackageName(session)) { return; } Loading @@ -3717,7 +3736,7 @@ public final class MediaRouter2 { } else { controller = new RoutingController(session); } notifyControllerUpdated(controller); notifyControllerUpdated(controller, shouldShowVolumeUi); } /** Loading Loading @@ -3773,7 +3792,8 @@ public final class MediaRouter2 { } } private void onSessionUpdatedOnHandler(@NonNull RoutingSessionInfo updatedSession) { private void onSessionUpdatedOnHandler( @NonNull RoutingSessionInfo updatedSession, boolean shouldShowVolumeUi) { for (MediaRouter2Manager.TransferRequest request : mTransferRequests) { String sessionId = request.mOldSessionInfo.getId(); if (!TextUtils.equals(sessionId, updatedSession.getId())) { Loading @@ -3785,7 +3805,7 @@ public final class MediaRouter2 { break; } } this.onSessionUpdated(updatedSession); this.onSessionUpdated(updatedSession, shouldShowVolumeUi); } private void onSessionReleasedOnHandler(@NonNull RoutingSessionInfo session) { Loading Loading @@ -3922,12 +3942,14 @@ public final class MediaRouter2 { } @Override public void notifySessionUpdated(RoutingSessionInfo routingSessionInfo) { public void notifySessionUpdated( RoutingSessionInfo routingSessionInfo, boolean shouldShowVolumeUi) { mHandler.sendMessage( obtainMessage( ProxyMediaRouter2Impl::onSessionUpdatedOnHandler, ProxyMediaRouter2Impl.this, routingSessionInfo)); routingSessionInfo, shouldShowVolumeUi)); } @Override Loading
media/java/android/media/MediaRouter2Manager.java +8 −3 Original line number Diff line number Diff line Loading @@ -1116,9 +1116,14 @@ public final class MediaRouter2Manager { } @Override public void notifySessionUpdated(RoutingSessionInfo session) { mHandler.sendMessage(obtainMessage(MediaRouter2Manager::handleSessionsUpdatedOnHandler, MediaRouter2Manager.this, session)); public void notifySessionUpdated( RoutingSessionInfo session, boolean ignoredShouldShowVolumeUi) { // This class doesn't support shouldShowVolumeUi. MediaRouter2 does. mHandler.sendMessage( obtainMessage( MediaRouter2Manager::handleSessionsUpdatedOnHandler, MediaRouter2Manager.this, session)); } @Override Loading
services/core/java/com/android/server/media/MediaRoute2Provider.java +6 −1 Original line number Diff line number Diff line Loading @@ -198,11 +198,16 @@ abstract class MediaRoute2Provider { * affected by global session changes. This set may only be non-empty when the {@code * sessionInfo} is for the global session, and therefore has no {@link * RoutingSessionInfo#getClientPackageName()}. * @param shouldShowVolumeSystemUi Whether a volume UI affordance should be presented as a * result of this session update. For example, this session update may be the result of * a volume change in response to a volume hardware key press, in which case a volume * slider should be presented. */ void onSessionUpdated( @NonNull MediaRoute2Provider provider, @NonNull RoutingSessionInfo sessionInfo, Set<String> packageNamesWithRoutingSessionOverrides); Set<String> packageNamesWithRoutingSessionOverrides, boolean shouldShowVolumeSystemUi); void onSessionReleased(@NonNull MediaRoute2Provider provider, @NonNull RoutingSessionInfo sessionInfo); Loading
services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java +2 −1 Original line number Diff line number Diff line Loading @@ -697,7 +697,8 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider { mCallback::onSessionUpdated, this, session, /* packageNamesWithRoutingSessionOverrides= */ Set.of())); /* packageNamesWithRoutingSessionOverrides= */ Set.of(), /* shouldShowVolumeUi= */ false)); } private void dispatchSessionReleased(RoutingSessionInfo session) { Loading