I am currently using the CastCompanionLibrary in my project. It is working well, however I need to customize the behaviour of the Cast button.
Currently, a dialog button containing the Cast devices is being shown (which is the expected behaviour). Also, when casting, the metadata and a stop/start button is shown. I need to customize this. I don't want to show the stop/start buttons. How can I achieve that?
Here are the related parts of my code:
<item
android:id="@+id/media_route_menu_item"
android:title="Google Cast"
compat:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"
compat:showAsAction="always"/>
and
if (mCastManager != null) {
mediaRouteMenuItem = mCastManager.addMediaRouterButton(menu, R.id.media_route_menu_item);
}
You have a couple of options. First, you should note that when you are casting, you can build your app in a way that the act of stopping cast at that time would result in local playback so "stop casting" button should suffice. If you are fine with just hiding the "content" area of the existing dialog provided by CCL, you can copy the layout file "custom_media_route_controller_controls_dialog.xml" into your own project and just hide the area that you want (don't remove any components but wrap the content area in a simple layout and hide that layout). If you prefer to have your own, follow what CCL does; extend MediaRouteDialogFactory by overriding onCreateControllerDialogFragment(), and define your own extension of MediaRouteControllerDialog (see the package com.google.android.libraries.cast.companionlibrary.cast.dialog.video in CCL) and finally, extends VideoCastManager and override getMediaRouteDialogFactory() there to return your own factory.