I'm creating a cast-enabled application using the CastVideos-android sample project as a reference.
Version 1.2 of the CastVideos-android sample uses this forked version of the ShowcaseView library to display a very nice looking overlay to highlight the cast button.
This is great and helps developers satisfy the Cast Sender-App UI requirements, but this forked version of the ShowcaseView library doesn't play well with apps that may use multiple icons in the ActionBar.
For example, when adding a SearchView-type item to the ActionBar the ShowcaseView bugs-out.
The result is below and the steps to replicate this behavior are below the screenshot :
Steps to replicate:
- Include the v7-appcompat as a library project in the CastVideo-android project.
Change the res/menu/main.xml in the CastVideo-android project to look like the following (adding an ActionView of type SearchView to the ActionBar) :
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:compat="http://schemas.android.com/apk/lib/res/android.support.v7.appcompat" > <item android:id="@+id/media_route_menu_item" android:title="@string/media_route_menu_title" app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider" app:showAsAction="always"/> <item android:id="@+id/action_settings" android:title="@string/action_settings" app:showAsAction="never"/> <item android:id="@+id/search" android:icon="@drawable/abc_ic_search" app:title="@string/menu_Search" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="collapseActionView|ifRoom"/> </menu>
I'm using the latest version of the v7-appcompat library.
I suspect the culprit to be how the ActionBarViewWrapper.getMediaRouterButtonView() method (found in com.github.amlcurran.showcaseview.targets) is finding the MediaRouterButton via reflection, but can't seem to understand how to find the MediaRouterButton if there are multiple icons items in the ActionBar.
Any help would be greatly appreciated!