MediaRouteControlDialog: add group expand/collapse button

Currently, the button is no-op. The expand/collapse implementation will be
addressed with a separate change.

Bug: 23118003
Change-Id: I770b157dd12248f6779783d8236a36eb4227c7d6
diff --git a/local.properties b/local.properties
index 5b31c8a..8aea008 100644
--- a/local.properties
+++ b/local.properties
@@ -1 +1,11 @@
-android.dir=../../
\ No newline at end of file
+## This file is automatically generated by Android Studio.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must *NOT* be checked into Version Control Systems,
+# as it contains information specific to your local configuration.
+#
+# Location of the SDK. This is only used by Gradle.
+# For customization when using a Version Control System, please read the
+# header note.
+#Fri Aug 21 16:47:26 KST 2015
+android.dir=../../
diff --git a/v7/mediarouter/res/drawable-hdpi/ic_keyboard_arrow_down_black.png b/v7/mediarouter/res/drawable-hdpi/ic_keyboard_arrow_down_black.png
new file mode 100644
index 0000000..3d7f83f
--- /dev/null
+++ b/v7/mediarouter/res/drawable-hdpi/ic_keyboard_arrow_down_black.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-hdpi/ic_keyboard_arrow_down_white.png b/v7/mediarouter/res/drawable-hdpi/ic_keyboard_arrow_down_white.png
new file mode 100644
index 0000000..bbb4fb4
--- /dev/null
+++ b/v7/mediarouter/res/drawable-hdpi/ic_keyboard_arrow_down_white.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-hdpi/ic_keyboard_arrow_up_black.png b/v7/mediarouter/res/drawable-hdpi/ic_keyboard_arrow_up_black.png
new file mode 100644
index 0000000..57139a7
--- /dev/null
+++ b/v7/mediarouter/res/drawable-hdpi/ic_keyboard_arrow_up_black.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-hdpi/ic_keyboard_arrow_up_white.png b/v7/mediarouter/res/drawable-hdpi/ic_keyboard_arrow_up_white.png
new file mode 100644
index 0000000..dea8988
--- /dev/null
+++ b/v7/mediarouter/res/drawable-hdpi/ic_keyboard_arrow_up_white.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-mdpi/ic_keyboard_arrow_down_black.png b/v7/mediarouter/res/drawable-mdpi/ic_keyboard_arrow_down_black.png
new file mode 100644
index 0000000..5b1fa06
--- /dev/null
+++ b/v7/mediarouter/res/drawable-mdpi/ic_keyboard_arrow_down_black.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-mdpi/ic_keyboard_arrow_down_white.png b/v7/mediarouter/res/drawable-mdpi/ic_keyboard_arrow_down_white.png
new file mode 100644
index 0000000..ef8a4b6
--- /dev/null
+++ b/v7/mediarouter/res/drawable-mdpi/ic_keyboard_arrow_down_white.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-mdpi/ic_keyboard_arrow_up_black.png b/v7/mediarouter/res/drawable-mdpi/ic_keyboard_arrow_up_black.png
new file mode 100644
index 0000000..08c16a3
--- /dev/null
+++ b/v7/mediarouter/res/drawable-mdpi/ic_keyboard_arrow_up_black.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-mdpi/ic_keyboard_arrow_up_white.png b/v7/mediarouter/res/drawable-mdpi/ic_keyboard_arrow_up_white.png
new file mode 100644
index 0000000..a2e4baa
--- /dev/null
+++ b/v7/mediarouter/res/drawable-mdpi/ic_keyboard_arrow_up_white.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-xhdpi/ic_keyboard_arrow_down_black.png b/v7/mediarouter/res/drawable-xhdpi/ic_keyboard_arrow_down_black.png
new file mode 100644
index 0000000..94016f4
--- /dev/null
+++ b/v7/mediarouter/res/drawable-xhdpi/ic_keyboard_arrow_down_black.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-xhdpi/ic_keyboard_arrow_down_white.png b/v7/mediarouter/res/drawable-xhdpi/ic_keyboard_arrow_down_white.png
new file mode 100644
index 0000000..058cebb
--- /dev/null
+++ b/v7/mediarouter/res/drawable-xhdpi/ic_keyboard_arrow_down_white.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-xhdpi/ic_keyboard_arrow_up_black.png b/v7/mediarouter/res/drawable-xhdpi/ic_keyboard_arrow_up_black.png
new file mode 100644
index 0000000..323360e
--- /dev/null
+++ b/v7/mediarouter/res/drawable-xhdpi/ic_keyboard_arrow_up_black.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-xhdpi/ic_keyboard_arrow_up_white.png b/v7/mediarouter/res/drawable-xhdpi/ic_keyboard_arrow_up_white.png
new file mode 100644
index 0000000..ae36d91
--- /dev/null
+++ b/v7/mediarouter/res/drawable-xhdpi/ic_keyboard_arrow_up_white.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-xxhdpi/ic_keyboard_arrow_down_black.png b/v7/mediarouter/res/drawable-xxhdpi/ic_keyboard_arrow_down_black.png
new file mode 100644
index 0000000..17811ae
--- /dev/null
+++ b/v7/mediarouter/res/drawable-xxhdpi/ic_keyboard_arrow_down_black.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-xxhdpi/ic_keyboard_arrow_down_white.png b/v7/mediarouter/res/drawable-xxhdpi/ic_keyboard_arrow_down_white.png
new file mode 100644
index 0000000..f9622b7
--- /dev/null
+++ b/v7/mediarouter/res/drawable-xxhdpi/ic_keyboard_arrow_down_white.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-xxhdpi/ic_keyboard_arrow_up_black.png b/v7/mediarouter/res/drawable-xxhdpi/ic_keyboard_arrow_up_black.png
new file mode 100644
index 0000000..748ed3f
--- /dev/null
+++ b/v7/mediarouter/res/drawable-xxhdpi/ic_keyboard_arrow_up_black.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-xxhdpi/ic_keyboard_arrow_up_white.png b/v7/mediarouter/res/drawable-xxhdpi/ic_keyboard_arrow_up_white.png
new file mode 100644
index 0000000..ce4aa56
--- /dev/null
+++ b/v7/mediarouter/res/drawable-xxhdpi/ic_keyboard_arrow_up_white.png
Binary files differ
diff --git a/v7/mediarouter/res/layout/mr_media_route_controller_material_dialog_b.xml b/v7/mediarouter/res/layout/mr_media_route_controller_material_dialog_b.xml
index 52f84c7..f53cc7a 100644
--- a/v7/mediarouter/res/layout/mr_media_route_controller_material_dialog_b.xml
+++ b/v7/mediarouter/res/layout/mr_media_route_controller_material_dialog_b.xml
@@ -114,6 +114,14 @@
                      android:layout_weight="1"
                      android:layout_marginLeft="8dp"
                      android:layout_marginRight="8dp" />
+            <ImageButton android:id="@+id/media_route_group_expand_collapse"
+                         android:layout_width="48dip"
+                         android:layout_height="48dip"
+                         android:padding="12dip"
+                         android:contentDescription="@string/mr_media_route_controller_expand_group"
+                         android:src="?attr/mediaRouteExpandGroupDrawable"
+                         android:background="?attr/selectableItemBackgroundBorderless"
+                         android:visibility="gone"/>
         </LinearLayout>
         <LinearLayout android:id="@+id/buttons"
                 android:layout_width="match_parent"
diff --git a/v7/mediarouter/res/values/attrs.xml b/v7/mediarouter/res/values/attrs.xml
index 36dd38f..73f589f 100644
--- a/v7/mediarouter/res/values/attrs.xml
+++ b/v7/mediarouter/res/values/attrs.xml
@@ -39,4 +39,6 @@
     <attr name="mediaRouteSpeakerGroupIconDrawable" format="reference" />
     <attr name="mediaRouteTextStyle" format="reference" />
     <attr name="mediaRouteSecondaryTextStyle" format="reference" />
+    <attr name="mediaRouteExpandGroupDrawable" format="reference" />
+    <attr name="mediaRouteCollapseGroupDrawable" format="reference" />
 </resources>
diff --git a/v7/mediarouter/res/values/strings.xml b/v7/mediarouter/res/values/strings.xml
index b621522..5d13468 100644
--- a/v7/mediarouter/res/values/strings.xml
+++ b/v7/mediarouter/res/values/strings.xml
@@ -46,6 +46,12 @@
     <!-- Accessibility description for the pause button -->
     <string name="mr_media_route_controller_pause">Pause</string>
 
+    <!-- Accessibility description for the collapse group button -->
+    <string name="mr_media_route_controller_collapse_group">Collapse group</string>
+
+    <!-- Accessibility description for the expand group button -->
+    <string name="mr_media_route_controller_expand_group">Expand group</string>
+
     <!-- Placeholder text to show when no title/description have been found for a given song/video. [CHAR LIMIT=50] -->
     <string name="mr_media_route_controller_no_info_available">No info available</string>
 </resources>
diff --git a/v7/mediarouter/res/values/themes.xml b/v7/mediarouter/res/values/themes.xml
index 70a58ad..eb2d8ac 100644
--- a/v7/mediarouter/res/values/themes.xml
+++ b/v7/mediarouter/res/values/themes.xml
@@ -32,6 +32,8 @@
         <item name="mediaRouteSpeakerGroupIconDrawable">@drawable/ic_speaker_group_dark</item>
         <item name="mediaRouteTextStyle">@style/Widget.MediaRouter.MediaRouteText.Primary.Dark</item>
         <item name="mediaRouteSecondaryTextStyle">@style/Widget.MediaRouter.MediaRouteText.Secondary.Dark</item>
+        <item name="mediaRouteExpandGroupDrawable">@drawable/ic_keyboard_arrow_down_white</item>
+        <item name="mediaRouteCollapseGroupDrawable">@drawable/ic_keyboard_arrow_up_white</item>
     </style>
 
     <style name="Theme.MediaRouter.Light" parent="">
@@ -50,6 +52,8 @@
         <item name="mediaRouteSpeakerGroupIconDrawable">@drawable/ic_speaker_group_light</item>
         <item name="mediaRouteTextStyle">@style/Widget.MediaRouter.MediaRouteText.Primary.Light</item>
         <item name="mediaRouteSecondaryTextStyle">@style/Widget.MediaRouter.MediaRouteText.Secondary.Light</item>
+        <item name="mediaRouteExpandGroupDrawable">@drawable/ic_keyboard_arrow_down_black</item>
+        <item name="mediaRouteCollapseGroupDrawable">@drawable/ic_keyboard_arrow_up_black</item>
     </style>
 
 </resources>
diff --git a/v7/mediarouter/src/android/support/v7/app/MediaRouteControllerDialog.java b/v7/mediarouter/src/android/support/v7/app/MediaRouteControllerDialog.java
index 035db36..592e974 100644
--- a/v7/mediarouter/src/android/support/v7/app/MediaRouteControllerDialog.java
+++ b/v7/mediarouter/src/android/support/v7/app/MediaRouteControllerDialog.java
@@ -84,6 +84,7 @@
     private Button mStopCastingButton;
     private ImageButton mPlayPauseButton;
     private ImageButton mSettingsButton;
+    private ImageButton mGroupExpandCollapseButton;
 
     private ImageView mArtView;
     private TextView mTitleView;
@@ -235,6 +236,8 @@
         mPlayPauseButton.setOnClickListener(listener);
         mRouteNameView = (TextView) findViewById(R.id.route_name);
         mVolumeLayout = (LinearLayout)findViewById(R.id.media_route_volume_layout);
+        mGroupExpandCollapseButton = (ImageButton)findViewById(
+                R.id.media_route_group_expand_collapse);
         mVolumeSlider = (SeekBar)findViewById(R.id.media_route_volume_slider);
         mVolumeSlider.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
             private final Runnable mStopTrackingTouch = new Runnable() {
@@ -423,6 +426,8 @@
                 mVolumeLayout.setVisibility(View.VISIBLE);
                 mVolumeSlider.setMax(mRoute.getVolumeMax());
                 mVolumeSlider.setProgress(mRoute.getVolume());
+                mGroupExpandCollapseButton.setVisibility(mRoute instanceof MediaRouter.RouteGroup
+                        ? View.VISIBLE : View.GONE);
             } else {
                 mVolumeLayout.setVisibility(View.GONE);
             }