diff --git a/build.gradle b/build.gradle
index 77cff72..6a90344 100644
--- a/build.gradle
+++ b/build.gradle
@@ -10,7 +10,7 @@
 }
 
 ext.supportVersion = '23.0.1'
-ext.extraVersion = 18
+ext.extraVersion = 19
 ext.supportRepoOut = ''
 ext.buildToolsVersion = '22.1.0'
 ext.buildNumber = Integer.toString(ext.extraVersion)
diff --git a/design/res-public/values/public_attrs.xml b/design/res-public/values/public_attrs.xml
index 737596b..30aa70a 100644
--- a/design/res-public/values/public_attrs.xml
+++ b/design/res-public/values/public_attrs.xml
@@ -19,11 +19,14 @@
     <public type="attr" name="backgroundTint"/>
     <public type="attr" name="backgroundTintMode"/>
     <public type="attr" name="borderWidth"/>
+    <public type="attr" name="collapsedTitleGravity"/>
     <public type="attr" name="collapsedTitleTextAppearance"/>
     <public type="attr" name="contentScrim"/>
     <public type="attr" name="elevation"/>
     <public type="attr" name="errorEnabled"/>
     <public type="attr" name="errorTextAppearance"/>
+    <public type="attr" name="expanded"/>
+    <public type="attr" name="expandedTitleGravity"/>
     <public type="attr" name="expandedTitleMargin"/>
     <public type="attr" name="expandedTitleMarginBottom"/>
     <public type="attr" name="expandedTitleMarginEnd"/>
@@ -32,9 +35,11 @@
     <public type="attr" name="expandedTitleTextAppearance"/>
     <public type="attr" name="fabSize"/>
     <public type="attr" name="headerLayout"/>
+    <public type="attr" name="hintAnimationEnabled"/>
     <public type="attr" name="hintTextAppearance"/>
     <public type="attr" name="itemBackground"/>
     <public type="attr" name="itemIconTint"/>
+    <public type="attr" name="itemTextAppearance"/>
     <public type="attr" name="itemTextColor"/>
     <public type="attr" name="keylines"/>
     <public type="attr" name="menu"/>
@@ -58,5 +63,7 @@
     <public type="attr" name="tabSelectedTextColor"/>
     <public type="attr" name="tabTextAppearance"/>
     <public type="attr" name="tabTextColor"/>
+    <public type="attr" name="title"/>
+    <public type="attr" name="titleEnabled"/>
     <public type="attr" name="toolbarId"/>
 </resources>
diff --git a/design/res-public/values/public_strings.xml b/design/res-public/values/public_strings.xml
new file mode 100644
index 0000000..d215d5c
--- /dev/null
+++ b/design/res-public/values/public_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<!-- Definitions of styles to be exposed as public -->
+<resources>
+    <public type="string" name="appbar_scrolling_view_behavior"/>
+</resources>
diff --git a/design/res-public/values/public_styles.xml b/design/res-public/values/public_styles.xml
index f65e5e3..4ca2050a 100644
--- a/design/res-public/values/public_styles.xml
+++ b/design/res-public/values/public_styles.xml
@@ -16,6 +16,7 @@
 
 <!-- Definitions of styles to be exposed as public -->
 <resources>
+    <public type="style" name="TextAppearance.Design.CollapsingToolbar.Expanded"/>
     <public type="style" name="TextAppearance.Design.Error"/>
     <public type="style" name="TextAppearance.Design.Hint"/>
     <public type="style" name="TextAppearance.Design.Tab"/>
diff --git a/v17/leanback/api21/android/support/v17/leanback/transition/FadeAndShortSlide.java b/v17/leanback/api21/android/support/v17/leanback/transition/FadeAndShortSlide.java
new file mode 100644
index 0000000..5fac39c
--- /dev/null
+++ b/v17/leanback/api21/android/support/v17/leanback/transition/FadeAndShortSlide.java
@@ -0,0 +1,183 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package android.support.v17.leanback.transition;
+
+import android.animation.Animator;
+import android.animation.AnimatorSet;
+import android.animation.TimeInterpolator;
+import android.transition.Fade;
+import android.transition.Transition;
+import android.transition.TransitionValues;
+import android.transition.Visibility;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.animation.DecelerateInterpolator;
+
+/**
+ * Execute horizontal slide of 1/4 width and fade (to workaround bug 23718734)
+ * @hide
+ */
+public class FadeAndShortSlide extends Visibility {
+
+    private static final TimeInterpolator sDecelerate = new DecelerateInterpolator();
+    // private static final TimeInterpolator sAccelerate = new AccelerateInterpolator();
+    private static final String PROPNAME_SCREEN_POSITION =
+            "android:fadeAndShortSlideTransition:screenPosition";
+
+    private CalculateSlide mSlideCalculator = sCalculateEnd;
+    private Visibility mFade = new Fade();
+
+    private interface CalculateSlide {
+
+        /** Returns the translation value for view when it goes out of the scene */
+        float getGoneX(ViewGroup sceneRoot, View view);
+    }
+
+    private static final CalculateSlide sCalculateStart = new CalculateSlide() {
+        @Override
+        public float getGoneX(ViewGroup sceneRoot, View view) {
+            final boolean isRtl = sceneRoot.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
+            final float x;
+            if (isRtl) {
+                x = view.getTranslationX() + sceneRoot.getWidth() / 4;
+            } else {
+                x = view.getTranslationX() - sceneRoot.getWidth() / 4;
+            }
+            return x;
+        }
+    };
+
+    private static final CalculateSlide sCalculateEnd = new CalculateSlide() {
+        @Override
+        public float getGoneX(ViewGroup sceneRoot, View view) {
+            final boolean isRtl = sceneRoot.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
+            final float x;
+            if (isRtl) {
+                x = view.getTranslationX() - sceneRoot.getWidth() / 4;
+            } else {
+                x = view.getTranslationX() + sceneRoot.getWidth() / 4;
+            }
+            return x;
+        }
+    };
+
+    public FadeAndShortSlide() {
+        this(Gravity.START);
+    }
+
+    public FadeAndShortSlide(int slideEdge) {
+        setSlideEdge(slideEdge);
+    }
+
+    @Override
+    public void setEpicenterCallback(EpicenterCallback epicenterCallback) {
+        super.setEpicenterCallback(epicenterCallback);
+        mFade.setEpicenterCallback(epicenterCallback);
+    }
+
+    private void captureValues(TransitionValues transitionValues) {
+        View view = transitionValues.view;
+        int[] position = new int[2];
+        view.getLocationOnScreen(position);
+        transitionValues.values.put(PROPNAME_SCREEN_POSITION, position[0]);
+    }
+
+    @Override
+    public void captureStartValues(TransitionValues transitionValues) {
+        super.captureStartValues(transitionValues);
+        mFade.captureStartValues(transitionValues);
+        captureValues(transitionValues);
+    }
+
+    @Override
+    public void captureEndValues(TransitionValues transitionValues) {
+        super.captureEndValues(transitionValues);
+        mFade.captureEndValues(transitionValues);
+        captureValues(transitionValues);
+    }
+
+    public void setSlideEdge(int slideEdge) {
+        switch (slideEdge) {
+            case Gravity.START:
+                mSlideCalculator = sCalculateStart;
+                break;
+            case Gravity.END:
+                mSlideCalculator = sCalculateEnd;
+                break;
+            default:
+                throw new IllegalArgumentException("Invalid slide direction");
+        }
+        // SidePropagation propagation = new SidePropagation();
+        // propagation.setSide(slideEdge);
+        // setPropagation(propagation);
+    }
+
+    @Override
+    public Animator onAppear(ViewGroup sceneRoot, View view, TransitionValues startValues,
+            TransitionValues endValues) {
+        if (endValues == null) {
+            return null;
+        }
+        Integer position = (Integer) endValues.values.get(PROPNAME_SCREEN_POSITION);
+        float endX = view.getTranslationX();
+        float startX = mSlideCalculator.getGoneX(sceneRoot, view);
+        final Animator slideAnimator = TranslationAnimationCreator.createAnimation(view, endValues,
+                position, startX, endX, sDecelerate, this);
+        final AnimatorSet set = new AnimatorSet();
+        set.play(slideAnimator).with(mFade.onAppear(sceneRoot, view, startValues, endValues));
+
+        return set;
+    }
+
+    @Override
+    public Animator onDisappear(ViewGroup sceneRoot, View view, TransitionValues startValues,
+            TransitionValues endValues) {
+        if (startValues == null) {
+            return null;
+        }
+        Integer position = (Integer) startValues.values.get(PROPNAME_SCREEN_POSITION);
+        float startX = view.getTranslationX();
+        float endX = mSlideCalculator.getGoneX(sceneRoot, view);
+        final Animator slideAnimator = TranslationAnimationCreator.createAnimation(view,
+                startValues, position, startX, endX, sDecelerate /* sAccelerate */, this);
+        final AnimatorSet set = new AnimatorSet();
+        set.play(slideAnimator).with(mFade.onDisappear(sceneRoot, view, startValues, endValues));
+
+        return set;
+    }
+
+    @Override
+    public Transition addListener(TransitionListener listener) {
+        mFade.addListener(listener);
+        return super.addListener(listener);
+    }
+
+    @Override
+    public Transition removeListener(TransitionListener listener) {
+        mFade.removeListener(listener);
+        return super.removeListener(listener);
+    }
+
+    @Override
+    public Transition clone() {
+        FadeAndShortSlide clone = null;
+        clone = (FadeAndShortSlide) super.clone();
+        clone.mFade = (Visibility) mFade.clone();
+        return clone;
+    }
+}
+
diff --git a/v17/leanback/api21/android/support/v17/leanback/transition/TranslationAnimationCreator.java b/v17/leanback/api21/android/support/v17/leanback/transition/TranslationAnimationCreator.java
new file mode 100644
index 0000000..c836e77
--- /dev/null
+++ b/v17/leanback/api21/android/support/v17/leanback/transition/TranslationAnimationCreator.java
@@ -0,0 +1,127 @@
+package android.support.v17.leanback.transition;
+
+import android.support.v17.leanback.R;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ObjectAnimator;
+import android.animation.TimeInterpolator;
+import android.graphics.Path;
+import android.transition.Transition;
+import android.transition.TransitionValues;
+import android.view.View;
+
+/**
+ * This class is used by Slide and Explode to create an animator that goes from the start position
+ * to the end position. It takes into account the canceled position so that it will not blink out or
+ * shift suddenly when the transition is interrupted.
+ * @hide
+ */
+class TranslationAnimationCreator {
+
+    /**
+     * Creates an animator that can be used for x and/or y translations. When interrupted, it sets a
+     * tag to keep track of the position so that it may be continued from position.
+     *
+     * @param view The view being moved. This may be in the overlay for onDisappear.
+     * @param values The values containing the view in the view hierarchy.
+     * @param viewPosX The x screen coordinate of view
+     * @param startX The start translation x of view
+     * @param endX The end translation x of view
+     * @param interpolator The interpolator to use with this animator.
+     * @return An animator that moves from (startX, startY) to (endX, endY) unless there was a
+     *         previous interruption, in which case it moves from the current position to (endX,
+     *         endY).
+     */
+    static Animator createAnimation(View view, TransitionValues values, int viewPosX, float startX,
+            float endX, TimeInterpolator interpolator, Transition transition) {
+        float terminalX = view.getTranslationX();
+        Integer startPosition = (Integer) values.view.getTag(R.id.transitionPosition);
+        if (startPosition != null) {
+            startX = startPosition - viewPosX + terminalX;
+        }
+        // Initial position is at translation startX, startY, so position is offset by that
+        // amount
+        int startPosX = viewPosX + Math.round(startX - terminalX);
+
+        view.setTranslationX(startX);
+        if (startX == endX) {
+            return null;
+        }
+        Path path = new Path();
+        path.moveTo(startX, 0);
+        path.lineTo(endX, 0);
+        ObjectAnimator anim =
+                ObjectAnimator.ofFloat(view, View.TRANSLATION_X, View.TRANSLATION_Y, path);
+
+        TransitionPositionListener listener =
+                new TransitionPositionListener(view, values.view, startPosX, terminalX);
+        transition.addListener(listener);
+        anim.addListener(listener);
+        anim.addPauseListener(listener);
+        anim.setInterpolator(interpolator);
+        return anim;
+    }
+
+    private static class TransitionPositionListener extends AnimatorListenerAdapter
+            implements Transition.TransitionListener {
+
+        private final View mViewInHierarchy;
+        private final View mMovingView;
+        private final int mStartX;
+        private Integer mTransitionPosition;
+        private float mPausedX;
+        private final float mTerminalX;
+
+        private TransitionPositionListener(View movingView, View viewInHierarchy, int startX,
+                float terminalX) {
+            mMovingView = movingView;
+            mViewInHierarchy = viewInHierarchy;
+            mStartX = startX - Math.round(mMovingView.getTranslationX());
+            mTerminalX = terminalX;
+            mTransitionPosition = (Integer) mViewInHierarchy.getTag(R.id.transitionPosition);
+            if (mTransitionPosition != null) {
+                mViewInHierarchy.setTag(R.id.transitionPosition, null);
+            }
+        }
+
+        @Override
+        public void onAnimationCancel(Animator animation) {
+            mTransitionPosition = Math.round(mStartX + mMovingView.getTranslationX());
+            mViewInHierarchy.setTag(R.id.transitionPosition, mTransitionPosition);
+        }
+
+        @Override
+        public void onAnimationEnd(Animator animator) {}
+
+        @Override
+        public void onAnimationPause(Animator animator) {
+            mPausedX = mMovingView.getTranslationX();
+            mMovingView.setTranslationX(mTerminalX);
+        }
+
+        @Override
+        public void onAnimationResume(Animator animator) {
+            mMovingView.setTranslationX(mPausedX);
+        }
+
+        @Override
+        public void onTransitionStart(Transition transition) {}
+
+        @Override
+        public void onTransitionEnd(Transition transition) {
+            mMovingView.setTranslationX(mTerminalX);
+        }
+
+        @Override
+        public void onTransitionCancel(Transition transition) {}
+
+        @Override
+        public void onTransitionPause(Transition transition) {}
+
+        @Override
+        public void onTransitionResume(Transition transition) {}
+    }
+
+}
+
diff --git a/v17/leanback/res/values/ids.xml b/v17/leanback/res/values/ids.xml
index d4ba288..8bc7324 100644
--- a/v17/leanback/res/values/ids.xml
+++ b/v17/leanback/res/values/ids.xml
@@ -18,6 +18,7 @@
      <item type="id" name="lb_focus_animator" />
      <item type="id" name="lb_shadow_impl" />
      <item type="id" name="lb_slide_transition_value" />
+     <item type="id" name="transitionPosition" />
 
      <item type="id" name="lb_control_play_pause" />
      <item type="id" name="lb_control_fast_forward" />
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/ShadowOverlayContainer.java b/v17/leanback/src/android/support/v17/leanback/widget/ShadowOverlayContainer.java
index 3be5929..fdb7c71 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/ShadowOverlayContainer.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/ShadowOverlayContainer.java
@@ -283,12 +283,15 @@
         ViewGroup.LayoutParams lp = view.getLayoutParams();
         if (lp != null) {
             // if wrapped view has layout params, inherit everything but width/height.
-            // Wrapped view is assigned a FrameLayout.LayoutParams with width
-            // and height only.  User can still change wrapped view width/height afterwards.
+            // Wrapped view is assigned a FrameLayout.LayoutParams with width and height only.
             // Margins, etc are assigned to the wrapper and take effect in parent container.
             ViewGroup.LayoutParams wrapped_lp = new FrameLayout.LayoutParams(lp.width, lp.height);
-            lp.width = LayoutParams.WRAP_CONTENT;
-            lp.height = LayoutParams.WRAP_CONTENT;
+            // Uses MATCH_PARENT for MATCH_PARENT, WRAP_CONTENT for WRAP_CONTENT and fixed size,
+            // App can still change wrapped view fixed width/height afterwards.
+            lp.width = lp.width == LayoutParams.MATCH_PARENT ?
+                    LayoutParams.MATCH_PARENT : LayoutParams.WRAP_CONTENT;
+            lp.height = lp.height == LayoutParams.MATCH_PARENT ?
+                    LayoutParams.MATCH_PARENT : LayoutParams.WRAP_CONTENT;
             this.setLayoutParams(lp);
             addView(view, wrapped_lp);
         } else {
diff --git a/v17/preference-leanback/Android.mk b/v17/preference-leanback/Android.mk
index c3bc803..8b6a0a1 100644
--- a/v17/preference-leanback/Android.mk
+++ b/v17/preference-leanback/Android.mk
@@ -41,7 +41,8 @@
 LOCAL_MODULE := android-support-v17-preference-leanback-api21
 LOCAL_SDK_VERSION := 21
 LOCAL_SRC_FILES := $(call all-java-files-under, api21)
-LOCAL_JAVA_LIBRARIES := android-support-v17-preference-leanback-res
+LOCAL_JAVA_LIBRARIES := android-support-v17-preference-leanback-res \
+        android-support-v17-leanback
 include $(BUILD_STATIC_JAVA_LIBRARY)
 
 # Here is the final static library that apps can link against.
diff --git a/v17/preference-leanback/api21/android/support/v17/preference/LeanbackPreferenceFragmentTransitionHelperApi21.java b/v17/preference-leanback/api21/android/support/v17/preference/LeanbackPreferenceFragmentTransitionHelperApi21.java
index 2002a54..37e7a79 100644
--- a/v17/preference-leanback/api21/android/support/v17/preference/LeanbackPreferenceFragmentTransitionHelperApi21.java
+++ b/v17/preference-leanback/api21/android/support/v17/preference/LeanbackPreferenceFragmentTransitionHelperApi21.java
@@ -16,21 +16,10 @@
 
 package android.support.v17.preference;
 
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.AnimatorSet;
-import android.animation.ObjectAnimator;
-import android.animation.TimeInterpolator;
+import android.support.v17.leanback.transition.FadeAndShortSlide;
 import android.app.Fragment;
-import android.graphics.Path;
-import android.transition.Fade;
 import android.transition.Transition;
-import android.transition.TransitionValues;
-import android.transition.Visibility;
 import android.view.Gravity;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.animation.DecelerateInterpolator;
 
 /**
  * @hide
@@ -38,8 +27,8 @@
 public class LeanbackPreferenceFragmentTransitionHelperApi21 {
 
     public static void addTransitions(Fragment f) {
-        final Transition transitionStartEdge = new FadeAndShortSlideTransition(Gravity.START);
-        final Transition transitionEndEdge = new FadeAndShortSlideTransition(Gravity.END);
+        final Transition transitionStartEdge = new FadeAndShortSlide(Gravity.START);
+        final Transition transitionEndEdge = new FadeAndShortSlide(Gravity.END);
 
         f.setEnterTransition(transitionEndEdge);
         f.setExitTransition(transitionStartEdge);
@@ -47,273 +36,5 @@
         f.setReturnTransition(transitionEndEdge);
     }
 
-    private static class FadeAndShortSlideTransition extends Visibility {
-
-        private static final TimeInterpolator sDecelerate = new DecelerateInterpolator();
-//        private static final TimeInterpolator sAccelerate = new AccelerateInterpolator();
-        private static final String PROPNAME_SCREEN_POSITION =
-                "android:fadeAndShortSlideTransition:screenPosition";
-
-        private CalculateSlide mSlideCalculator = sCalculateEnd;
-        private Visibility mFade = new Fade();
-
-        private interface CalculateSlide {
-
-            /** Returns the translation value for view when it goes out of the scene */
-            float getGoneX(ViewGroup sceneRoot, View view);
-        }
-
-        private static final CalculateSlide sCalculateStart = new CalculateSlide() {
-            @Override
-            public float getGoneX(ViewGroup sceneRoot, View view) {
-                final boolean isRtl = sceneRoot.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
-                final float x;
-                if (isRtl) {
-                    x = view.getTranslationX() + sceneRoot.getWidth() / 4;
-                } else {
-                    x = view.getTranslationX() - sceneRoot.getWidth() / 4;
-                }
-                return x;
-            }
-        };
-
-        private static final CalculateSlide sCalculateEnd = new CalculateSlide() {
-            @Override
-            public float getGoneX(ViewGroup sceneRoot, View view) {
-                final boolean isRtl = sceneRoot.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
-                final float x;
-                if (isRtl) {
-                    x = view.getTranslationX() - sceneRoot.getWidth() / 4;
-                } else {
-                    x = view.getTranslationX() + sceneRoot.getWidth() / 4;
-                }
-                return x;
-            }
-        };
-
-        public FadeAndShortSlideTransition(int slideEdge) {
-            setSlideEdge(slideEdge);
-        }
-
-        @Override
-        public void setEpicenterCallback(EpicenterCallback epicenterCallback) {
-            super.setEpicenterCallback(epicenterCallback);
-            mFade.setEpicenterCallback(epicenterCallback);
-        }
-
-        private void captureValues(TransitionValues transitionValues) {
-            View view = transitionValues.view;
-            int[] position = new int[2];
-            view.getLocationOnScreen(position);
-            transitionValues.values.put(PROPNAME_SCREEN_POSITION, position[0]);
-        }
-
-        @Override
-        public void captureStartValues(TransitionValues transitionValues) {
-            super.captureStartValues(transitionValues);
-            mFade.captureStartValues(transitionValues);
-            captureValues(transitionValues);
-        }
-
-        @Override
-        public void captureEndValues(TransitionValues transitionValues) {
-            super.captureEndValues(transitionValues);
-            mFade.captureEndValues(transitionValues);
-            captureValues(transitionValues);
-        }
-
-        public void setSlideEdge(int slideEdge) {
-            switch (slideEdge) {
-                case Gravity.START:
-                    mSlideCalculator = sCalculateStart;
-                    break;
-                case Gravity.END:
-                    mSlideCalculator = sCalculateEnd;
-                    break;
-                default:
-                    throw new IllegalArgumentException("Invalid slide direction");
-            }
-//            SidePropagation propagation = new SidePropagation();
-//            propagation.setSide(slideEdge);
-//            setPropagation(propagation);
-        }
-
-        @Override
-        public Animator onAppear(ViewGroup sceneRoot, View view,
-                TransitionValues startValues, TransitionValues endValues) {
-            if (endValues == null) {
-                return null;
-            }
-            Integer position = (Integer) endValues.values.get(PROPNAME_SCREEN_POSITION);
-            float endX = view.getTranslationX();
-            float startX = mSlideCalculator.getGoneX(sceneRoot, view);
-            final Animator slideAnimator = TranslationAnimationCreator
-                    .createAnimation(view, endValues, position,
-                            startX, endX, sDecelerate, this);
-            final AnimatorSet set = new AnimatorSet();
-            set.play(slideAnimator)
-                    .with(mFade.onAppear(sceneRoot, view, startValues, endValues));
-
-            return set;
-        }
-
-        @Override
-        public Animator onDisappear(ViewGroup sceneRoot, View view,
-                TransitionValues startValues, TransitionValues endValues) {
-            if (startValues == null) {
-                return null;
-            }
-            Integer position = (Integer) startValues.values.get(PROPNAME_SCREEN_POSITION);
-            float startX = view.getTranslationX();
-            float endX = mSlideCalculator.getGoneX(sceneRoot, view);
-            final Animator slideAnimator = TranslationAnimationCreator
-                    .createAnimation(view, startValues, position,
-                            startX, endX, sDecelerate /*sAccelerate*/, this);
-            final AnimatorSet set = new AnimatorSet();
-            set.play(slideAnimator)
-                    .with(mFade.onDisappear(sceneRoot, view, startValues, endValues));
-
-            return set;
-        }
-
-        @Override
-        public Transition addListener(TransitionListener listener) {
-            mFade.addListener(listener);
-            return super.addListener(listener);
-        }
-
-        @Override
-        public Transition removeListener(TransitionListener listener) {
-            mFade.removeListener(listener);
-            return super.removeListener(listener);
-        }
-
-        @Override
-        public Transition clone() {
-            FadeAndShortSlideTransition clone = null;
-            clone = (FadeAndShortSlideTransition) super.clone();
-            clone.mFade = (Visibility) mFade.clone();
-            return clone;
-        }
-    }
-
-    /**
-     * This class is used by Slide and Explode to create an animator that goes from the start
-     * position to the end position. It takes into account the canceled position so that it
-     * will not blink out or shift suddenly when the transition is interrupted.
-     */
-    private static class TranslationAnimationCreator {
-
-        /**
-         * Creates an animator that can be used for x and/or y translations. When interrupted,
-         * it sets a tag to keep track of the position so that it may be continued from position.
-         *
-         * @param view The view being moved. This may be in the overlay for onDisappear.
-         * @param values The values containing the view in the view hierarchy.
-         * @param viewPosX The x screen coordinate of view
-         * @param startX The start translation x of view
-         * @param endX The end translation x of view
-         * @param interpolator The interpolator to use with this animator.
-         * @return An animator that moves from (startX, startY) to (endX, endY) unless there was
-         * a previous interruption, in which case it moves from the current position to
-         * (endX, endY).
-         */
-        static Animator createAnimation(View view, TransitionValues values, int viewPosX,
-                float startX, float endX, TimeInterpolator interpolator,
-                Transition transition) {
-            float terminalX = view.getTranslationX();
-            Integer startPosition = (Integer) values.view.getTag(R.id.transitionPosition);
-            if (startPosition != null) {
-                startX = startPosition - viewPosX + terminalX;
-            }
-            // Initial position is at translation startX, startY, so position is offset by that
-            // amount
-            int startPosX = viewPosX + Math.round(startX - terminalX);
-
-            view.setTranslationX(startX);
-            if (startX == endX) {
-                return null;
-            }
-            Path path = new Path();
-            path.moveTo(startX, 0);
-            path.lineTo(endX, 0);
-            ObjectAnimator anim =
-                    ObjectAnimator.ofFloat(view, View.TRANSLATION_X, View.TRANSLATION_Y, path);
-
-            TransitionPositionListener listener = new TransitionPositionListener(view, values.view,
-                    startPosX, terminalX);
-            transition.addListener(listener);
-            anim.addListener(listener);
-            anim.addPauseListener(listener);
-            anim.setInterpolator(interpolator);
-            return anim;
-        }
-
-        private static class TransitionPositionListener extends AnimatorListenerAdapter implements
-                Transition.TransitionListener {
-
-            private final View mViewInHierarchy;
-            private final View mMovingView;
-            private final int mStartX;
-            private Integer mTransitionPosition;
-            private float mPausedX;
-            private final float mTerminalX;
-
-            private TransitionPositionListener(View movingView, View viewInHierarchy,
-                    int startX, float terminalX) {
-                mMovingView = movingView;
-                mViewInHierarchy = viewInHierarchy;
-                mStartX = startX - Math.round(mMovingView.getTranslationX());
-                mTerminalX = terminalX;
-                mTransitionPosition = (Integer) mViewInHierarchy.getTag(R.id.transitionPosition);
-                if (mTransitionPosition != null) {
-                    mViewInHierarchy.setTag(R.id.transitionPosition, null);
-                }
-            }
-
-            @Override
-            public void onAnimationCancel(Animator animation) {
-                mTransitionPosition = Math.round(mStartX + mMovingView.getTranslationX());
-                mViewInHierarchy.setTag(R.id.transitionPosition, mTransitionPosition);
-            }
-
-            @Override
-            public void onAnimationEnd(Animator animator) {
-            }
-
-            @Override
-            public void onAnimationPause(Animator animator) {
-                mPausedX = mMovingView.getTranslationX();
-                mMovingView.setTranslationX(mTerminalX);
-            }
-
-            @Override
-            public void onAnimationResume(Animator animator) {
-                mMovingView.setTranslationX(mPausedX);
-            }
-
-            @Override
-            public void onTransitionStart(Transition transition) {
-            }
-
-            @Override
-            public void onTransitionEnd(Transition transition) {
-                mMovingView.setTranslationX(mTerminalX);
-            }
-
-            @Override
-            public void onTransitionCancel(Transition transition) {
-            }
-
-            @Override
-            public void onTransitionPause(Transition transition) {
-            }
-
-            @Override
-            public void onTransitionResume(Transition transition) {
-            }
-        }
-
-    }
 
 }
diff --git a/v17/preference-leanback/res/values/ids.xml b/v17/preference-leanback/res/values/ids.xml
deleted file mode 100644
index 20c1eda..0000000
--- a/v17/preference-leanback/res/values/ids.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2015 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<resources>
-    <item name="transitionPosition" type="id" />
-</resources>
diff --git a/v17/tests/src/android/support/v17/leanback/widget/ShadowOverlayContainerTest.java b/v17/tests/src/android/support/v17/leanback/widget/ShadowOverlayContainerTest.java
new file mode 100644
index 0000000..e7ec4bf
--- /dev/null
+++ b/v17/tests/src/android/support/v17/leanback/widget/ShadowOverlayContainerTest.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package android.support.v17.leanback.widget;
+
+import android.test.AndroidTestCase;
+import android.view.View.MeasureSpec;
+import android.view.ViewGroup.LayoutParams;
+import android.widget.FrameLayout;
+import android.widget.TextView;
+
+
+public class ShadowOverlayContainerTest extends AndroidTestCase {
+
+    public void testWrapContent() {
+        FrameLayout frameLayout = new FrameLayout(getContext());
+        TextView textView = new TextView(getContext());
+        textView.setLayoutParams(new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
+                LayoutParams.WRAP_CONTENT));
+        textView.setText("abc");
+        ShadowOverlayContainer container = new ShadowOverlayContainer(getContext());
+        container.initialize(true, true, true);
+        container.wrap(textView);
+        frameLayout.addView(container);
+        frameLayout.measure(MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY),
+                MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY));
+        frameLayout.layout(0, 0, 500, 500);
+        assertTrue(textView.getWidth() > 0);
+        assertTrue(textView.getWidth() < 500);
+        assertTrue(textView.getHeight() > 0);
+        assertTrue(textView.getHeight() < 500);
+        assertEquals(container.getWidth(), textView.getWidth());
+        assertEquals(container.getHeight(), textView.getHeight());
+
+        // change layout size of textView after wrap()
+        textView.setLayoutParams(new FrameLayout.LayoutParams(123, 123));
+        frameLayout.measure(MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY),
+                MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY));
+        frameLayout.layout(0, 0, 500, 500);
+        assertTrue(textView.getWidth() == 123);
+        assertTrue(textView.getHeight() == 123);
+        assertEquals(container.getWidth(), textView.getWidth());
+        assertEquals(container.getHeight(), textView.getHeight());
+    }
+
+    public void testFixedSize() {
+        FrameLayout frameLayout = new FrameLayout(getContext());
+        TextView textView = new TextView(getContext());
+        textView.setLayoutParams(new FrameLayout.LayoutParams(200, LayoutParams.WRAP_CONTENT));
+        textView.setText("abc");
+        ShadowOverlayContainer container = new ShadowOverlayContainer(getContext());
+        container.initialize(true, true, true);
+        container.wrap(textView);
+        frameLayout.addView(container);
+        frameLayout.measure(MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY),
+                MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY));
+        frameLayout.layout(0, 0, 500, 500);
+        assertTrue(textView.getWidth() == 200);
+        assertTrue(textView.getHeight() > 0);
+        assertTrue(textView.getHeight() < 500);
+        assertEquals(container.getWidth(), textView.getWidth());
+        assertEquals(container.getHeight(), textView.getHeight());
+
+        // change layout size of textView after wrap()
+        textView.setLayoutParams(new FrameLayout.LayoutParams(123, 123));
+        frameLayout.measure(MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY),
+                MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY));
+        frameLayout.layout(0, 0, 500, 500);
+        assertTrue(textView.getWidth() == 123);
+        assertTrue(textView.getHeight() == 123);
+        assertEquals(container.getWidth(), textView.getWidth());
+        assertEquals(container.getHeight(), textView.getHeight());
+    }
+
+    public void testMatchParent() {
+        FrameLayout frameLayout = new FrameLayout(getContext());
+        TextView textView = new TextView(getContext());
+        textView.setLayoutParams(new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT,
+                LayoutParams.WRAP_CONTENT));
+        textView.setText("abc");
+        ShadowOverlayContainer container = new ShadowOverlayContainer(getContext());
+        container.initialize(true, true, true);
+        container.wrap(textView);
+        frameLayout.addView(container);
+        frameLayout.measure(MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY),
+                MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY));
+        frameLayout.layout(0, 0, 500, 500);
+        assertTrue(textView.getWidth() == 500);
+        assertTrue(textView.getHeight() > 0);
+        assertTrue(textView.getHeight() < 500);
+        assertEquals(container.getWidth(), textView.getWidth());
+        assertEquals(container.getHeight(), textView.getHeight());
+    }
+}
diff --git a/v4/api/current.txt b/v4/api/current.txt
index 5e5eb1a..b0be7a0 100644
--- a/v4/api/current.txt
+++ b/v4/api/current.txt
@@ -1093,6 +1093,11 @@
     method public static android.support.v4.content.SharedPreferencesCompat.EditorCompat getInstance();
   }
 
+  public class ParallelExecutorCompat {
+    ctor public ParallelExecutorCompat();
+    method public static java.util.concurrent.Executor getParallelExecutor();
+  }
+
   public abstract class WakefulBroadcastReceiver extends android.content.BroadcastReceiver {
     ctor public WakefulBroadcastReceiver();
     method public static boolean completeWakefulIntent(android.content.Intent);
diff --git a/v4/honeycomb/android/support/v4/content/ExecutorCompatHoneycomb.java b/v4/honeycomb/android/support/v4/content/ExecutorCompatHoneycomb.java
new file mode 100644
index 0000000..fa6af47
--- /dev/null
+++ b/v4/honeycomb/android/support/v4/content/ExecutorCompatHoneycomb.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.support.v4.content;
+
+import android.os.AsyncTask;
+
+import java.util.concurrent.Executor;
+
+/**
+ * Implementation of parallel executor compatibility that can call Honeycomb APIs.
+ * @hide
+ */
+class ExecutorCompatHoneycomb {
+    public static Executor getParallelExecutor() {
+        return AsyncTask.THREAD_POOL_EXECUTOR;
+    }
+}
diff --git a/v4/java/android/support/v4/app/FragmentManager.java b/v4/java/android/support/v4/app/FragmentManager.java
index fc6a776..79e08e4 100644
--- a/v4/java/android/support/v4/app/FragmentManager.java
+++ b/v4/java/android/support/v4/app/FragmentManager.java
@@ -440,7 +440,12 @@
             if (mView != null) {
                 mShouldRunOnHWLayer = shouldRunOnHWLayer(mView, animation);
                 if (mShouldRunOnHWLayer) {
-                    ViewCompat.setLayerType(mView, ViewCompat.LAYER_TYPE_HARDWARE, null);
+                    mView.post(new Runnable() {
+                        @Override
+                        public void run() {
+                            ViewCompat.setLayerType(mView, ViewCompat.LAYER_TYPE_HARDWARE, null);
+                        }
+                    });
                 }
             }
             if (mOrignalListener != null) {
@@ -452,7 +457,12 @@
         @CallSuper
         public void onAnimationEnd(Animation animation) {
             if (mView != null && mShouldRunOnHWLayer) {
-                ViewCompat.setLayerType(mView, ViewCompat.LAYER_TYPE_NONE, null);
+                mView.post(new Runnable() {
+                    @Override
+                    public void run() {
+                        ViewCompat.setLayerType(mView, ViewCompat.LAYER_TYPE_NONE, null);
+                    }
+                });
             }
             if (mOrignalListener != null) {
                 mOrignalListener.onAnimationEnd(animation);
@@ -523,9 +533,7 @@
     }
 
     static boolean shouldRunOnHWLayer(View v, Animation anim) {
-        // HW layers result in crashes on ICS so we only use it on JB+
-        return Build.VERSION.SDK_INT >= 16
-                && ViewCompat.getLayerType(v) == ViewCompat.LAYER_TYPE_NONE
+        return ViewCompat.getLayerType(v) == ViewCompat.LAYER_TYPE_NONE
                 && ViewCompat.hasOverlappingRendering(v)
                 && modifiesAlpha(anim);
     }
@@ -2270,6 +2278,7 @@
             fragment.mTag = tag;
             fragment.mInLayout = true;
             fragment.mFragmentManager = this;
+            fragment.mHost = mHost;
             fragment.onInflate(mHost.getContext(), attrs, fragment.mSavedFragmentState);
             addFragment(fragment, true);
 
diff --git a/v4/java/android/support/v4/content/ParallelExecutorCompat.java b/v4/java/android/support/v4/content/ParallelExecutorCompat.java
new file mode 100644
index 0000000..c23470b
--- /dev/null
+++ b/v4/java/android/support/v4/content/ParallelExecutorCompat.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.support.v4.content;
+
+import android.os.Build;
+
+import java.util.concurrent.Executor;
+
+/**
+ * Helper for accessing a shared parallel Executor instance
+ * introduced after API level 4 in a backwards compatible fashion.
+ */
+public class ParallelExecutorCompat {
+    public static Executor getParallelExecutor() {
+        if (Build.VERSION.SDK_INT >= 11) {
+            // From API 11 onwards, return AsyncTask.THREAD_POOL_EXECUTOR
+            return ExecutorCompatHoneycomb.getParallelExecutor();
+        } else {
+            return ModernAsyncTask.THREAD_POOL_EXECUTOR;
+        }
+    }
+}
diff --git a/v4/java/android/support/v4/media/session/MediaSessionCompat.java b/v4/java/android/support/v4/media/session/MediaSessionCompat.java
index 6d3cb27..62896f7 100644
--- a/v4/java/android/support/v4/media/session/MediaSessionCompat.java
+++ b/v4/java/android/support/v4/media/session/MediaSessionCompat.java
@@ -2012,12 +2012,14 @@
 
         @Override
         public void setPlaybackState(PlaybackStateCompat state) {
-            MediaSessionCompatApi21.setPlaybackState(mSessionObj, state.getPlaybackState());
+            MediaSessionCompatApi21.setPlaybackState(mSessionObj,
+                    state == null ? null : state.getPlaybackState());
         }
 
         @Override
         public void setMetadata(MediaMetadataCompat metadata) {
-            MediaSessionCompatApi21.setMetadata(mSessionObj, metadata.getMediaMetadata());
+            MediaSessionCompatApi21.setMetadata(mSessionObj,
+                    metadata == null ? null : metadata.getMediaMetadata());
         }
 
         @Override
diff --git a/v7/appcompat/res-public/values/public_attrs.xml b/v7/appcompat/res-public/values/public_attrs.xml
index 3db510d..f8fae53 100644
--- a/v7/appcompat/res-public/values/public_attrs.xml
+++ b/v7/appcompat/res-public/values/public_attrs.xml
@@ -50,13 +50,15 @@
      <public type="attr" name="actionViewClass"/>
      <public type="attr" name="alertDialogStyle"/>
      <public type="attr" name="alertDialogTheme"/>
+     <public type="attr" name="arrowHeadLength"/>
+     <public type="attr" name="arrowShaftLength"/>
      <public type="attr" name="autoCompleteTextViewStyle"/>
      <public type="attr" name="background"/>
      <public type="attr" name="backgroundSplit"/>
      <public type="attr" name="backgroundStacked"/>
      <public type="attr" name="backgroundTint"/>
      <public type="attr" name="backgroundTintMode"/>
-     <public type="attr" name="barSize"/>
+     <public type="attr" name="barLength"/>
      <public type="attr" name="borderlessButtonStyle"/>
      <public type="attr" name="buttonBarButtonStyle"/>
      <public type="attr" name="buttonBarNegativeButtonStyle"/>
@@ -140,7 +142,6 @@
      <public type="attr" name="preserveIconSpacing"/>
      <public type="attr" name="progressBarPadding"/>
      <public type="attr" name="progressBarStyle"/>
-     <public type="attr" name="prompt"/>
      <public type="attr" name="queryBackground"/>
      <public type="attr" name="queryHint"/>
      <public type="attr" name="radioButtonStyle"/>
@@ -155,7 +156,6 @@
      <public type="attr" name="showText"/>
      <public type="attr" name="spinBars"/>
      <public type="attr" name="spinnerDropDownItemStyle"/>
-     <public type="attr" name="spinnerMode"/>
      <public type="attr" name="spinnerStyle"/>
      <public type="attr" name="splitTrack"/>
      <public type="attr" name="submitBackground"/>
@@ -190,7 +190,6 @@
      <public type="attr" name="titleTextStyle"/>
      <public type="attr" name="toolbarNavigationButtonStyle"/>
      <public type="attr" name="toolbarStyle"/>
-     <public type="attr" name="topBottomBarArrowSize"/>
      <public type="attr" name="track"/>
      <public type="attr" name="voiceIcon"/>
      <public type="attr" name="windowActionBar"/>
diff --git a/v7/appcompat/src/android/support/v7/app/AppCompatDelegate.java b/v7/appcompat/src/android/support/v7/app/AppCompatDelegate.java
index b22e209..ef38511 100644
--- a/v7/appcompat/src/android/support/v7/app/AppCompatDelegate.java
+++ b/v7/appcompat/src/android/support/v7/app/AppCompatDelegate.java
@@ -175,7 +175,16 @@
     public abstract MenuInflater getMenuInflater();
 
     /**
-     * Should be called from {@link Activity#onCreate Activity.onCreate()}
+     * Should be called from {@link Activity#onCreate Activity.onCreate()}.
+     *
+     * <p>This should be called before {@code super.onCreate()} as so:</p>
+     * <pre class="prettyprint">
+     * protected void onCreate(Bundle savedInstanceState) {
+     *     getDelegate().onCreate(savedInstanceState);
+     *     super.onCreate(savedInstanceState);
+     *     // ...
+     * }
+     * </pre>
      */
     public abstract void onCreate(Bundle savedInstanceState);
 
@@ -280,8 +289,8 @@
      * <pre class="prettyprint">
      * protected void onCreate(Bundle savedInstanceState) {
      *     getDelegate().installViewFactory();
-     *     super.onCreate(savedInstanceState);
      *     getDelegate().onCreate(savedInstanceState);
+     *     super.onCreate(savedInstanceState);
      *
      *     // ...
      * }
diff --git a/v7/mediarouter/jellybean/android/support/v7/media/SeekBarJellybean.java b/v7/mediarouter/jellybean/android/support/v7/media/SeekBarJellybean.java
new file mode 100644
index 0000000..76bf6fd
--- /dev/null
+++ b/v7/mediarouter/jellybean/android/support/v7/media/SeekBarJellybean.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.support.v7.media;
+
+import android.graphics.drawable.Drawable;
+import android.widget.SeekBar;
+
+/**
+ * @hide
+ */
+public class SeekBarJellybean {
+    public static Drawable getThumb(SeekBar seekBar) {
+        return seekBar.getThumb();
+    }
+}
diff --git a/v7/mediarouter/res/drawable-hdpi/ic_bluetooth_grey.png b/v7/mediarouter/res/drawable-hdpi/ic_bluetooth_grey.png
new file mode 100644
index 0000000..0493c80
--- /dev/null
+++ b/v7/mediarouter/res/drawable-hdpi/ic_bluetooth_grey.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-hdpi/ic_bluetooth_white.png b/v7/mediarouter/res/drawable-hdpi/ic_bluetooth_white.png
new file mode 100644
index 0000000..fce1884
--- /dev/null
+++ b/v7/mediarouter/res/drawable-hdpi/ic_bluetooth_white.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-hdpi/ic_pause_dark.png b/v7/mediarouter/res/drawable-hdpi/ic_pause_dark.png
index 81c32fe..7192ad4 100644
--- a/v7/mediarouter/res/drawable-hdpi/ic_pause_dark.png
+++ b/v7/mediarouter/res/drawable-hdpi/ic_pause_dark.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-hdpi/ic_pause_light.png b/v7/mediarouter/res/drawable-hdpi/ic_pause_light.png
index 864d8d2..aeb13eb 100644
--- a/v7/mediarouter/res/drawable-hdpi/ic_pause_light.png
+++ b/v7/mediarouter/res/drawable-hdpi/ic_pause_light.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-hdpi/ic_play_dark.png b/v7/mediarouter/res/drawable-hdpi/ic_play_dark.png
index 568ae86..547ef30 100644
--- a/v7/mediarouter/res/drawable-hdpi/ic_play_dark.png
+++ b/v7/mediarouter/res/drawable-hdpi/ic_play_dark.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-hdpi/ic_play_light.png b/v7/mediarouter/res/drawable-hdpi/ic_play_light.png
index e278033..0648523 100644
--- a/v7/mediarouter/res/drawable-hdpi/ic_play_light.png
+++ b/v7/mediarouter/res/drawable-hdpi/ic_play_light.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-mdpi/ic_bluetooth_grey.png b/v7/mediarouter/res/drawable-mdpi/ic_bluetooth_grey.png
new file mode 100644
index 0000000..ddc8789
--- /dev/null
+++ b/v7/mediarouter/res/drawable-mdpi/ic_bluetooth_grey.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-mdpi/ic_bluetooth_white.png b/v7/mediarouter/res/drawable-mdpi/ic_bluetooth_white.png
new file mode 100644
index 0000000..27a8a71
--- /dev/null
+++ b/v7/mediarouter/res/drawable-mdpi/ic_bluetooth_white.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-mdpi/ic_pause_dark.png b/v7/mediarouter/res/drawable-mdpi/ic_pause_dark.png
index c4218a4..f49aed7 100644
--- a/v7/mediarouter/res/drawable-mdpi/ic_pause_dark.png
+++ b/v7/mediarouter/res/drawable-mdpi/ic_pause_dark.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-mdpi/ic_pause_light.png b/v7/mediarouter/res/drawable-mdpi/ic_pause_light.png
index ab26a30..6708b41 100644
--- a/v7/mediarouter/res/drawable-mdpi/ic_pause_light.png
+++ b/v7/mediarouter/res/drawable-mdpi/ic_pause_light.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-mdpi/ic_play_dark.png b/v7/mediarouter/res/drawable-mdpi/ic_play_dark.png
index 4446faa..a3c80e7 100644
--- a/v7/mediarouter/res/drawable-mdpi/ic_play_dark.png
+++ b/v7/mediarouter/res/drawable-mdpi/ic_play_dark.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-mdpi/ic_play_light.png b/v7/mediarouter/res/drawable-mdpi/ic_play_light.png
index 55b8c5e..8f6a725 100644
--- a/v7/mediarouter/res/drawable-mdpi/ic_play_light.png
+++ b/v7/mediarouter/res/drawable-mdpi/ic_play_light.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-xhdpi/ic_bluetooth_grey.png b/v7/mediarouter/res/drawable-xhdpi/ic_bluetooth_grey.png
new file mode 100644
index 0000000..c57b9d6
--- /dev/null
+++ b/v7/mediarouter/res/drawable-xhdpi/ic_bluetooth_grey.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-xhdpi/ic_bluetooth_white.png b/v7/mediarouter/res/drawable-xhdpi/ic_bluetooth_white.png
new file mode 100644
index 0000000..920f5ca
--- /dev/null
+++ b/v7/mediarouter/res/drawable-xhdpi/ic_bluetooth_white.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-xhdpi/ic_pause_dark.png b/v7/mediarouter/res/drawable-xhdpi/ic_pause_dark.png
index bd7ec0f..660ac65 100644
--- a/v7/mediarouter/res/drawable-xhdpi/ic_pause_dark.png
+++ b/v7/mediarouter/res/drawable-xhdpi/ic_pause_dark.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-xhdpi/ic_pause_light.png b/v7/mediarouter/res/drawable-xhdpi/ic_pause_light.png
index e79d7d7..239b5a8 100644
--- a/v7/mediarouter/res/drawable-xhdpi/ic_pause_light.png
+++ b/v7/mediarouter/res/drawable-xhdpi/ic_pause_light.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-xhdpi/ic_play_dark.png b/v7/mediarouter/res/drawable-xhdpi/ic_play_dark.png
index 9a5d45f..be5c062 100644
--- a/v7/mediarouter/res/drawable-xhdpi/ic_play_dark.png
+++ b/v7/mediarouter/res/drawable-xhdpi/ic_play_dark.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-xhdpi/ic_play_light.png b/v7/mediarouter/res/drawable-xhdpi/ic_play_light.png
index acaeca6..4be0ef3 100644
--- a/v7/mediarouter/res/drawable-xhdpi/ic_play_light.png
+++ b/v7/mediarouter/res/drawable-xhdpi/ic_play_light.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-xxhdpi/ic_bluetooth_grey.png b/v7/mediarouter/res/drawable-xxhdpi/ic_bluetooth_grey.png
new file mode 100644
index 0000000..8e9aa70
--- /dev/null
+++ b/v7/mediarouter/res/drawable-xxhdpi/ic_bluetooth_grey.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-xxhdpi/ic_bluetooth_white.png b/v7/mediarouter/res/drawable-xxhdpi/ic_bluetooth_white.png
new file mode 100644
index 0000000..860c758
--- /dev/null
+++ b/v7/mediarouter/res/drawable-xxhdpi/ic_bluetooth_white.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-xxhdpi/ic_pause_dark.png b/v7/mediarouter/res/drawable-xxhdpi/ic_pause_dark.png
index 2a96557..3ea7e03 100644
--- a/v7/mediarouter/res/drawable-xxhdpi/ic_pause_dark.png
+++ b/v7/mediarouter/res/drawable-xxhdpi/ic_pause_dark.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-xxhdpi/ic_pause_light.png b/v7/mediarouter/res/drawable-xxhdpi/ic_pause_light.png
index bf2560f..78456c7 100644
--- a/v7/mediarouter/res/drawable-xxhdpi/ic_pause_light.png
+++ b/v7/mediarouter/res/drawable-xxhdpi/ic_pause_light.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-xxhdpi/ic_play_dark.png b/v7/mediarouter/res/drawable-xxhdpi/ic_play_dark.png
index 1ec1995..2745c3a 100644
--- a/v7/mediarouter/res/drawable-xxhdpi/ic_play_dark.png
+++ b/v7/mediarouter/res/drawable-xxhdpi/ic_play_dark.png
Binary files differ
diff --git a/v7/mediarouter/res/drawable-xxhdpi/ic_play_light.png b/v7/mediarouter/res/drawable-xxhdpi/ic_play_light.png
index a5bd8df..27a0dc0 100644
--- a/v7/mediarouter/res/drawable-xxhdpi/ic_play_light.png
+++ b/v7/mediarouter/res/drawable-xxhdpi/ic_play_light.png
Binary files differ
diff --git a/v7/mediarouter/res/layout/mr_media_route_chooser_dialog.xml b/v7/mediarouter/res/layout/mr_chooser_dialog.xml
similarity index 76%
rename from v7/mediarouter/res/layout/mr_media_route_chooser_dialog.xml
rename to v7/mediarouter/res/layout/mr_chooser_dialog.xml
index 6608f9a..bda99f5 100644
--- a/v7/mediarouter/res/layout/mr_media_route_chooser_dialog.xml
+++ b/v7/mediarouter/res/layout/mr_chooser_dialog.xml
@@ -14,18 +14,15 @@
      limitations under the License.
 -->
 
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:layout_width="fill_parent"
-              android:layout_height="wrap_content"
-              android:orientation="vertical"
-              android:paddingTop="24dp"
-              android:paddingBottom="24dp">
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+             android:layout_width="fill_parent"
+             android:layout_height="wrap_content" >
 
-    <ListView android:id="@+id/media_route_list"
+    <ListView android:id="@+id/mr_chooser_list"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content"
               android:divider="@android:color/transparent"
-              android:dividerHeight="@dimen/mr_list_item_margin"/>
+              android:dividerHeight="0dp" />
 
     <LinearLayout android:id="@android:id/empty"
               android:layout_width="fill_parent"
@@ -38,11 +35,11 @@
         <TextView android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:layout_gravity="center"
-                  android:text="@string/mr_media_route_chooser_searching" />
+                  android:text="@string/mr_chooser_searching" />
         <ProgressBar android:layout_width="150dp"
                      android:layout_height="wrap_content"
                      android:layout_gravity="center"
                      android:indeterminate="true"
                      style="?android:attr/progressBarStyleHorizontal" />
     </LinearLayout>
-</LinearLayout>
+</FrameLayout>
diff --git a/v7/mediarouter/res/layout/mr_media_route_list_item.xml b/v7/mediarouter/res/layout/mr_chooser_list_item.xml
similarity index 70%
rename from v7/mediarouter/res/layout/mr_media_route_list_item.xml
rename to v7/mediarouter/res/layout/mr_chooser_list_item.xml
index a2804ae..a363ab0 100644
--- a/v7/mediarouter/res/layout/mr_media_route_list_item.xml
+++ b/v7/mediarouter/res/layout/mr_chooser_list_item.xml
@@ -17,38 +17,35 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content"
+              android:minHeight="56dp"
+              android:paddingLeft="24dp"
+              android:paddingRight="24dp"
               android:orientation="horizontal"
-              android:gravity="center_vertical">
+              android:gravity="center_vertical" >
 
-    <ImageView android:id="@+id/routeIcon"
+    <ImageView android:id="@+id/mr_chooser_route_icon"
                android:layout_width="24dp"
                android:layout_height="24dp"
-               android:layout_marginLeft="24dp"
                android:layout_marginRight="24dp" />
 
-    <LinearLayout android:layout_width="0dp"
+    <LinearLayout android:layout_width="fill_parent"
                   android:layout_height="wrap_content"
-                  android:layout_weight="1"
-                  android:layout_marginRight="24dp"
-                  android:orientation="vertical"
-                  android:gravity="left|center_vertical"
-                  android:duplicateParentState="true">
+                  android:layout_marginBottom="2.5dp"
+                  android:orientation="vertical" >
 
-        <TextView android:id="@android:id/text1"
+        <TextView android:id="@+id/mr_chooser_route_name"
                   android:layout_width="fill_parent"
                   android:layout_height="32dp"
                   android:singleLine="true"
                   android:ellipsize="marquee"
-                  android:textAppearance="?attr/mediaRouteChooserPrimaryTextStyle"
-                  android:duplicateParentState="true" />
+                  android:textAppearance="?attr/mediaRouteChooserPrimaryTextStyle" />
 
-        <TextView android:id="@android:id/text2"
+        <TextView android:id="@+id/mr_chooser_route_desc"
                   android:layout_width="fill_parent"
                   android:layout_height="24dp"
                   android:singleLine="true"
                   android:ellipsize="marquee"
-                  android:textAppearance="?attr/mediaRouteChooserSecondaryTextStyle"
-                  android:duplicateParentState="true" />
+                  android:textAppearance="?attr/mediaRouteChooserSecondaryTextStyle" />
     </LinearLayout>
 
 </LinearLayout>
diff --git a/v7/mediarouter/res/layout/mr_controller_material_dialog_b.xml b/v7/mediarouter/res/layout/mr_controller_material_dialog_b.xml
new file mode 100644
index 0000000..8362fd7
--- /dev/null
+++ b/v7/mediarouter/res/layout/mr_controller_material_dialog_b.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:layout_width="match_parent"
+              android:layout_height="wrap_content"
+              android:orientation="vertical">
+    <LinearLayout android:id="@+id/mr_title_bar"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:paddingLeft="24dp"
+                  android:paddingRight="24dp"
+                  android:orientation="horizontal" >
+        <TextView android:id="@+id/mr_name"
+                  android:layout_width="0dp"
+                  android:layout_height="72dp"
+                  android:layout_weight="1"
+                  android:gravity="center_vertical"
+                  android:singleLine="true"
+                  android:ellipsize="end"
+                  android:textAppearance="?attr/mediaRouteControllerTitleTextStyle" />
+        <ImageButton android:id="@+id/mr_close"
+                     android:layout_width="24dp"
+                     android:layout_height="24dp"
+                     android:layout_marginLeft="12dp"
+                     android:layout_gravity="center_vertical"
+                     android:contentDescription="@string/mr_controller_close_description"
+                     android:src="?attr/mediaRouteCloseDrawable"
+                     android:background="?attr/selectableItemBackgroundBorderless" />
+    </LinearLayout>
+    <FrameLayout android:id="@+id/mr_custom_control"
+                 android:layout_width="match_parent"
+                 android:layout_height="wrap_content"
+                 android:visibility="gone" />
+    <ImageView android:id="@+id/mr_art"
+               android:layout_width="match_parent"
+               android:layout_height="wrap_content"
+               android:adjustViewBounds="true"
+               android:scaleType="fitCenter"
+               android:background="?attr/colorPrimary"
+               android:visibility="gone" />
+    <LinearLayout android:id="@+id/mr_control"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:orientation="vertical"
+                  android:paddingTop="16dp"
+                  android:paddingBottom="16dp"
+                  android:background="?attr/colorPrimary">
+        <include android:id="@+id/mr_playback_control"
+                 layout="@layout/mr_playback_control" />
+        <View android:id="@+id/mr_control_divider"
+              android:layout_width="fill_parent"
+              android:layout_height="8dp"
+              android:visibility="gone"
+              android:background="?attr/colorPrimary" />
+        <include android:id="@+id/mr_volume_control"
+                 layout="@layout/mr_volume_control" />
+    </LinearLayout>
+    <ListView android:id="@+id/mr_volume_group_list"
+              android:layout_width="fill_parent"
+              android:layout_height="wrap_content"
+              android:background="?attr/colorPrimaryDark"
+              android:visibility="gone" />
+    <LinearLayout android:id="@+id/mr_buttons"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:orientation="horizontal">
+        <Button android:id="@+id/mr_button_disconnect"
+                android:layout_width="0dp"
+                android:layout_height="48dp"
+                android:gravity="center"
+                android:layout_weight="1"
+                android:background="?attr/selectableItemBackgroundBorderless"
+                android:text="@string/mr_controller_disconnect"
+                android:visibility="invisible" />
+        <Button android:id="@+id/mr_button_stop"
+                android:layout_width="0dp"
+                android:layout_height="48dp"
+                android:gravity="center"
+                android:layout_weight="1"
+                android:textColor="?attr/colorAccent"
+                android:background="?attr/selectableItemBackgroundBorderless"
+                android:text="@string/mr_controller_stop" />
+    </LinearLayout>
+</LinearLayout>
diff --git a/v7/mediarouter/res/layout/mr_media_route_controller_volume_item.xml b/v7/mediarouter/res/layout/mr_controller_volume_item.xml
similarity index 82%
rename from v7/mediarouter/res/layout/mr_media_route_controller_volume_item.xml
rename to v7/mediarouter/res/layout/mr_controller_volume_item.xml
index d07d94b..8202810 100644
--- a/v7/mediarouter/res/layout/mr_media_route_controller_volume_item.xml
+++ b/v7/mediarouter/res/layout/mr_controller_volume_item.xml
@@ -18,24 +18,24 @@
               android:layout_width="fill_parent"
               android:layout_height="64dp"
               android:padding="8dp">
-    <TextView android:id="@+id/media_route_name"
+    <TextView android:id="@+id/mr_name"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_alignParentTop="true"
               android:layout_alignParentLeft="true" />
-    <ImageView android:id="@+id/media_route_volume_item_icon"
+    <ImageView android:id="@+id/mr_volume_item_icon"
                android:layout_width="48dp"
                android:layout_height="48dp"
-               android:layout_below="@id/media_route_name"
+               android:layout_below="@id/mr_name"
                android:layout_alignParentLeft="true"
                android:src="?attr/mediaRouteAudioTrackDrawable"
                android:gravity="center"
                android:scaleType="center" />
-    <SeekBar android:id="@+id/media_route_volume_slider"
+    <SeekBar android:id="@+id/mr_volume_slider"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
-             android:layout_below="@id/media_route_name"
-             android:layout_toRightOf="@id/media_route_volume_item_icon"
+             android:layout_below="@id/mr_name"
+             android:layout_toRightOf="@id/mr_volume_item_icon"
              android:layout_gravity="center_vertical"
              android:layout_marginTop="8dp"
              android:layout_marginLeft="8dp"
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
deleted file mode 100644
index cfb3da4..0000000
--- a/v7/mediarouter/res/layout/mr_media_route_controller_material_dialog_b.xml
+++ /dev/null
@@ -1,145 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content">
-    <LinearLayout android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical">
-        <LinearLayout android:id="@+id/title_bar"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:paddingLeft="24dp"
-                android:paddingRight="24dp"
-                android:orientation="horizontal" >
-            <TextView android:id="@+id/route_name"
-                    android:layout_width="0dp"
-                    android:layout_height="72dp"
-                    android:layout_weight="1"
-                    android:gravity="center_vertical"
-                    android:singleLine="true"
-                    android:ellipsize="end"
-                    android:textAppearance="?attr/mediaRouteControllerTitleTextStyle" />
-            <ImageButton android:id="@+id/close"
-                    android:layout_width="24dp"
-                    android:layout_height="24dp"
-                    android:layout_marginLeft="12dp"
-                    android:layout_gravity="center_vertical"
-                    android:contentDescription="@string/mr_media_route_controller_close_description"
-                    android:src="?attr/mediaRouteCloseDrawable"
-                    android:background="?attr/selectableItemBackgroundBorderless" />
-        </LinearLayout>
-        <FrameLayout android:id="@+id/media_route_control_frame"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content" >
-            <RelativeLayout android:id="@+id/default_control_frame"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:background="?attr/colorPrimary">
-                <ImageView android:id="@+id/art"
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:adjustViewBounds="true"
-                        android:scaleType="fitCenter"/>
-                <ImageButton android:id="@+id/play_pause"
-                        android:layout_width="48dip"
-                        android:layout_height="48dip"
-                        android:padding="12dip"
-                        android:layout_marginTop="8dip"
-                        android:layout_marginBottom="8dip"
-                        android:layout_alignParentRight="true"
-                        android:layout_below="@id/art"
-                        android:contentDescription="@string/mr_media_route_controller_play"
-                        android:background="?attr/selectableItemBackgroundBorderless"/>
-                <LinearLayout android:orientation="vertical"
-                        android:layout_height="wrap_content"
-                        android:layout_width="wrap_content"
-                        android:minHeight="64dip"
-                        android:layout_marginLeft="24dip"
-                        android:gravity="center_vertical"
-                        android:layout_toLeftOf="@id/play_pause"
-                        android:layout_below="@id/art"
-                        android:layout_alignParentLeft="true" >
-                    <TextView android:id="@+id/title"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:textAppearance="?attr/mediaRouteControllerPrimaryTextStyle"
-                            android:singleLine="true" />
-                    <TextView android:id="@+id/subtitle"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:textAppearance="?attr/mediaRouteControllerSecondaryTextStyle"
-                            android:singleLine="true" />
-                </LinearLayout>
-            </RelativeLayout>
-        </FrameLayout>
-        <!-- Optional volume slider section. -->
-        <LinearLayout android:id="@+id/media_route_volume_layout"
-                      android:layout_width="fill_parent"
-                      android:layout_height="64dp"
-                      android:gravity="center_vertical"
-                      android:padding="8dp"
-                      android:visibility="gone"
-                      android:background="?attr/colorPrimary">
-            <ImageView android:layout_width="48dp"
-                       android:layout_height="48dp"
-                       android:src="?attr/mediaRouteCastDrawable"
-                       android:gravity="center"
-                       android:scaleType="center" />
-            <SeekBar android:id="@+id/media_route_volume_slider"
-                     android:layout_width="0dp"
-                     android:layout_height="wrap_content"
-                     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>
-        <ListView android:id="@+id/media_route_volume_group_list"
-                  android:layout_width="fill_parent"
-                  android:layout_height="wrap_content"
-                  android:visibility="gone">
-        </ListView>
-        <LinearLayout android:id="@+id/buttons"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:orientation="horizontal" >
-            <Button android:id="@+id/disconnect"
-                android:layout_width="0dp"
-                android:layout_height="48dp"
-                android:gravity="center"
-                android:layout_weight="1"
-                android:background="?attr/selectableItemBackgroundBorderless"
-                android:text="@string/mr_media_route_controller_disconnect"
-                android:visibility="gone" />
-            <Button android:id="@+id/stop"
-                android:layout_width="0dp"
-                android:layout_height="48dp"
-                android:gravity="center"
-                android:layout_weight="1"
-                android:textColor="?attr/colorAccent"
-                android:background="?attr/selectableItemBackgroundBorderless"
-                android:text="@string/mr_media_route_controller_stop" />
-        </LinearLayout>
-    </LinearLayout>
-</ScrollView>
diff --git a/v7/mediarouter/res/layout/mr_playback_control.xml b/v7/mediarouter/res/layout/mr_playback_control.xml
new file mode 100644
index 0000000..b619bed
--- /dev/null
+++ b/v7/mediarouter/res/layout/mr_playback_control.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal"
+                android:background="?attr/colorPrimary">
+    <ImageButton android:id="@+id/mr_control_play_pause"
+                 android:layout_width="wrap_content"
+                 android:layout_height="wrap_content"
+                 android:layout_marginLeft="12dp"
+                 android:layout_marginRight="12dp"
+                 android:layout_alignParentRight="true"
+                 android:layout_centerInParent="true"
+                 android:contentDescription="@string/mr_controller_play"
+                 android:background="?attr/selectableItemBackgroundBorderless"
+                 android:visibility="gone" />
+    <LinearLayout android:orientation="vertical"
+                  android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:layout_marginLeft="24dp"
+                  android:layout_alignParentLeft="true"
+                  android:layout_toLeftOf="@id/mr_control_play_pause"
+                  android:layout_centerInParent="true">
+        <TextView android:id="@+id/mr_control_title"
+                  android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:textAppearance="?attr/mediaRouteControllerPrimaryTextStyle"
+                  android:singleLine="true" />
+        <TextView android:id="@+id/mr_control_subtitle"
+                  android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:textAppearance="?attr/mediaRouteControllerSecondaryTextStyle"
+                  android:singleLine="true" />
+    </LinearLayout>
+</RelativeLayout>
diff --git a/v7/mediarouter/res/layout/mr_volume_control.xml b/v7/mediarouter/res/layout/mr_volume_control.xml
new file mode 100644
index 0000000..ab53352
--- /dev/null
+++ b/v7/mediarouter/res/layout/mr_volume_control.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:layout_width="fill_parent"
+              android:layout_height="wrap_content"
+              android:minHeight="48dp"
+              android:gravity="center_vertical"
+              android:paddingLeft="24dp"
+              android:paddingRight="12dp"
+              android:background="?attr/colorPrimary">
+    <ImageView android:layout_width="24dp"
+               android:layout_height="24dp"
+               android:src="?attr/mediaRouteCastDrawable"
+               android:gravity="center"
+               android:scaleType="center" />
+    <SeekBar android:id="@+id/mr_volume_slider"
+             android:layout_width="0dp"
+             android:layout_height="wrap_content"
+             android:layout_weight="1" />
+    <ImageButton android:id="@+id/mr_group_expand_collapse"
+                 android:layout_width="48dp"
+                 android:layout_height="48dp"
+                 android:contentDescription="@string/mr_controller_expand_group"
+                 android:src="?attr/mediaRouteExpandGroupDrawable"
+                 android:background="?attr/selectableItemBackgroundBorderless"
+                 android:visibility="gone" />
+</LinearLayout>
diff --git a/v7/mediarouter/res/values-af/strings.xml b/v7/mediarouter/res/values-af/strings.xml
index 0dcfa86..891e66d 100644
--- a/v7/mediarouter/res/values-af/strings.xml
+++ b/v7/mediarouter/res/values-af/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Stelsel"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Toestelle"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Saai uit"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Koppel aan toestel"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Soek tans vir toestelle…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Ontkoppel"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Hou op uitsaai"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Saai uit"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Koppel aan toestel"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Soek tans vir toestelle…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Ontkoppel"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Hou op uitsaai"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Roete-instellings"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Speel"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Laat wag"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Speel"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Laat wag"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-am/strings.xml b/v7/mediarouter/res/values-am/strings.xml
index 5d061c91..9d9a90d 100644
--- a/v7/mediarouter/res/values-am/strings.xml
+++ b/v7/mediarouter/res/values-am/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"ስርዓት"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"መሣሪያዎች"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"ውሰድ"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"ከመሳሪያ ጋር ያገናኙ"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"መሳሪያዎችን በመፈለግ ላይ…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"ግንኙነት አቋርጥ"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"መውሰድ አቁም"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"ውሰድ"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"ከመሳሪያ ጋር ያገናኙ"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"መሳሪያዎችን በመፈለግ ላይ…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"ግንኙነት አቋርጥ"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"መውሰድ አቁም"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"የመንገድ ቅንብሮች"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"አጫውት"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"ለአፍታ አቁም"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"አጫውት"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"ለአፍታ አቁም"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-ar/strings.xml b/v7/mediarouter/res/values-ar/strings.xml
index ac0fb5d..c0c5a25 100644
--- a/v7/mediarouter/res/values-ar/strings.xml
+++ b/v7/mediarouter/res/values-ar/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"النظام"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"الأجهزة"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"إرسال"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"الاتصال بجهاز"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"جارٍ البحث عن الأجهزة…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"قطع الاتصال"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"إيقاف الإرسال"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"إرسال"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"الاتصال بجهاز"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"جارٍ البحث عن الأجهزة…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"قطع الاتصال"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"إيقاف الإرسال"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"إعدادات المسار"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"تشغيل"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"إيقاف مؤقت"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"تشغيل"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"إيقاف مؤقت"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-bg/strings.xml b/v7/mediarouter/res/values-bg/strings.xml
index 0918332..93676ed 100644
--- a/v7/mediarouter/res/values-bg/strings.xml
+++ b/v7/mediarouter/res/values-bg/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Система"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Устройства"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Предаване"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Свързване с устройство"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Търсят се устройства…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Прекратяване на връзката"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Спиране на предаването"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Предаване"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Свързване с устройство"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Търсят се устройства…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Прекратяване на връзката"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Спиране на предаването"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Настройки за маршрута"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Пускане"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Поставяне на пауза"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Пускане"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Поставяне на пауза"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-bn-rBD/strings.xml b/v7/mediarouter/res/values-bn-rBD/strings.xml
index de862e5..ee08f48 100644
--- a/v7/mediarouter/res/values-bn-rBD/strings.xml
+++ b/v7/mediarouter/res/values-bn-rBD/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"সিস্টেম"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"ডিভাইসগুলি"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"কাস্ট করুন"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"ডিভাইসে সংযোগ করুন"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"ডিভাইসগুলি অনুসন্ধান করা হচ্ছে…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"সংযোগ বিচ্ছিন্ন করুন"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"কাস্ট করা বন্ধ করুন"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"কাস্ট করুন"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"ডিভাইসে সংযোগ করুন"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"ডিভাইসগুলি অনুসন্ধান করা হচ্ছে…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"সংযোগ বিচ্ছিন্ন করুন"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"কাস্ট করা বন্ধ করুন"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"সেটিংস রুট করুন"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"চালান"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"বিরাম দিন"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"চালান"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"বিরাম দিন"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-ca/strings.xml b/v7/mediarouter/res/values-ca/strings.xml
index eac6632..ce4c180 100644
--- a/v7/mediarouter/res/values-ca/strings.xml
+++ b/v7/mediarouter/res/values-ca/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Sistema"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Dispositius"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Emet"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Connecta al dispositiu"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"S\'estan cercant dispositius…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Desconnecta"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Atura l\'emissió"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Emet"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Connecta al dispositiu"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"S\'estan cercant dispositius…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Desconnecta"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Atura l\'emissió"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Configuració de la ruta"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Reprodueix"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Posa en pausa"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Reprodueix"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Posa en pausa"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-cs/strings.xml b/v7/mediarouter/res/values-cs/strings.xml
index 111c02a..c17629a 100644
--- a/v7/mediarouter/res/values-cs/strings.xml
+++ b/v7/mediarouter/res/values-cs/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Systém"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Zařízení"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Odeslat"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Připojení k zařízení"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Vyhledávání zařízení…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Odpojit"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Ukončit odesílání"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Odeslat"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Připojení k zařízení"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Vyhledávání zařízení…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Odpojit"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Ukončit odesílání"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Nastavení trasy"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Přehrát"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Pozastavit"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Přehrát"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Pozastavit"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-da/strings.xml b/v7/mediarouter/res/values-da/strings.xml
index 3b4fbf6..786cdc6 100644
--- a/v7/mediarouter/res/values-da/strings.xml
+++ b/v7/mediarouter/res/values-da/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"System"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Enheder"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Cast"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Opret forbindelse til enheden"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Søger efter enheder..."</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Afbryd forbindelsen"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Stop med at caste"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Cast"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Opret forbindelse til enheden"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Søger efter enheder..."</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Afbryd forbindelsen"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Stop med at caste"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Ruteindstillinger"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Afspil"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Sæt på pause"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Afspil"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Sæt på pause"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-de/strings.xml b/v7/mediarouter/res/values-de/strings.xml
index 5b8e494..296b611 100644
--- a/v7/mediarouter/res/values-de/strings.xml
+++ b/v7/mediarouter/res/values-de/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"System"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Geräte"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Übertragen"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Mit Gerät verbinden"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Geräte werden gesucht…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Verbindung aufheben"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Übertragung stoppen"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Übertragen"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Mit Gerät verbinden"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Geräte werden gesucht…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Verbindung aufheben"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Übertragung stoppen"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Routingeinstellungen"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Wiedergabe"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Pause"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Wiedergabe"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Pause"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-el/strings.xml b/v7/mediarouter/res/values-el/strings.xml
index 3640111..153ad7b 100644
--- a/v7/mediarouter/res/values-el/strings.xml
+++ b/v7/mediarouter/res/values-el/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Σύστημα"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Συσκευές"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Μετάδοση"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Σύνδεση με τη συσκευή"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Αναζήτηση συσκευών…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Αποσύνδεση"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Διακοπή μετάδοσης"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Μετάδοση"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Σύνδεση με τη συσκευή"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Αναζήτηση συσκευών…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Αποσύνδεση"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Διακοπή μετάδοσης"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Ρυθμίσεις διαδρομής"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Αναπαραγωγή"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Παύση"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Αναπαραγωγή"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Παύση"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-en-rAU/strings.xml b/v7/mediarouter/res/values-en-rAU/strings.xml
index f5a8531..1cb9d4a 100644
--- a/v7/mediarouter/res/values-en-rAU/strings.xml
+++ b/v7/mediarouter/res/values-en-rAU/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"System"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Devices"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Cast"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Connect to device"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Searching for devices…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Disconnect"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Stop casting"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Cast"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Connect to device"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Searching for devices…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Disconnect"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Stop casting"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Route settings"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Play"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Pause"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Play"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Pause"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-en-rGB/strings.xml b/v7/mediarouter/res/values-en-rGB/strings.xml
index f5a8531..1cb9d4a 100644
--- a/v7/mediarouter/res/values-en-rGB/strings.xml
+++ b/v7/mediarouter/res/values-en-rGB/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"System"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Devices"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Cast"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Connect to device"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Searching for devices…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Disconnect"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Stop casting"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Cast"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Connect to device"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Searching for devices…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Disconnect"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Stop casting"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Route settings"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Play"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Pause"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Play"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Pause"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-en-rIN/strings.xml b/v7/mediarouter/res/values-en-rIN/strings.xml
index f5a8531..1cb9d4a 100644
--- a/v7/mediarouter/res/values-en-rIN/strings.xml
+++ b/v7/mediarouter/res/values-en-rIN/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"System"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Devices"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Cast"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Connect to device"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Searching for devices…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Disconnect"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Stop casting"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Cast"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Connect to device"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Searching for devices…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Disconnect"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Stop casting"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Route settings"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Play"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Pause"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Play"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Pause"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-es-rUS/strings.xml b/v7/mediarouter/res/values-es-rUS/strings.xml
index e1cf915..7d3b402 100644
--- a/v7/mediarouter/res/values-es-rUS/strings.xml
+++ b/v7/mediarouter/res/values-es-rUS/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Sistema"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Dispositivos"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Transmitir"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Conectar al dispositivo"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Buscando dispositivos…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Desconectar"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Detener transmisión"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Transmitir"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Conectar al dispositivo"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Buscando dispositivos…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Desconectar"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Detener transmisión"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Configuración de ruta"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Reproducir"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Pausar"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Reproducir"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Pausar"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-es/strings.xml b/v7/mediarouter/res/values-es/strings.xml
index 0f2a8ea..d80e303 100644
--- a/v7/mediarouter/res/values-es/strings.xml
+++ b/v7/mediarouter/res/values-es/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Sistema"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Dispositivos"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Enviar contenido"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Conectar a dispositivo"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Buscando dispositivos…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Desconectar"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Dejar de enviar contenido"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Enviar contenido"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Conectar a dispositivo"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Buscando dispositivos…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Desconectar"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Dejar de enviar contenido"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Ajustes de ruta"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Reproducir"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Pausa"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Reproducir"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Pausa"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-et-rEE/strings.xml b/v7/mediarouter/res/values-et-rEE/strings.xml
index ebc63fd..e458335 100644
--- a/v7/mediarouter/res/values-et-rEE/strings.xml
+++ b/v7/mediarouter/res/values-et-rEE/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Süsteem"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Seadmed"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Ülekandmine"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Seadmega ühendamine"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Seadmete otsimine …"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Katkesta ühendus"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Lõpeta ülekanne"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Ülekandmine"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Seadmega ühendamine"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Seadmete otsimine …"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Katkesta ühendus"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Lõpeta ülekanne"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Marsruudi seaded"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Esitamine"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Peatamine"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Esitamine"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Peatamine"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-eu-rES/strings.xml b/v7/mediarouter/res/values-eu-rES/strings.xml
index d177a55..899be285 100644
--- a/v7/mediarouter/res/values-eu-rES/strings.xml
+++ b/v7/mediarouter/res/values-eu-rES/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Sistema"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Gailuak"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Igorri"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Konektatu gailura"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Gailuak bilatzen…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Deskonektatu"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Utzi igortzeari"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Igorri"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Konektatu gailura"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Gailuak bilatzen…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Deskonektatu"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Utzi igortzeari"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Ibilbidearen ezarpenak"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Erreproduzitu"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Pausatu"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Erreproduzitu"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Pausatu"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-fa/strings.xml b/v7/mediarouter/res/values-fa/strings.xml
index e094982..76dcec6 100644
--- a/v7/mediarouter/res/values-fa/strings.xml
+++ b/v7/mediarouter/res/values-fa/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"سیستم"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"دستگاه‌ها"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"فرستادن"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"برقراری ارتباط با دستگاه"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"در حال جستجو برای دستگاه‌ها..."</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"قطع ارتباط"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"توقف فرستادن"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"فرستادن"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"برقراری ارتباط با دستگاه"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"در حال جستجو برای دستگاه‌ها..."</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"قطع ارتباط"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"توقف فرستادن"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"تنظیمات مسیر"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"پخش"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"توقف موقت"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"پخش"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"توقف موقت"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-fi/strings.xml b/v7/mediarouter/res/values-fi/strings.xml
index a21dc91..44c8b64 100644
--- a/v7/mediarouter/res/values-fi/strings.xml
+++ b/v7/mediarouter/res/values-fi/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Järjestelmä"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Laitteet"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Lähetä"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Yhdistä laitteeseen"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Etsitään laitteita…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Katkaise yhteys"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Lopeta suoratoisto"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Lähetä"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Yhdistä laitteeseen"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Etsitään laitteita…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Katkaise yhteys"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Lopeta suoratoisto"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Reitin asetukset"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Toista"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Keskeytä"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Toista"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Keskeytä"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-fr-rCA/strings.xml b/v7/mediarouter/res/values-fr-rCA/strings.xml
index 0655526..6f385ff 100644
--- a/v7/mediarouter/res/values-fr-rCA/strings.xml
+++ b/v7/mediarouter/res/values-fr-rCA/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Système"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Appareils"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Diffuser"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Connexion au périphérique"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Recherche d\'appareils en cours…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Déconnecter"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Arrêter la diffusion"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Diffuser"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Connexion au périphérique"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Recherche d\'appareils en cours…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Déconnecter"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Arrêter la diffusion"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Paramètres de l\'itinéraire"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Lecture"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Suspendre"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Lecture"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Suspendre"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-fr/strings.xml b/v7/mediarouter/res/values-fr/strings.xml
index 9fce08a..711ccd3 100644
--- a/v7/mediarouter/res/values-fr/strings.xml
+++ b/v7/mediarouter/res/values-fr/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Système"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Appareils"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Caster"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Connecter à l\'appareil"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Recherche d\'appareils en cours…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Déconnecter"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Arrêter la diffusion"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Caster"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Connecter à l\'appareil"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Recherche d\'appareils en cours…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Déconnecter"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Arrêter la diffusion"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Paramètres de l\'itinéraire"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Lecture"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Pause"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Lecture"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Pause"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-gl-rES/strings.xml b/v7/mediarouter/res/values-gl-rES/strings.xml
index d1d73f9..61bc1e2 100644
--- a/v7/mediarouter/res/values-gl-rES/strings.xml
+++ b/v7/mediarouter/res/values-gl-rES/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Sistema"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Dispositivos"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Emitir"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Conectar co dispositivo"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Buscando dispositivos…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Desconectar"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Parar de emitir"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Emitir"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Conectar co dispositivo"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Buscando dispositivos…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Desconectar"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Parar de emitir"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Configuración da ruta"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Reproduce"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Pausa"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Reproduce"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Pausa"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-gu-rIN/strings.xml b/v7/mediarouter/res/values-gu-rIN/strings.xml
index 2002115..2fd0f36 100644
--- a/v7/mediarouter/res/values-gu-rIN/strings.xml
+++ b/v7/mediarouter/res/values-gu-rIN/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"સિસ્ટમ"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"ઉપકરણો"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"કાસ્ટ કરો"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"ઉપકરણ સાથે કનેક્ટ કરો"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"ઉપકરણો માટે શોધી રહ્યું છે…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"ડિસ્કનેક્ટ કરો"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"કાસ્ટ કરવાનું રોકો"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"કાસ્ટ કરો"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"ઉપકરણ સાથે કનેક્ટ કરો"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"ઉપકરણો માટે શોધી રહ્યું છે…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"ડિસ્કનેક્ટ કરો"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"કાસ્ટ કરવાનું રોકો"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"રૂટ સેટિંગ્સ"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"ચલાવો"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"થોભો"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"ચલાવો"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"થોભો"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-hi/strings.xml b/v7/mediarouter/res/values-hi/strings.xml
index 6d100ea..c2f58f3 100644
--- a/v7/mediarouter/res/values-hi/strings.xml
+++ b/v7/mediarouter/res/values-hi/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"सिस्टम"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"डिवाइस"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"कास्ट करें"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"डिवाइस से कनेक्ट करें"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"डिवाइस की खोज हो रही है…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"डिस्कनेक्ट करें"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"कास्ट करना बंद करें"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"कास्ट करें"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"डिवाइस से कनेक्ट करें"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"डिवाइस की खोज हो रही है…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"डिस्कनेक्ट करें"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"कास्ट करना बंद करें"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"मार्ग सेटिंग"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"चलाएं"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"रोकें"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"चलाएं"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"रोकें"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-hr/strings.xml b/v7/mediarouter/res/values-hr/strings.xml
index 74e9270d..dcb4934 100644
--- a/v7/mediarouter/res/values-hr/strings.xml
+++ b/v7/mediarouter/res/values-hr/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Sustav"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Uređaji"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Emitiranje"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Povezivanje s uređajem"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Traženje uređaja…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Prekini vezu"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Zaustavi emitiranje"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Emitiranje"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Povezivanje s uređajem"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Traženje uređaja…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Prekini vezu"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Zaustavi emitiranje"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Postavke rute"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Reprodukcija"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Pauziraj"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Reprodukcija"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Pauziraj"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-hu/strings.xml b/v7/mediarouter/res/values-hu/strings.xml
index efbc193..0a76065 100644
--- a/v7/mediarouter/res/values-hu/strings.xml
+++ b/v7/mediarouter/res/values-hu/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Rendszer"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Eszközök"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Tartalomátküldés"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Csatlakozás adott eszközhöz"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Eszközkeresés…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Leválasztás"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Átküldés leállítása"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Tartalomátküldés"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Csatlakozás adott eszközhöz"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Eszközkeresés…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Leválasztás"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Átküldés leállítása"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Útvonal-beállítások"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Indítás"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Szüneteltetés"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Indítás"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Szüneteltetés"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-hy-rAM/strings.xml b/v7/mediarouter/res/values-hy-rAM/strings.xml
index faa6020..19c65ed 100644
--- a/v7/mediarouter/res/values-hy-rAM/strings.xml
+++ b/v7/mediarouter/res/values-hy-rAM/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Համակարգ"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Սարքեր"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Հեռարձակում"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Միանալ սարքին"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Որոնվում են սարքեր..."</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Անջատել"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Դադարեցնել հեռարձակումը"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Հեռարձակում"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Միանալ սարքին"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Որոնվում են սարքեր..."</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Անջատել"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Դադարեցնել հեռարձակումը"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Ֆայլերի փոխանցման կարգավորումներ"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Նվագարկել"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Դադար"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Նվագարկել"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Դադար"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-in/strings.xml b/v7/mediarouter/res/values-in/strings.xml
index e3123c1..b90a0cb 100644
--- a/v7/mediarouter/res/values-in/strings.xml
+++ b/v7/mediarouter/res/values-in/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Sistem"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Perangkat"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Transmisi"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Sambungkan ke perangkat"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Menelusuri perangkat…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Putuskan sambungan"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Hentikan transmisi"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Transmisi"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Sambungkan ke perangkat"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Menelusuri perangkat…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Putuskan sambungan"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Hentikan transmisi"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Setelan rute"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Putar"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Jeda"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Putar"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Jeda"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-is-rIS/strings.xml b/v7/mediarouter/res/values-is-rIS/strings.xml
index 262e4e9..9fa308e 100644
--- a/v7/mediarouter/res/values-is-rIS/strings.xml
+++ b/v7/mediarouter/res/values-is-rIS/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Kerfi"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Tæki"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Senda út"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Tengjast tæki"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Leitar að tækjum…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Aftengja"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Stöðva útsendingu"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Senda út"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Tengjast tæki"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Leitar að tækjum…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Aftengja"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Stöðva útsendingu"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Leiðarstillingar"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Spila"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Hlé"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Spila"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Hlé"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-it/strings.xml b/v7/mediarouter/res/values-it/strings.xml
index bedd617..8c3324d 100644
--- a/v7/mediarouter/res/values-it/strings.xml
+++ b/v7/mediarouter/res/values-it/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Sistema"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Dispositivi"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Trasmetti"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Connetti al dispositivo"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Ricerca di dispositivi…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Disconnetti"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Interrompi trasmissione"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Trasmetti"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Connetti al dispositivo"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Ricerca di dispositivi…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Disconnetti"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Interrompi trasmissione"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Impostazioni percorso"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Riproduci"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Pausa"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Riproduci"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Pausa"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-iw/strings.xml b/v7/mediarouter/res/values-iw/strings.xml
index 12d17b9..720a4e2 100644
--- a/v7/mediarouter/res/values-iw/strings.xml
+++ b/v7/mediarouter/res/values-iw/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"מערכת"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"מכשירים"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"העבר"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"התחבר למכשיר"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"מחפש מכשירים…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"התנתק"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"עצור העברה"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"העבר"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"התחבר למכשיר"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"מחפש מכשירים…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"התנתק"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"עצור העברה"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"הגדרות נתיב"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"הפעל"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"השהה"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"הפעל"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"השהה"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-ja/strings.xml b/v7/mediarouter/res/values-ja/strings.xml
index e97a65a..37d80b6 100644
--- a/v7/mediarouter/res/values-ja/strings.xml
+++ b/v7/mediarouter/res/values-ja/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"システム"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"端末"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"キャスト"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"端末に接続"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"端末を検索しています…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"接続を解除"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"キャストを停止"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"キャスト"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"端末に接続"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"端末を検索しています…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"接続を解除"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"キャストを停止"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"ルーティング設定"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"再生"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"一時停止"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"再生"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"一時停止"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-ka-rGE/strings.xml b/v7/mediarouter/res/values-ka-rGE/strings.xml
index 758fe73..b37403a 100644
--- a/v7/mediarouter/res/values-ka-rGE/strings.xml
+++ b/v7/mediarouter/res/values-ka-rGE/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"სისტემა"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"მოწყობილობები"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"მსახიობები"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"მოწყობილობასთან დაკავშირება"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"მოწყობილობების ძიება…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"კავშირის გაწყვეტა"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"ტრანსლაციის შეჩერება"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"მსახიობები"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"მოწყობილობასთან დაკავშირება"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"მოწყობილობების ძიება…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"კავშირის გაწყვეტა"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"ტრანსლაციის შეჩერება"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"მარშრუტის პარამეტრები"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"დაკვრა"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"პაუზა"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"დაკვრა"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"პაუზა"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-kk-rKZ/strings.xml b/v7/mediarouter/res/values-kk-rKZ/strings.xml
index c549a8c..0778828 100644
--- a/v7/mediarouter/res/values-kk-rKZ/strings.xml
+++ b/v7/mediarouter/res/values-kk-rKZ/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Жүйе"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Құрылғылар"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Трансляциялау"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Құрылғыға жалғау"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Құрылғыларды іздеуде…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Ажырату"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Трансляциялауды тоқтату"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Трансляциялау"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Құрылғыға жалғау"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Құрылғыларды іздеуде…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Ажырату"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Трансляциялауды тоқтату"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Жол параметрлері"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Ойнату"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Кідірту"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Ойнату"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Кідірту"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-km-rKH/strings.xml b/v7/mediarouter/res/values-km-rKH/strings.xml
index b3e53c5..d41b47c 100644
--- a/v7/mediarouter/res/values-km-rKH/strings.xml
+++ b/v7/mediarouter/res/values-km-rKH/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"ប្រព័ន្ធ"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"ឧបករណ៍"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"បញ្ជូន"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"ភ្ជាប់​ឧបករណ៍"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"កំពុង​ស្វែងរក​ឧបករណ៍..."</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"ផ្ដាច់"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"បញ្ឈប់ការខាស"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"បញ្ជូន"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"ភ្ជាប់​ឧបករណ៍"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"កំពុង​ស្វែងរក​ឧបករណ៍..."</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"ផ្ដាច់"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"បញ្ឈប់ការខាស"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"ការកំណត់ផ្លូវ"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"ចាក់"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"ផ្អាក"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"ចាក់"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"ផ្អាក"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-kn-rIN/strings.xml b/v7/mediarouter/res/values-kn-rIN/strings.xml
index 36c3aaa..19785c9e 100644
--- a/v7/mediarouter/res/values-kn-rIN/strings.xml
+++ b/v7/mediarouter/res/values-kn-rIN/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"ಸಿಸ್ಟಂ"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"ಸಾಧನಗಳು"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"ಪಾತ್ರ"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"ಸಾಧನಕ್ಕೆ ಸಂಪರ್ಕಪಡಿಸಿ"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"ಸಾಧನಗಳನ್ನು ಹುಡುಕಲಾಗುತ್ತಿದೆ…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸು"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"ಬಿತ್ತರಿಸುವಿಕೆ ನಿಲ್ಲಿಸು"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"ಪಾತ್ರ"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"ಸಾಧನಕ್ಕೆ ಸಂಪರ್ಕಪಡಿಸಿ"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"ಸಾಧನಗಳನ್ನು ಹುಡುಕಲಾಗುತ್ತಿದೆ…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸು"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"ಬಿತ್ತರಿಸುವಿಕೆ ನಿಲ್ಲಿಸು"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"ಮಾರ್ಗ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"ಪ್ಲೇ ಮಾಡು"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"ವಿರಾಮ"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"ಪ್ಲೇ ಮಾಡು"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"ವಿರಾಮ"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-ko/strings.xml b/v7/mediarouter/res/values-ko/strings.xml
index d165e52..f9ee94ec 100644
--- a/v7/mediarouter/res/values-ko/strings.xml
+++ b/v7/mediarouter/res/values-ko/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"시스템"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"기기"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"전송"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"기기에 연결"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"기기 검색 중…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"연결 해제"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"전송 중지"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"전송"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"기기에 연결"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"기기 검색 중…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"연결 해제"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"전송 중지"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"경로 설정"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"재생"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"일시중지"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"재생"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"일시중지"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-ky-rKG/strings.xml b/v7/mediarouter/res/values-ky-rKG/strings.xml
index 1f7aba0..6565d05 100644
--- a/v7/mediarouter/res/values-ky-rKG/strings.xml
+++ b/v7/mediarouter/res/values-ky-rKG/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Систем"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Түзмөктөр"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Тандалгандар"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Түзмөккө туташуу"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Түзмөктөр изделүүдө..."</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Ажыратуу"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Тышк экранга чыгарну токтотуу"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Тандалгандар"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Түзмөккө туташуу"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Түзмөктөр изделүүдө..."</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Ажыратуу"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Тышк экранга чыгарну токтотуу"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Багыт жөндөөлөрү"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Ойнотуу"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Тындыруу"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Ойнотуу"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Тындыруу"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-lo-rLA/strings.xml b/v7/mediarouter/res/values-lo-rLA/strings.xml
index 6d61f7d..8077770 100644
--- a/v7/mediarouter/res/values-lo-rLA/strings.xml
+++ b/v7/mediarouter/res/values-lo-rLA/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"ລະບົບ"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"ອຸປະກອນ"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"ສົ່ງ​ສັນ​ຍານ"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"ເຊື່ອມຕໍ່ຫາອຸປະກອນ"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"ກຳລັງຊອກຫາອຸປະກອນ..."</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"ຕັດການເຊື່ອມຕໍ່"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"ຢຸດການສົ່ງສັນຍານ"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"ສົ່ງ​ສັນ​ຍານ"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"ເຊື່ອມຕໍ່ຫາອຸປະກອນ"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"ກຳລັງຊອກຫາອຸປະກອນ..."</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"ຕັດການເຊື່ອມຕໍ່"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"ຢຸດການສົ່ງສັນຍານ"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"ການ​ຕັ້ງ​ຄ່າ​ເສັ້ນ​ທາງ"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"ຫຼິ້ນ"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"ຢຸດຊົ່ວຄາວ"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"ຫຼິ້ນ"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"ຢຸດຊົ່ວຄາວ"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-lt/strings.xml b/v7/mediarouter/res/values-lt/strings.xml
index 2315618..3e78374 100644
--- a/v7/mediarouter/res/values-lt/strings.xml
+++ b/v7/mediarouter/res/values-lt/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Sistema"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Įrenginiai"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Perduoti"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Prijungimas prie įrenginio"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Ieškoma įrenginių…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Atjungti"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Sustabdyti perdavimą"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Perduoti"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Prijungimas prie įrenginio"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Ieškoma įrenginių…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Atjungti"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Sustabdyti perdavimą"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Maršruto nustatymai"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Leisti"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Pristabdyti"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Leisti"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Pristabdyti"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-lv/strings.xml b/v7/mediarouter/res/values-lv/strings.xml
index 93e45de..a7f30a4 100644
--- a/v7/mediarouter/res/values-lv/strings.xml
+++ b/v7/mediarouter/res/values-lv/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Sistēma"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Ierīces"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Apraidīt"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Savienojuma izveide ar ierīci"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Notiek ierīču meklēšana..."</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Atvienot"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Pārtraukt apraidi"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Apraidīt"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Savienojuma izveide ar ierīci"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Notiek ierīču meklēšana..."</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Atvienot"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Pārtraukt apraidi"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Maršruta iestatījumi"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Atskaņot"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Apturēt"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Atskaņot"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Apturēt"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-mk-rMK/strings.xml b/v7/mediarouter/res/values-mk-rMK/strings.xml
index 9b3f875d..47df5bc 100644
--- a/v7/mediarouter/res/values-mk-rMK/strings.xml
+++ b/v7/mediarouter/res/values-mk-rMK/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Систем"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Уреди"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Емитувај"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Поврзи се со уредот"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Се пребаруваат уреди..."</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Исклучи се"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Запри префрлување"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Емитувај"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Поврзи се со уредот"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Се пребаруваат уреди..."</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Исклучи се"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Запри префрлување"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Поставки на маршрутата"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Репродуцирај"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Пауза"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Репродуцирај"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Пауза"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-ml-rIN/strings.xml b/v7/mediarouter/res/values-ml-rIN/strings.xml
index 64c74b1..93192b6 100644
--- a/v7/mediarouter/res/values-ml-rIN/strings.xml
+++ b/v7/mediarouter/res/values-ml-rIN/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"സിസ്റ്റം"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"ഉപകരണങ്ങൾ"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"കാസ്‌റ്റുചെയ്യുക"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"ഉപകരണത്തിലേക്ക് കണക്റ്റുചെയ്യുക"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"ഉപകരണങ്ങൾക്കായി തിരയുന്നു…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"വിച്ഛേദിക്കുക"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"കാസ്റ്റുചെയ്യൽ നിർത്തുക"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"കാസ്‌റ്റുചെയ്യുക"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"ഉപകരണത്തിലേക്ക് കണക്റ്റുചെയ്യുക"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"ഉപകരണങ്ങൾക്കായി തിരയുന്നു…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"വിച്ഛേദിക്കുക"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"കാസ്റ്റുചെയ്യൽ നിർത്തുക"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"റൂട്ട് ക്രമീകരണം"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"പ്ലേ ചെയ്യുക"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"താൽക്കാലികമായി നിർത്തുക"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"പ്ലേ ചെയ്യുക"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"താൽക്കാലികമായി നിർത്തുക"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-mn-rMN/strings.xml b/v7/mediarouter/res/values-mn-rMN/strings.xml
index 2074767..e14eb50 100644
--- a/v7/mediarouter/res/values-mn-rMN/strings.xml
+++ b/v7/mediarouter/res/values-mn-rMN/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Систем"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Төхөөрөмжүүд"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Дамжуулах"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Төхөөрөмжтэй холбох"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Төхөөрөмжүүдийг хайж байна…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Салгах"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Нэвтрүүлэхийг зогсоох"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Дамжуулах"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Төхөөрөмжтэй холбох"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Төхөөрөмжүүдийг хайж байна…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Салгах"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Нэвтрүүлэхийг зогсоох"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Маршрут тохиргоо"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Тоглуулах"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Түр зогсоох"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Тоглуулах"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Түр зогсоох"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-mr-rIN/strings.xml b/v7/mediarouter/res/values-mr-rIN/strings.xml
index bd020a7..8313f5a 100644
--- a/v7/mediarouter/res/values-mr-rIN/strings.xml
+++ b/v7/mediarouter/res/values-mr-rIN/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"सिस्टम"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"डिव्हाइसेस"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"कास्‍ट करा"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"डिव्हाइसला कनेक्ट करा"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"डिव्‍हाइसेस शोधत आहे…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"‍डिस्कनेक्ट करा"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"कास्ट करणे थांबवा"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"कास्‍ट करा"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"डिव्हाइसला कनेक्ट करा"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"डिव्‍हाइसेस शोधत आहे…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"‍डिस्कनेक्ट करा"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"कास्ट करणे थांबवा"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"मार्ग सेटिंग्ज"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"प्ले करा"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"विराम द्या"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"प्ले करा"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"विराम द्या"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-ms-rMY/strings.xml b/v7/mediarouter/res/values-ms-rMY/strings.xml
index 05e9ffa..23371d3 100644
--- a/v7/mediarouter/res/values-ms-rMY/strings.xml
+++ b/v7/mediarouter/res/values-ms-rMY/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Sistem"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Peranti"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Barisan pelakon"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Sambung kepada peranti"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Mencari peranti..."</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Putuskan sambungan"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Berhenti menghantar"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Barisan pelakon"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Sambung kepada peranti"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Mencari peranti..."</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Putuskan sambungan"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Berhenti menghantar"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Tetapan laluan"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Main"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Jeda"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Main"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Jeda"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-my-rMM/strings.xml b/v7/mediarouter/res/values-my-rMM/strings.xml
index 20bfd8d..d8efc8a 100644
--- a/v7/mediarouter/res/values-my-rMM/strings.xml
+++ b/v7/mediarouter/res/values-my-rMM/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"စနစ်"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"စက်ပစ္စည်းများ"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"သရုပ်ဆောင်​များ"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"စက်တစ်ခုကို ချိတ်ဆက်ပါ"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"စက်ပစ္စည်းများကို ရှာဖွေနေပါသည်"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"ချိတ်ဆက်ခြင်းရပ်တန့်ရန်"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"ပုံစံသွင်းမှု ရပ်ရန်"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"သရုပ်ဆောင်​များ"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"စက်တစ်ခုကို ချိတ်ဆက်ပါ"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"စက်ပစ္စည်းများကို ရှာဖွေနေပါသည်"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"ချိတ်ဆက်ခြင်းရပ်တန့်ရန်"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"ပုံစံသွင်းမှု ရပ်ရန်"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"လမ်းကြောင်း အပြင်အဆင်များ"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"ဖွင့်ရန်"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"ခဏရပ်ရန်"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"ဖွင့်ရန်"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"ခဏရပ်ရန်"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-nb/strings.xml b/v7/mediarouter/res/values-nb/strings.xml
index 5ee8ec8..f806229 100644
--- a/v7/mediarouter/res/values-nb/strings.xml
+++ b/v7/mediarouter/res/values-nb/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"System"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Enheter"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Cast"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Koble til enheten"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Søker etter enheter …"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Koble fra"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Stopp castingen"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Cast"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Koble til enheten"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Søker etter enheter …"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Koble fra"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Stopp castingen"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Ruteinnstillinger"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Spill av"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Sett på pause"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Spill av"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Sett på pause"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-ne-rNP/strings.xml b/v7/mediarouter/res/values-ne-rNP/strings.xml
index aadcbcf..237279c 100644
--- a/v7/mediarouter/res/values-ne-rNP/strings.xml
+++ b/v7/mediarouter/res/values-ne-rNP/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"प्रणाली"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"उपकरणहरू"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"कास्ट"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"उपकरणसँग जडान गर्नुहोस्"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"उपकरणहरूका लागि खोजी गरिँदै..."</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"विच्छेदन गर्नुहोस्"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"कास्टिंग रोक्नुहोस्"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"कास्ट"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"उपकरणसँग जडान गर्नुहोस्"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"उपकरणहरूका लागि खोजी गरिँदै..."</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"विच्छेदन गर्नुहोस्"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"कास्टिंग रोक्नुहोस्"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"मार्ग सेटिङ"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"बजाउनुहोस्"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"रोक्नुहोस्"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"बजाउनुहोस्"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"रोक्नुहोस्"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-nl/strings.xml b/v7/mediarouter/res/values-nl/strings.xml
index fcfac4d..22323b1 100644
--- a/v7/mediarouter/res/values-nl/strings.xml
+++ b/v7/mediarouter/res/values-nl/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Systeem"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Apparaten"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Casten"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Verbinding maken met apparaat"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Zoeken naar apparaten…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Verbinding verbreken"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Casten stoppen"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Casten"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Verbinding maken met apparaat"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Zoeken naar apparaten…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Verbinding verbreken"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Casten stoppen"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Route-instellingen"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Afspelen"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Onderbreken"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Afspelen"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Onderbreken"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-pa-rIN/strings.xml b/v7/mediarouter/res/values-pa-rIN/strings.xml
index fb87320..02053d7 100644
--- a/v7/mediarouter/res/values-pa-rIN/strings.xml
+++ b/v7/mediarouter/res/values-pa-rIN/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"ਸਿਸਟਮ"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"ਡਿਵਾਈਸਾਂ"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"ਜੋੜੋ"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"ਡਿਵਾਈਸ ਨਾਲ ਕਨੈਕਟ ਕਰੋ"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"ਡਿਵਾਈਸਾਂ ਦੀ ਖੋਜ ਕਰ ਰਿਹਾ ਹੈ…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"ਡਿਸਕਨੈਕਟ ਕਰੋ"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"ਜੋੜਨਾ ਰੋਕੋ"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"ਜੋੜੋ"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"ਡਿਵਾਈਸ ਨਾਲ ਕਨੈਕਟ ਕਰੋ"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"ਡਿਵਾਈਸਾਂ ਦੀ ਖੋਜ ਕਰ ਰਿਹਾ ਹੈ…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"ਡਿਸਕਨੈਕਟ ਕਰੋ"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"ਜੋੜਨਾ ਰੋਕੋ"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"ਰੂਟ ਸੈਟਿੰਗਾਂ"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"ਪਲੇ ਕਰੋ"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"ਰੋਕੋ"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"ਪਲੇ ਕਰੋ"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"ਰੋਕੋ"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-pl/strings.xml b/v7/mediarouter/res/values-pl/strings.xml
index 34fea86..fbcb7e1 100644
--- a/v7/mediarouter/res/values-pl/strings.xml
+++ b/v7/mediarouter/res/values-pl/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"System"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Urządzenia"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Przesyłaj"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Połącz z urządzeniem"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Szukam urządzeń…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Rozłącz"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Zakończ przesyłanie"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Przesyłaj"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Połącz z urządzeniem"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Szukam urządzeń…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Rozłącz"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Zakończ przesyłanie"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Ustawienia trasy"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Odtwórz"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Wstrzymaj"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Odtwórz"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Wstrzymaj"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-pt-rPT/strings.xml b/v7/mediarouter/res/values-pt-rPT/strings.xml
index 1e1dbbb..7982b3c 100644
--- a/v7/mediarouter/res/values-pt-rPT/strings.xml
+++ b/v7/mediarouter/res/values-pt-rPT/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Sistema"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Dispositivos"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Transmitir"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Ligar ao dispositivo"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"A pesquisar dispositivos…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Desassociar"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Parar a transmissão"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Transmitir"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Ligar ao dispositivo"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"A pesquisar dispositivos…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Desassociar"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Parar a transmissão"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Definições de trajeto"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Reproduzir"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Colocar em pausa"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Reproduzir"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Colocar em pausa"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-pt/strings.xml b/v7/mediarouter/res/values-pt/strings.xml
index 67648a7..12a954a 100644
--- a/v7/mediarouter/res/values-pt/strings.xml
+++ b/v7/mediarouter/res/values-pt/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Sistema"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Dispositivos"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Transmitir"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Conectar ao dispositivo"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Procurando dispositivos…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Desconectar"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Interromper transmissão"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Transmitir"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Conectar ao dispositivo"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Procurando dispositivos…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Desconectar"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Interromper transmissão"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Configurações de rota"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Reproduzir"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Pausar"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Reproduzir"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Pausar"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-ro/strings.xml b/v7/mediarouter/res/values-ro/strings.xml
index d738bab..6e8bb4c 100644
--- a/v7/mediarouter/res/values-ro/strings.xml
+++ b/v7/mediarouter/res/values-ro/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Sistem"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Dispozitive"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Trimiteți"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Conectați-vă la dispozitiv"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Se caută dispozitive..."</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Deconectați-vă"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Nu mai proiectați"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Trimiteți"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Conectați-vă la dispozitiv"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Se caută dispozitive..."</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Deconectați-vă"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Nu mai proiectați"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Setări pentru traseu"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Redați"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Întrerupeți"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Redați"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Întrerupeți"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-ru/strings.xml b/v7/mediarouter/res/values-ru/strings.xml
index dfa836c..0b9d7a7 100644
--- a/v7/mediarouter/res/values-ru/strings.xml
+++ b/v7/mediarouter/res/values-ru/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Система"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Устройства"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Транслировать."</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Подключение к устройству"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Поиск устройств…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Отключить"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Остановить трансляцию"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Транслировать."</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Подключение к устройству"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Поиск устройств…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Отключить"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Остановить трансляцию"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Настройки передачи файлов"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Воспроизвести."</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Приостановить."</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Воспроизвести."</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Приостановить."</string>
 </resources>
diff --git a/v7/mediarouter/res/values-si-rLK/strings.xml b/v7/mediarouter/res/values-si-rLK/strings.xml
index 1ac7319..6db6506 100644
--- a/v7/mediarouter/res/values-si-rLK/strings.xml
+++ b/v7/mediarouter/res/values-si-rLK/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"පද්ධතිය"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"උපාංග"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Cast"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"උපාංගයට සම්බන්ධ වන්න"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"උපාංග සඳහා සොයමින්…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"විසන්ධි කරන්න"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"කාස්ට් කිරීම නවත්වන්න"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Cast"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"උපාංගයට සම්බන්ධ වන්න"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"උපාංග සඳහා සොයමින්…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"විසන්ධි කරන්න"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"කාස්ට් කිරීම නවත්වන්න"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"ගමන් මගේ සැකසීම්"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"ධාවනය කරන්න"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"විරාමය"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"ධාවනය කරන්න"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"විරාමය"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-sk/strings.xml b/v7/mediarouter/res/values-sk/strings.xml
index 3156edf..e6a02ac 100644
--- a/v7/mediarouter/res/values-sk/strings.xml
+++ b/v7/mediarouter/res/values-sk/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Systém"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Zariadenia"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Preniesť"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Pripojenie k zariadeniu"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Prebieha vyhľadávanie zariadení…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Odpojiť"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Zastaviť prenášanie"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Preniesť"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Pripojenie k zariadeniu"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Prebieha vyhľadávanie zariadení…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Odpojiť"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Zastaviť prenášanie"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Nastavenia trasy"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Prehrať"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Pozastaviť"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Prehrať"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Pozastaviť"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-sl/strings.xml b/v7/mediarouter/res/values-sl/strings.xml
index 3de14aa..8b02d5d 100644
--- a/v7/mediarouter/res/values-sl/strings.xml
+++ b/v7/mediarouter/res/values-sl/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Sistem"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Naprave"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Predvajanje"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Povezovanje z napravo"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Iskanje naprav …"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Prekini povezavo"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Ustavi predvajanje"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Predvajanje"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Povezovanje z napravo"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Iskanje naprav …"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Prekini povezavo"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Ustavi predvajanje"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Nastavitve poti"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Predvajaj"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Zaustavi"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Predvajaj"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Zaustavi"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-sq-rAL/strings.xml b/v7/mediarouter/res/values-sq-rAL/strings.xml
index 2df43b1..ccd00c7 100644
--- a/v7/mediarouter/res/values-sq-rAL/strings.xml
+++ b/v7/mediarouter/res/values-sq-rAL/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Sistemi"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Pajisjet"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Transmeto"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Lidhu me pajisjen"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Po kërkon për pajisje…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Shkëputu"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Ndalo transmetimin"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Transmeto"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Lidhu me pajisjen"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Po kërkon për pajisje…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Shkëputu"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Ndalo transmetimin"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Cilësimet e rrugës"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Luaj"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Pauzë"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Luaj"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Pauzë"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-sr/strings.xml b/v7/mediarouter/res/values-sr/strings.xml
index de10685..9bca659 100644
--- a/v7/mediarouter/res/values-sr/strings.xml
+++ b/v7/mediarouter/res/values-sr/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Систем"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Уређаји"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Пребацуј"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Повежите са уређајем"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Претраживање уређаја…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Прекини везу"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Заустави пребацивање"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Пребацуј"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Повежите са уређајем"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Претраживање уређаја…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Прекини везу"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Заустави пребацивање"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Подешавања путање"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Пусти"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Паузирај"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Пусти"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Паузирај"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-sv/strings.xml b/v7/mediarouter/res/values-sv/strings.xml
index 3ac428a..e802f47 100644
--- a/v7/mediarouter/res/values-sv/strings.xml
+++ b/v7/mediarouter/res/values-sv/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"System"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Enheter"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Casta"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Anslut till enhet"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Söker efter enheter ..."</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Koppla från"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Sluta casta"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Casta"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Anslut till enhet"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Söker efter enheter ..."</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Koppla från"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Sluta casta"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Inställningar för omdirigering"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Spela upp"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Pausa"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Spela upp"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Pausa"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-sw/strings.xml b/v7/mediarouter/res/values-sw/strings.xml
index 00ce337..5f2c5b7 100644
--- a/v7/mediarouter/res/values-sw/strings.xml
+++ b/v7/mediarouter/res/values-sw/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Mfumo"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Vifaa"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Tuma"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Unganisha kwenye kifaa"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Inatafuta vifaa..."</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Tenganisha"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Acha kutuma"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Tuma"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Unganisha kwenye kifaa"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Inatafuta vifaa..."</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Tenganisha"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Acha kutuma"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Mipangilio ya njia"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Google Play"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Sitisha"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Google Play"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Sitisha"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-ta-rIN/strings.xml b/v7/mediarouter/res/values-ta-rIN/strings.xml
index f92c432..2496d80 100644
--- a/v7/mediarouter/res/values-ta-rIN/strings.xml
+++ b/v7/mediarouter/res/values-ta-rIN/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"அமைப்பு"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"சாதனங்கள்"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"அனுப்பு"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"சாதனத்துடன் இணைக்கவும்"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"சாதனங்களைத் தேடுகிறது..."</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"துண்டி"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"அனுப்புவதை நிறுத்து"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"அனுப்பு"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"சாதனத்துடன் இணைக்கவும்"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"சாதனங்களைத் தேடுகிறது..."</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"துண்டி"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"அனுப்புவதை நிறுத்து"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"வழி அமைப்புகள்"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"இயக்கு"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"இடைநிறுத்து"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"இயக்கு"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"இடைநிறுத்து"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-te-rIN/strings.xml b/v7/mediarouter/res/values-te-rIN/strings.xml
index 0913420..897fa1e 100644
--- a/v7/mediarouter/res/values-te-rIN/strings.xml
+++ b/v7/mediarouter/res/values-te-rIN/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"సిస్టమ్"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"పరికరాలు"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"ప్రసారం చేయండి"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"పరికరానికి కనెక్ట్ చేయండి"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"పరికరాల కోసం శోధిస్తోంది…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"డిస్‌కనెక్ట్ చేయి"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"ప్రసారాన్ని ఆపివేయి"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"ప్రసారం చేయండి"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"పరికరానికి కనెక్ట్ చేయండి"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"పరికరాల కోసం శోధిస్తోంది…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"డిస్‌కనెక్ట్ చేయి"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"ప్రసారాన్ని ఆపివేయి"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"మార్గ సెట్టింగ్‌లు"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"ప్లే చేయి"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"పాజ్ చేయి"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"ప్లే చేయి"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"పాజ్ చేయి"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-th/strings.xml b/v7/mediarouter/res/values-th/strings.xml
index 31fc9c7..7fed923 100644
--- a/v7/mediarouter/res/values-th/strings.xml
+++ b/v7/mediarouter/res/values-th/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"ระบบ"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"อุปกรณ์"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"ส่ง"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"เชื่อมต่อกับอุปกรณ์"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"กำลังค้นหาอุปกรณ์…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"ยกเลิกการเชื่อมต่อ"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"หยุดการส่ง"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"ส่ง"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"เชื่อมต่อกับอุปกรณ์"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"กำลังค้นหาอุปกรณ์…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"ยกเลิกการเชื่อมต่อ"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"หยุดการส่ง"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"การตั้งค่าเส้นทาง"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"เล่น"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"หยุดชั่วคราว"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"เล่น"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"หยุดชั่วคราว"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-tl/strings.xml b/v7/mediarouter/res/values-tl/strings.xml
index d4896b5..b22031a 100644
--- a/v7/mediarouter/res/values-tl/strings.xml
+++ b/v7/mediarouter/res/values-tl/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"System"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Mga Device"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"I-cast"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Kumonekta sa device"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Naghahanap ng mga device…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Idiskonekta"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Itigil ang pagca-cast"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"I-cast"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Kumonekta sa device"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Naghahanap ng mga device…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Idiskonekta"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Itigil ang pagca-cast"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Mga setting ng ruta"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"I-play"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"I-pause"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"I-play"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"I-pause"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-tr/strings.xml b/v7/mediarouter/res/values-tr/strings.xml
index 05344ff..dad9c60 100644
--- a/v7/mediarouter/res/values-tr/strings.xml
+++ b/v7/mediarouter/res/values-tr/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Sistem"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Cihazlar"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Yayınla"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Cihaza bağlanın"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Cihaz arayın…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Bağlantıyı kes"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Yayını durdur"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Yayınla"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Cihaza bağlanın"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Cihaz arayın…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Bağlantıyı kes"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Yayını durdur"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Rota ayarları"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Oynat"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Duraklat"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Oynat"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Duraklat"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-uk/strings.xml b/v7/mediarouter/res/values-uk/strings.xml
index b445b9c..9daaf87 100644
--- a/v7/mediarouter/res/values-uk/strings.xml
+++ b/v7/mediarouter/res/values-uk/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Система"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Пристрої"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Транслювати"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Під’єднатися до пристрою"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Пошук пристроїв…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Від’єднатися"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Зупинити трансляцію"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Транслювати"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Під’єднатися до пристрою"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Пошук пристроїв…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Від’єднатися"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Зупинити трансляцію"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Налаштування маршруту"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Відтворити"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Призупинити"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Відтворити"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Призупинити"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-ur-rPK/strings.xml b/v7/mediarouter/res/values-ur-rPK/strings.xml
index e6ce4d6..fd2cbb7 100644
--- a/v7/mediarouter/res/values-ur-rPK/strings.xml
+++ b/v7/mediarouter/res/values-ur-rPK/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"سسٹم"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"آلات"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"کاسٹ کریں"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"آلہ سے مربوط ہوں"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"آلات تلاش کر رہا ہے…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"غیر مربوط کریں"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"کاسٹ کرنا بند کریں"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"کاسٹ کریں"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"آلہ سے مربوط ہوں"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"آلات تلاش کر رہا ہے…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"غیر مربوط کریں"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"کاسٹ کرنا بند کریں"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"روٹ کی ترتیبات"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"چلائیں"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"موقوف کریں"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"چلائیں"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"موقوف کریں"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-uz-rUZ/strings.xml b/v7/mediarouter/res/values-uz-rUZ/strings.xml
index d2829ee..6c364d5 100644
--- a/v7/mediarouter/res/values-uz-rUZ/strings.xml
+++ b/v7/mediarouter/res/values-uz-rUZ/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Tizim"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Qurilmalar"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Translatsiya qilish"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Qurilmaga ulanish"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Qurilmalar izlanmoqda…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Uzish"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Translatsiyani to‘xtatish"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Translatsiya qilish"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Qurilmaga ulanish"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Qurilmalar izlanmoqda…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Uzish"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Translatsiyani to‘xtatish"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Yo‘naltirish sozlamalari"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Ijro qilish"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"To‘xtatib turish"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Ijro qilish"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"To‘xtatib turish"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-vi/strings.xml b/v7/mediarouter/res/values-vi/strings.xml
index 01ec106..0a53da0 100644
--- a/v7/mediarouter/res/values-vi/strings.xml
+++ b/v7/mediarouter/res/values-vi/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Hệ thống"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Thiết bị"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Truyền"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Kết nối với thiết bị"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Đang tìm kiếm thiết bị…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Ngắt kết nối"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Ngừng truyền"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Truyền"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Kết nối với thiết bị"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Đang tìm kiếm thiết bị…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Ngắt kết nối"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Ngừng truyền"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Cài đặt tuyến đường"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Phát"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Tạm dừng"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Phát"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Tạm dừng"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-zh-rCN/strings.xml b/v7/mediarouter/res/values-zh-rCN/strings.xml
index 070f1de..e9b04d7 100644
--- a/v7/mediarouter/res/values-zh-rCN/strings.xml
+++ b/v7/mediarouter/res/values-zh-rCN/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"系统"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"设备"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"投射"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"连接到设备"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"正在搜索设备…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"断开连接"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"停止投射"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"投射"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"连接到设备"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"正在搜索设备…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"断开连接"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"停止投射"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"路由设置"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"播放"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"暂停"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"播放"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"暂停"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-zh-rHK/strings.xml b/v7/mediarouter/res/values-zh-rHK/strings.xml
index a73d636..66d2f55 100644
--- a/v7/mediarouter/res/values-zh-rHK/strings.xml
+++ b/v7/mediarouter/res/values-zh-rHK/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"系統"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"裝置"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"投放"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"連線至裝置"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"正在搜尋裝置…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"中斷連線"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"停止投放"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"投放"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"連線至裝置"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"正在搜尋裝置…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"中斷連線"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"停止投放"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"路由設定"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"播放"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"暫停"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"播放"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"暫停"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-zh-rTW/strings.xml b/v7/mediarouter/res/values-zh-rTW/strings.xml
index cb07c25..a6fa252 100644
--- a/v7/mediarouter/res/values-zh-rTW/strings.xml
+++ b/v7/mediarouter/res/values-zh-rTW/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"系統"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"裝置"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"投放"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"連線至裝置"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"正在搜尋裝置..."</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"中斷連線"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"停止投放"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"投放"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"連線至裝置"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"正在搜尋裝置..."</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"中斷連線"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"停止投放"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"路由設定"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"播放"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"暫停"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"播放"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"暫停"</string>
 </resources>
diff --git a/v7/mediarouter/res/values-zu/strings.xml b/v7/mediarouter/res/values-zu/strings.xml
index 24f0a37..78f415d 100644
--- a/v7/mediarouter/res/values-zu/strings.xml
+++ b/v7/mediarouter/res/values-zu/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="mr_system_route_name" msgid="5441529851481176817">"Isistimu"</string>
     <string name="mr_user_route_category_name" msgid="7498112907524977311">"Amadivayisi"</string>
-    <string name="mr_media_route_button_content_description" msgid="8327680881775995150">"Abalingisi"</string>
-    <string name="mr_media_route_chooser_title" msgid="7106830097177242655">"Xhumeka kudivayisi"</string>
-    <string name="mr_media_route_chooser_searching" msgid="7553005460920830010">"Iseshela amadivayisi…"</string>
-    <string name="mr_media_route_controller_disconnect" msgid="109793632378378069">"Nqamula"</string>
-    <string name="mr_media_route_controller_stop" msgid="5398645111664294430">"Misa ukusakaza"</string>
+    <string name="mr_button_content_description" msgid="8327680881775995150">"Abalingisi"</string>
+    <string name="mr_chooser_title" msgid="7106830097177242655">"Xhumeka kudivayisi"</string>
+    <string name="mr_chooser_searching" msgid="7553005460920830010">"Iseshela amadivayisi…"</string>
+    <string name="mr_controller_disconnect" msgid="109793632378378069">"Nqamula"</string>
+    <string name="mr_controller_stop" msgid="5398645111664294430">"Misa ukusakaza"</string>
     <string name="mr_media_route_controller_settings_description" msgid="379358765881274425">"Izilungiselelo zomzila"</string>
-    <string name="mr_media_route_controller_play" msgid="5214423499524760404">"Dlala"</string>
-    <string name="mr_media_route_controller_pause" msgid="8315773974194466049">"Misa isikhashana"</string>
+    <string name="mr_controller_play" msgid="5214423499524760404">"Dlala"</string>
+    <string name="mr_controller_pause" msgid="8315773974194466049">"Misa isikhashana"</string>
 </resources>
diff --git a/v7/mediarouter/res/values/attrs.xml b/v7/mediarouter/res/values/attrs.xml
index fe01948..3a5f333 100644
--- a/v7/mediarouter/res/values/attrs.xml
+++ b/v7/mediarouter/res/values/attrs.xml
@@ -38,6 +38,7 @@
     <attr name="mediaRouteDefaultIconDrawable" format="reference" />
     <attr name="mediaRouteSpeakerIconDrawable" format="reference" />
     <attr name="mediaRouteSpeakerGroupIconDrawable" format="reference" />
+    <attr name="mediaRouteBluetoothIconDrawable" format="reference" />
     <attr name="mediaRouteChooserPrimaryTextStyle" format="reference" />
     <attr name="mediaRouteChooserSecondaryTextStyle" format="reference" />
     <attr name="mediaRouteControllerTitleTextStyle" format="reference" />
diff --git a/v7/mediarouter/res/values/dimens.xml b/v7/mediarouter/res/values/dimens.xml
index d253f4c..4fb8218 100644
--- a/v7/mediarouter/res/values/dimens.xml
+++ b/v7/mediarouter/res/values/dimens.xml
@@ -15,6 +15,7 @@
 -->
 
 <resources>
+    <dimen name="mr_dialog_content_width_portrait">288dp</dimen>
+    <dimen name="mr_dialog_content_width_landscape">356dp</dimen>
     <dimen name="mr_media_route_controller_art_max_height">320dp</dimen>
-    <dimen name="mr_list_item_margin">24dp</dimen>
 </resources>
diff --git a/v7/mediarouter/res/values/strings.xml b/v7/mediarouter/res/values/strings.xml
index 9fc2f2e..b989ad6 100644
--- a/v7/mediarouter/res/values/strings.xml
+++ b/v7/mediarouter/res/values/strings.xml
@@ -23,35 +23,41 @@
 
     <!-- Content description of a MediaRouteButton for accessibility support.
         Cast is the standard android verb for sending content to a remote device. [CHAR LIMIT=50] -->
-    <string name="mr_media_route_button_content_description">Cast</string>
+    <string name="mr_button_content_description">Cast</string>
 
     <!-- Title of the media route chooser dialog. [CHAR LIMIT=30] -->
-    <string name="mr_media_route_chooser_title">Cast to</string>
+    <string name="mr_chooser_title">Cast to</string>
 
     <!-- Placeholder text to show when no devices have been found. [CHAR LIMIT=50] -->
-    <string name="mr_media_route_chooser_searching">Finding devices</string>
+    <string name="mr_chooser_searching">Finding devices</string>
 
     <!-- Button to disconnect from a media route.  [CHAR LIMIT=30] -->
-    <string name="mr_media_route_controller_disconnect">Disconnect</string>
+    <string name="mr_controller_disconnect">Disconnect</string>
 
-    <!-- Button to stop playback and disconnect from a media route.  [CHAR LIMIT=30] -->
-    <string name="mr_media_route_controller_stop">Stop casting</string>
+    <!-- Button to stop playback and disconnect from a media route. [CHAR LIMIT=30] -->
+    <string name="mr_controller_stop">Stop casting</string>
 
-    <!-- Description for a button that closes the controller dialog -->
-    <string name="mr_media_route_controller_close_description">Close the controller dialog</string>
+    <!-- Accessibility description for the close button that closes the controller dialog. [CHAR LIMIT=NONE] -->
+    <string name="mr_controller_close_description">Close</string>
 
-    <!-- Accessibility description for the play button -->
-    <string name="mr_media_route_controller_play">Play</string>
+    <!-- Accessibility description for the play button that starts playback. [CHAR LIMIT=NONE] -->
+    <string name="mr_controller_play">Play</string>
 
-    <!-- Accessibility description for the pause button -->
-    <string name="mr_media_route_controller_pause">Pause</string>
+    <!-- Accessibility description for the pause button that pauses playback. [CHAR LIMIT=NONE] -->
+    <string name="mr_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 group expand button that shows group members of a selected route group. [CHAR LIMIT=NONE] -->
+    <string name="mr_controller_expand_group">Group expand</string>
 
-    <!-- Accessibility description for the expand group button -->
-    <string name="mr_media_route_controller_expand_group">Expand group</string>
+    <!-- Accessibility description for the group collapse button that hides group members of a selected group. [CHAR LIMIT=NONE] -->
+    <string name="mr_controller_collapse_group">Group collapse</string>
+
+    <!-- Placeholder text to show when no media have been selected on the connected route. [CHAR LIMIT=50] -->
+    <string name="mr_controller_no_media_selected">No media selected</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>
+    <string name="mr_controller_no_info_available">No info available</string>
+
+    <!-- Placeholder text indicating that the user is currently casting screen. [CHAR LIMIT=50] -->
+    <string name="mr_controller_casting_screen">Casting screen</string>
 </resources>
diff --git a/v7/mediarouter/res/values/styles.xml b/v7/mediarouter/res/values/styles.xml
index cebe09a..e02c9e2 100644
--- a/v7/mediarouter/res/values/styles.xml
+++ b/v7/mediarouter/res/values/styles.xml
@@ -17,13 +17,13 @@
 <resources>
     <style name="Widget.MediaRouter.MediaRouteButton"
             parent="Widget.AppCompat.ActionButton">
-        <item name="android:contentDescription">@string/mr_media_route_button_content_description</item>
+        <item name="android:contentDescription">@string/mr_button_content_description</item>
         <item name="externalRouteEnabledDrawable">@drawable/mr_ic_media_route_mono_dark</item>
     </style>
 
     <style name="Widget.MediaRouter.Light.MediaRouteButton"
             parent="Widget.AppCompat.Light.ActionButton">
-        <item name="android:contentDescription">@string/mr_media_route_button_content_description</item>
+        <item name="android:contentDescription">@string/mr_button_content_description</item>
         <item name="externalRouteEnabledDrawable">@drawable/mr_ic_media_route_mono_light</item>
     </style>
 
diff --git a/v7/mediarouter/res/values/themes.xml b/v7/mediarouter/res/values/themes.xml
index 490e04e..da21998 100644
--- a/v7/mediarouter/res/values/themes.xml
+++ b/v7/mediarouter/res/values/themes.xml
@@ -31,6 +31,7 @@
         <item name="mediaRouteDefaultIconDrawable">@drawable/ic_tv_dark</item>
         <item name="mediaRouteSpeakerIconDrawable">@drawable/ic_speaker_dark</item>
         <item name="mediaRouteSpeakerGroupIconDrawable">@drawable/ic_speaker_group_dark</item>
+        <item name="mediaRouteBluetoothIconDrawable">@drawable/ic_bluetooth_white</item>
         <item name="mediaRouteChooserPrimaryTextStyle">@style/Widget.MediaRouter.ChooserText.Primary.Dark</item>
         <item name="mediaRouteChooserSecondaryTextStyle">@style/Widget.MediaRouter.ChooserText.Secondary.Dark</item>
         <item name="mediaRouteControllerTitleTextStyle">@style/Widget.MediaRouter.ControllerText.Title.Dark</item>
@@ -54,6 +55,7 @@
         <item name="mediaRouteDefaultIconDrawable">@drawable/ic_tv_light</item>
         <item name="mediaRouteSpeakerIconDrawable">@drawable/ic_speaker_light</item>
         <item name="mediaRouteSpeakerGroupIconDrawable">@drawable/ic_speaker_group_light</item>
+        <item name="mediaRouteBluetoothIconDrawable">@drawable/ic_bluetooth_grey</item>
         <item name="mediaRouteChooserPrimaryTextStyle">@style/Widget.MediaRouter.ChooserText.Primary.Light</item>
         <item name="mediaRouteChooserSecondaryTextStyle">@style/Widget.MediaRouter.ChooserText.Secondary.Light</item>
         <item name="mediaRouteControllerTitleTextStyle">@style/Widget.MediaRouter.ControllerText.Title.Light</item>
diff --git a/v7/mediarouter/src/android/support/v7/app/MediaRouteChooserDialog.java b/v7/mediarouter/src/android/support/v7/app/MediaRouteChooserDialog.java
index 8b5d6fc..49f4504 100644
--- a/v7/mediarouter/src/android/support/v7/app/MediaRouteChooserDialog.java
+++ b/v7/mediarouter/src/android/support/v7/app/MediaRouteChooserDialog.java
@@ -22,6 +22,8 @@
 import android.app.Dialog;
 import android.content.Context;
 import android.content.SharedPreferences;
+import android.content.res.Configuration;
+import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
@@ -65,6 +67,9 @@
 public class MediaRouteChooserDialog extends Dialog {
     private static final String TAG = "MediaRouteChooserDialog";
 
+    // Should match to SystemMediaRouteProvider.PACKAGE_NAME.
+    static final String SYSTEM_MEDIA_ROUTE_PROVIDER_PACKAGE_NAME = "android";
+
     private final MediaRouter mRouter;
     private final MediaRouterCallback mCallback;
 
@@ -74,6 +79,10 @@
     private ListView mListView;
     private boolean mAttachedToWindow;
 
+    private int mOrientation;
+    private int mDialogWidthPortrait;
+    private int mDialogWidthLandscape;
+
     public MediaRouteChooserDialog(Context context) {
         this(context, 0);
     }
@@ -155,23 +164,49 @@
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
-        setContentView(R.layout.mr_media_route_chooser_dialog);
-        setTitle(R.string.mr_media_route_chooser_title);
+        setContentView(R.layout.mr_chooser_dialog);
+        setTitle(R.string.mr_chooser_title);
+        View decorView = getWindow().getDecorView();
+        int dialogHorizontalPadding = decorView.getPaddingLeft() + decorView.getPaddingRight();
+        Resources res = getContext().getResources();
+        mDialogWidthPortrait = res.getDimensionPixelSize(
+                R.dimen.mr_dialog_content_width_portrait) + dialogHorizontalPadding;
+        mDialogWidthLandscape = res.getDimensionPixelSize(
+                R.dimen.mr_dialog_content_width_landscape) + dialogHorizontalPadding;
 
-        mRoutes = new ArrayList<MediaRouter.RouteInfo>();
+        mRoutes = new ArrayList<>();
         mAdapter = new RouteAdapter(getContext(), mRoutes);
-        mListView = (ListView)findViewById(R.id.media_route_list);
+        mListView = (ListView)findViewById(R.id.mr_chooser_list);
         mListView.setAdapter(mAdapter);
         mListView.setOnItemClickListener(mAdapter);
         mListView.setEmptyView(findViewById(android.R.id.empty));
     }
 
+    /**
+     * Called by {@link MediaRouteChooserDialogFragment} when the device configuration is changed.
+     */
+    void onConfigurationChanged(Configuration newConfig) {
+        onOrientationChanged(newConfig.orientation);
+    }
+
+    private void onOrientationChanged(int orientation) {
+        if (!mAttachedToWindow || mOrientation == orientation) {
+            return;
+        }
+        mOrientation = orientation;
+        getWindow().setLayout(
+                mOrientation == Configuration.ORIENTATION_PORTRAIT
+                        ? mDialogWidthPortrait : mDialogWidthLandscape,
+                ViewGroup.LayoutParams.WRAP_CONTENT);
+    }
+
     @Override
     public void onAttachedToWindow() {
         super.onAttachedToWindow();
 
         mAttachedToWindow = true;
         mRouter.addCallback(mSelector, mCallback, MediaRouter.CALLBACK_FLAG_PERFORM_ACTIVE_SCAN);
+        onOrientationChanged(getContext().getResources().getConfiguration().orientation);
         refreshRoutes();
     }
 
@@ -203,6 +238,7 @@
         private final Drawable mDefaultIcon;
         private final Drawable mSpeakerIcon;
         private final Drawable mSpeakerGroupIcon;
+        private final Drawable mBluetoothIcon;
 
         public RouteAdapter(Context context, List<MediaRouter.RouteInfo> routes) {
             super(context, 0, routes);
@@ -210,10 +246,12 @@
             TypedArray styledAttributes = getContext().obtainStyledAttributes(new int[] {
                     R.attr.mediaRouteDefaultIconDrawable,
                     R.attr.mediaRouteSpeakerIconDrawable,
-                    R.attr.mediaRouteSpeakerGroupIconDrawable });
+                    R.attr.mediaRouteSpeakerGroupIconDrawable,
+                    R.attr.mediaRouteBluetoothIconDrawable });
             mDefaultIcon = styledAttributes.getDrawable(0);
             mSpeakerIcon = styledAttributes.getDrawable(1);
             mSpeakerGroupIcon = styledAttributes.getDrawable(2);
+            mBluetoothIcon = styledAttributes.getDrawable(3);
             styledAttributes.recycle();
         }
 
@@ -231,12 +269,12 @@
         public View getView(int position, View convertView, ViewGroup parent) {
             View view = convertView;
             if (view == null) {
-                view = mInflater.inflate(R.layout.mr_media_route_list_item, parent, false);
+                view = mInflater.inflate(R.layout.mr_chooser_list_item, parent, false);
             }
 
             MediaRouter.RouteInfo route = getItem(position);
-            TextView text1 = (TextView) view.findViewById(android.R.id.text1);
-            TextView text2 = (TextView) view.findViewById(android.R.id.text2);
+            TextView text1 = (TextView) view.findViewById(R.id.mr_chooser_route_name);
+            TextView text2 = (TextView) view.findViewById(R.id.mr_chooser_route_desc);
             text1.setText(route.getName());
             String description = route.getDescription();
             boolean isConnectedOrConnecting =
@@ -253,7 +291,7 @@
             }
             view.setEnabled(route.isEnabled());
 
-            ImageView iconView = (ImageView) view.findViewById(R.id.routeIcon);
+            ImageView iconView = (ImageView) view.findViewById(R.id.mr_chooser_route_icon);
             if (iconView != null) {
                 iconView.setImageDrawable(getIconDrawable(route));
             }
@@ -292,10 +330,19 @@
                 // Only speakers can be grouped for now.
                 return mSpeakerGroupIcon;
             }
+            if (isSystemLiveAudioOnlyRoute(route)) {
+                return mBluetoothIcon;
+            }
             if (route.supportsControlCategory(MediaControlIntent.CATEGORY_LIVE_AUDIO)
                     && !route.supportsControlCategory(MediaControlIntent.CATEGORY_LIVE_VIDEO)) {
                 return mSpeakerIcon;
             }
+            // A workaround to get the speaker icon for known audio devices.
+            // TODO: Remove once the new setIconUri API is fully launched.
+            if (TextUtils.equals(route.getProvider().getPackageName(), "com.sonos.acr")
+                    || route.getDescription().toLowerCase().contains("audio") ) {
+                return mSpeakerIcon;
+            }
             return mDefaultIcon;
         }
     }
@@ -331,9 +378,6 @@
         private static final float MIN_USAGE_SCORE = 0.1f;
         private static final float USAGE_SCORE_DECAY_FACTOR = 0.95f;
 
-        // Should match to SystemMediaRouteProvider.PACKAGE_NAME.
-        static final String SYSTEM_MEDIA_ROUTE_PROVIDER_PACKAGE_NAME = "android";
-
         public static final RouteComparator sInstance = new RouteComparator();
         public static final HashMap<String, Float> sRouteUsageScoreMap = new HashMap();
 
@@ -360,17 +404,6 @@
             return lhs.getName().compareTo(rhs.getName());
         }
 
-        private boolean isSystemLiveAudioOnlyRoute(MediaRouter.RouteInfo route) {
-            return isSystemMediaRouteProvider(route)
-                    && route.supportsControlCategory(MediaControlIntent.CATEGORY_LIVE_AUDIO)
-                    && !route.supportsControlCategory(MediaControlIntent.CATEGORY_LIVE_VIDEO);
-        }
-
-        private boolean isSystemMediaRouteProvider(MediaRouter.RouteInfo route) {
-            return TextUtils.equals(route.getProviderInstance().getMetadata().getPackageName(),
-                    SYSTEM_MEDIA_ROUTE_PROVIDER_PACKAGE_NAME);
-        }
-
         private static void loadRouteUsageScores(
                 Context context, List<MediaRouter.RouteInfo> routes) {
             sRouteUsageScoreMap.clear();
@@ -415,4 +448,17 @@
             prefEditor.commit();
         }
     }
+
+    // Used to determine whether the route represents a bluetooth device.
+    // TODO: Find a better way to precisely detect bluetooth routes.
+    private static boolean isSystemLiveAudioOnlyRoute(MediaRouter.RouteInfo route) {
+        return isSystemMediaRouteProvider(route)
+                && route.supportsControlCategory(MediaControlIntent.CATEGORY_LIVE_AUDIO)
+                && !route.supportsControlCategory(MediaControlIntent.CATEGORY_LIVE_VIDEO);
+    }
+
+    private static boolean isSystemMediaRouteProvider(MediaRouter.RouteInfo route) {
+        return TextUtils.equals(route.getProviderInstance().getMetadata().getPackageName(),
+                SYSTEM_MEDIA_ROUTE_PROVIDER_PACKAGE_NAME);
+    }
 }
diff --git a/v7/mediarouter/src/android/support/v7/app/MediaRouteChooserDialogFragment.java b/v7/mediarouter/src/android/support/v7/app/MediaRouteChooserDialogFragment.java
index 3b5239a..4d94c58 100644
--- a/v7/mediarouter/src/android/support/v7/app/MediaRouteChooserDialogFragment.java
+++ b/v7/mediarouter/src/android/support/v7/app/MediaRouteChooserDialogFragment.java
@@ -18,6 +18,7 @@
 
 import android.app.Dialog;
 import android.content.Context;
+import android.content.res.Configuration;
 import android.os.Bundle;
 import android.support.v4.app.DialogFragment;
 import android.support.v7.media.MediaRouteSelector;
@@ -32,6 +33,7 @@
 public class MediaRouteChooserDialogFragment extends DialogFragment {
     private final String ARGUMENT_SELECTOR = "selector";
 
+    private MediaRouteChooserDialog mDialog;
     private MediaRouteSelector mSelector;
 
     /**
@@ -108,8 +110,16 @@
 
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
-        MediaRouteChooserDialog dialog = onCreateChooserDialog(getActivity(), savedInstanceState);
-        dialog.setRouteSelector(getRouteSelector());
-        return dialog;
+        mDialog = onCreateChooserDialog(getActivity(), savedInstanceState);
+        mDialog.setRouteSelector(getRouteSelector());
+        return mDialog;
+    }
+
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+        if (mDialog != null) {
+            mDialog.onConfigurationChanged(newConfig);
+        }
     }
 }
diff --git a/v7/mediarouter/src/android/support/v7/app/MediaRouteControllerDialog.java b/v7/mediarouter/src/android/support/v7/app/MediaRouteControllerDialog.java
index 5fc84588..65f8858 100644
--- a/v7/mediarouter/src/android/support/v7/app/MediaRouteControllerDialog.java
+++ b/v7/mediarouter/src/android/support/v7/app/MediaRouteControllerDialog.java
@@ -20,13 +20,16 @@
 
 import android.content.ContentResolver;
 import android.content.Context;
-import android.content.IntentSender;
+import android.content.res.Configuration;
+import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
+import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.AsyncTask;
+import android.os.Build;
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.support.v4.media.MediaDescriptionCompat;
@@ -37,8 +40,10 @@
 import android.support.v7.graphics.Palette;
 import android.support.v7.media.MediaRouteSelector;
 import android.support.v7.media.MediaRouter;
+import android.support.v7.media.SeekBarJellybean;
 import android.support.v7.mediarouter.R;
 import android.text.TextUtils;
+import android.util.DisplayMetrics;
 import android.util.Log;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
@@ -51,6 +56,7 @@
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.ListView;
+import android.widget.RelativeLayout;
 import android.widget.SeekBar;
 import android.widget.TextView;
 
@@ -84,8 +90,12 @@
 
     private boolean mCreated;
     private boolean mAttachedToWindow;
+    private int mOrientation;
+    private int mDialogWidthPortrait;
+    private int mDialogWidthLandscape;
+    private int mDialogPaddingVertical;
 
-    private View mControlView;
+    private View mCustomControlView;
 
     private Button mDisconnectButton;
     private Button mStopCastingButton;
@@ -93,13 +103,18 @@
     private ImageButton mCloseButton;
     private ImageButton mGroupExpandCollapseButton;
 
+    private FrameLayout mCustomControlLayout;
     private ImageView mArtView;
     private TextView mTitleView;
     private TextView mSubtitleView;
-    private TextView mRouteNameView;
+    private TextView mRouteNameTextView;
 
     private boolean mVolumeControlEnabled = true;
-    private LinearLayout mVolumeLayout;
+    private LinearLayout mControlLayout;
+    private RelativeLayout mPlaybackControl;
+    private LinearLayout mVolumeControl;
+    private View mDividerView;
+
     private ListView mVolumeGroupList;
     private SeekBar mVolumeSlider;
     private boolean mVolumeSliderTouched;
@@ -158,7 +173,7 @@
      * @return The media control view, or null if none.
      */
     public View getMediaControlView() {
-        return mControlView;
+        return mCustomControlView;
     }
 
     /**
@@ -172,7 +187,7 @@
         if (mVolumeControlEnabled != enable) {
             mVolumeControlEnabled = enable;
             if (mCreated) {
-                updateVolume();
+                updateVolumeControl();
             }
         }
     }
@@ -231,62 +246,48 @@
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
-        setContentView(R.layout.mr_media_route_controller_material_dialog_b);
+        setContentView(R.layout.mr_controller_material_dialog_b);
+        View decorView = getWindow().getDecorView();
+        int dialogHorizontalPadding = decorView.getPaddingLeft() + decorView.getPaddingRight();
+        Resources res = getContext().getResources();
+        mDialogWidthPortrait = res.getDimensionPixelSize(
+                R.dimen.mr_dialog_content_width_portrait) + dialogHorizontalPadding;
+        mDialogWidthLandscape = res.getDimensionPixelSize(
+                R.dimen.mr_dialog_content_width_landscape) + dialogHorizontalPadding;
+        mDialogPaddingVertical = decorView.getPaddingTop() + decorView.getPaddingBottom();
 
         ClickListener listener = new ClickListener();
 
-        mDisconnectButton = (Button) findViewById(R.id.disconnect);
+        mDisconnectButton = (Button) findViewById(R.id.mr_button_disconnect);
         mDisconnectButton.setOnClickListener(listener);
 
-        mStopCastingButton = (Button) findViewById(R.id.stop);
+        mStopCastingButton = (Button) findViewById(R.id.mr_button_stop);
         mStopCastingButton.setOnClickListener(listener);
 
-        mCloseButton = (ImageButton) findViewById(R.id.close);
+        mRouteNameTextView = (TextView) findViewById(R.id.mr_name);
+        mCloseButton = (ImageButton) findViewById(R.id.mr_close);
         mCloseButton.setOnClickListener(listener);
+        mCustomControlLayout = (FrameLayout) findViewById(R.id.mr_custom_control);
+        mArtView = (ImageView) findViewById(R.id.mr_art);
 
-        mArtView = (ImageView) findViewById(R.id.art);
-        mTitleView = (TextView) findViewById(R.id.title);
-        mSubtitleView = (TextView) findViewById(R.id.subtitle);
-        mPlayPauseButton = (ImageButton) findViewById(R.id.play_pause);
+        mControlLayout = (LinearLayout) findViewById(R.id.mr_control);
+        mDividerView = findViewById(R.id.mr_control_divider);
+
+        mPlaybackControl = (RelativeLayout) findViewById(R.id.mr_playback_control);
+        mTitleView = (TextView) findViewById(R.id.mr_control_title);
+        mSubtitleView = (TextView) findViewById(R.id.mr_control_subtitle);
+        mPlayPauseButton = (ImageButton) findViewById(R.id.mr_control_play_pause);
         mPlayPauseButton.setOnClickListener(listener);
-        mRouteNameView = (TextView) findViewById(R.id.route_name);
-        mVolumeLayout = (LinearLayout)findViewById(R.id.media_route_volume_layout);
-        mVolumeGroupList = (ListView)findViewById(R.id.media_route_volume_group_list);
 
-        TypedArray styledAttributes = getContext().obtainStyledAttributes(new int[] {
-                R.attr.mediaRouteExpandGroupDrawable,
-                R.attr.mediaRouteCollapseGroupDrawable });
-        final Drawable expandGroupDrawable = styledAttributes.getDrawable(0);
-        final Drawable collapseGroupDrawable = styledAttributes.getDrawable(1);
-        styledAttributes.recycle();
-
-        mGroupExpandCollapseButton = (ImageButton)findViewById(
-                R.id.media_route_group_expand_collapse);
-        mGroupExpandCollapseButton.setOnClickListener(new View.OnClickListener() {
-            private boolean mIsExpanded;
-
-            @Override
-            public void onClick(View v) {
-                mIsExpanded = !mIsExpanded;
-                if (mIsExpanded) {
-                    mGroupExpandCollapseButton.setImageDrawable(collapseGroupDrawable);
-                    mVolumeGroupList.setVisibility(View.VISIBLE);
-                    mVolumeGroupList.setAdapter(
-                            new VolumeGroupAdapter(getContext(), getGroup().getRoutes()));
-                } else {
-                    mGroupExpandCollapseButton.setImageDrawable(expandGroupDrawable);
-                    mVolumeGroupList.setVisibility(View.GONE);
-                }
-            }
-        });
-        mVolumeSlider = (SeekBar)findViewById(R.id.media_route_volume_slider);
+        mVolumeControl = (LinearLayout) findViewById(R.id.mr_volume_control);
+        mVolumeSlider = (SeekBar) findViewById(R.id.mr_volume_slider);
         mVolumeSlider.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
             private final Runnable mStopTrackingTouch = new Runnable() {
                 @Override
                 public void run() {
                     if (mVolumeSliderTouched) {
                         mVolumeSliderTouched = false;
-                        updateVolume();
+                        updateVolumeControl();
                     }
                 }
             };
@@ -316,16 +317,62 @@
             }
         });
 
-        mCreated = true;
-        if (update()) {
-            mControlView = onCreateMediaControlView(savedInstanceState);
-            FrameLayout controlFrame =
-                    (FrameLayout)findViewById(R.id.media_route_control_frame);
-            if (mControlView != null) {
-                controlFrame.findViewById(R.id.default_control_frame).setVisibility(View.GONE);
-                controlFrame.addView(mControlView);
+        TypedArray styledAttributes = getContext().obtainStyledAttributes(new int[] {
+                R.attr.mediaRouteExpandGroupDrawable,
+                R.attr.mediaRouteCollapseGroupDrawable
+        });
+        final Drawable expandGroupDrawable = styledAttributes.getDrawable(0);
+        final Drawable collapseGroupDrawable = styledAttributes.getDrawable(1);
+        styledAttributes.recycle();
+
+        mVolumeGroupList = (ListView)findViewById(R.id.mr_volume_group_list);
+        mGroupExpandCollapseButton = (ImageButton) findViewById(R.id.mr_group_expand_collapse);
+        mGroupExpandCollapseButton.setOnClickListener(new View.OnClickListener() {
+            private boolean mIsExpanded;
+
+            @Override
+            public void onClick(View v) {
+                mIsExpanded = !mIsExpanded;
+                if (mIsExpanded) {
+                    mGroupExpandCollapseButton.setImageDrawable(collapseGroupDrawable);
+                    mVolumeGroupList.setVisibility(View.VISIBLE);
+                    mVolumeGroupList.setAdapter(
+                            new VolumeGroupAdapter(getContext(), getGroup().getRoutes()));
+                } else {
+                    mGroupExpandCollapseButton.setImageDrawable(expandGroupDrawable);
+                    mVolumeGroupList.setVisibility(View.GONE);
+                }
             }
+        });
+
+        mCreated = true;
+        mCustomControlView = onCreateMediaControlView(savedInstanceState);
+        if (mCustomControlView != null) {
+            mCustomControlLayout.addView(mCustomControlView);
+            mCustomControlLayout.setVisibility(View.VISIBLE);
+            mArtView.setVisibility(View.GONE);
         }
+        update();
+    }
+
+    /**
+     * Called by {@link MediaRouteControllerDialogFragment} when the device configuration
+     * is changed.
+     */
+    void onConfigurationChanged(Configuration newConfig) {
+        onOrientationChanged(newConfig.orientation);
+    }
+
+    private void onOrientationChanged(int orientation) {
+        if (!mAttachedToWindow || mOrientation == orientation) {
+            return;
+        }
+        mOrientation = orientation;
+        getWindow().setLayout(
+                mOrientation == Configuration.ORIENTATION_LANDSCAPE
+                        ? mDialogWidthLandscape : mDialogWidthPortrait,
+                ViewGroup.LayoutParams.WRAP_CONTENT);
+        updateArtView();
     }
 
     @Override
@@ -336,6 +383,7 @@
         mRouter.addCallback(MediaRouteSelector.EMPTY, mCallback,
                 MediaRouter.CALLBACK_FLAG_UNFILTERED_EVENTS);
         setMediaSession(mRouter.getMediaSessionToken());
+        onOrientationChanged(getContext().getResources().getConfiguration().orientation);
     }
 
     @Override
@@ -365,39 +413,57 @@
         return super.onKeyUp(keyCode, event);
     }
 
-    private boolean update() {
+    private void update() {
         if (!mRoute.isSelected() || mRoute.isDefault()) {
             dismiss();
-            return false;
+            return;
         }
         if (!mCreated) {
-            return false;
+            return;
         }
 
-        updateVolume();
+        mRouteNameTextView.setText(mRoute.getName());
+        mDisconnectButton.setVisibility(mRoute.canDisconnect() ? View.VISIBLE : View.INVISIBLE);
 
-        mRouteNameView.setText(mRoute.getName());
-
-        if (mRoute.canDisconnect()) {
-            mDisconnectButton.setVisibility(View.VISIBLE);
-        } else {
-            mDisconnectButton.setVisibility(View.GONE);
-        }
-
-        if (mRoute.getSettingsIntent() != null) {
-            mCloseButton.setVisibility(View.VISIBLE);
-        } else {
-            mCloseButton.setVisibility(View.GONE);
-        }
-
-        if (mControlView == null) {
+        if (mCustomControlView == null) {
             if (mFetchArtTask != null) {
                 mFetchArtTask.cancel(true);
             }
-            mArtView.setVisibility(View.GONE);
             mFetchArtTask = new FetchArtTask();
             mFetchArtTask.execute();
+        }
+        updateVolumeControl();
+        updatePlaybackControl();
+    }
 
+    private void updateVolumeControl() {
+        if (!mVolumeSliderTouched) {
+            if (isVolumeControlAvailable()) {
+                mVolumeControl.setVisibility(View.VISIBLE);
+                mVolumeSlider.setMax(mRoute.getVolumeMax());
+                mVolumeSlider.setProgress(mRoute.getVolume());
+                if (USE_GROUP) {
+                    if (getGroup() == null) {
+                        mGroupExpandCollapseButton.setVisibility(View.GONE);
+                    } else {
+                        mGroupExpandCollapseButton.setVisibility(View.VISIBLE);
+                        VolumeGroupAdapter adapter =
+                                (VolumeGroupAdapter) mVolumeGroupList.getAdapter();
+                        if (adapter != null) {
+                            adapter.notifyDataSetChanged();
+                        }
+                    }
+                }
+            } else {
+                mVolumeControl.setVisibility(View.GONE);
+            }
+            adjustControlLayoutHeight();
+        }
+    }
+
+    private void updatePlaybackControl() {
+        if (mCustomControlView == null && (mDescription != null || mState != null)) {
+            mPlaybackControl.setVisibility(View.VISIBLE);
             CharSequence title = mDescription == null ? null : mDescription.getTitle();
             boolean hasTitle = !TextUtils.isEmpty(title);
 
@@ -405,7 +471,16 @@
             boolean hasSubtitle = !TextUtils.isEmpty(subtitle);
 
             if (!hasTitle && !hasSubtitle) {
-                mTitleView.setText(R.string.mr_media_route_controller_no_info_available);
+                if (mRoute.getPresentationDisplayId()
+                        != MediaRouter.RouteInfo.PRESENTATION_DISPLAY_ID_NONE) {
+                    // The user is currently casting screen.
+                    mTitleView.setText(R.string.mr_controller_casting_screen);
+                } else {
+                    mTitleView.setText((mState == null
+                            || mState.getState() == PlaybackStateCompat.STATE_NONE)
+                                    ? R.string.mr_controller_no_media_selected
+                                    : R.string.mr_controller_no_info_available);
+                }
                 mTitleView.setEnabled(false);
                 mTitleView.setVisibility(View.VISIBLE);
                 mSubtitleView.setVisibility(View.GONE);
@@ -422,43 +497,38 @@
                 boolean supportsPlay = (mState.getActions() & (PlaybackStateCompat.ACTION_PLAY
                         | PlaybackStateCompat.ACTION_PLAY_PAUSE)) != 0;
                 boolean supportsPause = (mState.getActions() & (PlaybackStateCompat.ACTION_PAUSE
-                                | PlaybackStateCompat.ACTION_PLAY_PAUSE)) != 0;
+                        | PlaybackStateCompat.ACTION_PLAY_PAUSE)) != 0;
                 if (isPlaying && supportsPause) {
                     mPlayPauseButton.setVisibility(View.VISIBLE);
                     mPlayPauseButton.setImageResource(MediaRouterThemeHelper.getThemeResource(
                             getContext(), R.attr.mediaRoutePauseDrawable));
                     mPlayPauseButton.setContentDescription(getContext().getResources()
-                            .getText(R.string.mr_media_route_controller_pause));
+                            .getText(R.string.mr_controller_pause));
                 } else if (!isPlaying && supportsPlay) {
                     mPlayPauseButton.setVisibility(View.VISIBLE);
                     mPlayPauseButton.setImageResource(MediaRouterThemeHelper.getThemeResource(
                             getContext(), R.attr.mediaRoutePlayDrawable));
                     mPlayPauseButton.setContentDescription(getContext().getResources()
-                            .getText(R.string.mr_media_route_controller_play));
+                            .getText(R.string.mr_controller_play));
                 } else {
                     mPlayPauseButton.setVisibility(View.GONE);
                 }
-            } else {
-                mPlayPauseButton.setVisibility(View.GONE);
             }
+        } else {
+            mPlaybackControl.setVisibility(View.GONE);
         }
-        return true;
+        adjustControlLayoutHeight();
     }
 
-    private void updateVolume() {
-        if (!mVolumeSliderTouched) {
-            if (isVolumeControlAvailable()) {
-                mVolumeLayout.setVisibility(View.VISIBLE);
-                mVolumeSlider.setMax(mRoute.getVolumeMax());
-                mVolumeSlider.setProgress(mRoute.getVolume());
-                if (USE_GROUP) {
-                    mGroupExpandCollapseButton.setVisibility(
-                            getGroup() != null ? View.VISIBLE : View.GONE);
-                }
-            } else {
-                mVolumeLayout.setVisibility(View.GONE);
-            }
-        }
+    private void adjustControlLayoutHeight() {
+        // TODO: Adjust the top and bottom padding of the control layout according to the display
+        // height.
+        mDividerView.setVisibility((mVolumeControl.getVisibility() == View.VISIBLE
+                && mPlaybackControl.getVisibility() == View.VISIBLE)
+                ? View.VISIBLE : View.GONE);
+        mControlLayout.setVisibility((mVolumeControl.getVisibility() == View.GONE
+                && mPlaybackControl.getVisibility() == View.GONE)
+                ? View.GONE : View.VISIBLE);
     }
 
     private boolean isVolumeControlAvailable() {
@@ -466,6 +536,51 @@
                 MediaRouter.RouteInfo.PLAYBACK_VOLUME_VARIABLE;
     }
 
+    private void updateArtView() {
+        if (!(mArtView.getDrawable() instanceof BitmapDrawable)) {
+            mArtView.setVisibility(View.GONE);
+            return;
+        }
+        Bitmap art = ((BitmapDrawable) mArtView.getDrawable()).getBitmap();
+        if (art == null) {
+            mArtView.setVisibility(View.GONE);
+            return;
+        }
+        int desiredArtHeight = getDesiredArtHeight(art.getWidth(), art.getHeight());
+        DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
+        int dialogWidth = displayMetrics.widthPixels < displayMetrics.heightPixels
+                ? mDialogWidthPortrait : mDialogWidthLandscape;
+        View decorView = getWindow().getDecorView();
+        decorView.measure(dialogWidth, View.MeasureSpec.UNSPECIFIED);
+        // Show art if and only if it fits in the screen.
+        if (mArtView.getVisibility() == View.GONE) {
+            if (decorView.getMeasuredHeight() + desiredArtHeight <= displayMetrics.heightPixels) {
+                mArtView.setVisibility(View.VISIBLE);
+                mArtView.setMaxHeight(desiredArtHeight);
+            }
+        } else {
+            if (decorView.getMeasuredHeight() - mArtView.getMeasuredHeight() + desiredArtHeight
+                    <= displayMetrics.heightPixels) {
+                mArtView.setMaxHeight(desiredArtHeight);
+            } else {
+                mArtView.setVisibility(View.GONE);
+            }
+        }
+    }
+
+    /**
+     * Returns desired art height to fit into controller dialog.
+     */
+    private int getDesiredArtHeight(int originalWidth, int originalHeight) {
+        int dialogWidth = getWindow().getAttributes().width - mDialogPaddingVertical;
+        if (originalWidth >= originalHeight) {
+            // For landscape art, fit width to dialog width.
+            return (int) ((float) dialogWidth * originalHeight / originalWidth + 0.5f);
+        }
+        // For portrait art, fit height to 16:9 ratio case's height.
+        return (int) ((float) dialogWidth * 9 / 16 + 0.5f);
+    }
+
     private final class MediaRouterCallback extends MediaRouter.Callback {
         @Override
         public void onRouteUnselected(MediaRouter router, MediaRouter.RouteInfo route) {
@@ -480,7 +595,7 @@
         @Override
         public void onRouteVolumeChanged(MediaRouter router, MediaRouter.RouteInfo route) {
             if (route == mRoute) {
-                updateVolume();
+                updateVolumeControl();
             }
         }
     }
@@ -511,14 +626,14 @@
         @Override
         public void onClick(View v) {
             int id = v.getId();
-            if (id == R.id.stop || id == R.id.disconnect) {
+            if (id == R.id.mr_button_stop || id == R.id.mr_button_disconnect) {
                 if (mRoute.isSelected()) {
-                    mRouter.unselect(id == R.id.stop ?
+                    mRouter.unselect(id == R.id.mr_button_stop ?
                             MediaRouter.UNSELECT_REASON_STOPPED :
                             MediaRouter.UNSELECT_REASON_DISCONNECTED);
                 }
                 dismiss();
-            } else if (id == R.id.play_pause) {
+            } else if (id == R.id.mr_control_play_pause) {
                 if (mMediaController != null && mState != null) {
                     if (mState.getState() == PlaybackStateCompat.STATE_PLAYING) {
                         mMediaController.getTransportControls().pause();
@@ -526,19 +641,20 @@
                         mMediaController.getTransportControls().play();
                     }
                 }
-            } else if (id == R.id.close) {
+            } else if (id == R.id.mr_close) {
                 dismiss();
             }
         }
     }
 
     private class VolumeGroupAdapter extends ArrayAdapter<MediaRouter.RouteInfo> {
+        final static float DISABLED_ALPHA = .3f;
+
         final OnSeekBarChangeListener mOnSeekBarChangeListener = new OnSeekBarChangeListener() {
             @Override
             public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                 if (fromUser) {
                     int position = (int) seekBar.getTag();
-                    // TODO: Verify
                     getGroup().getRouteAt(position).requestSetVolume(progress);
                 }
             }
@@ -563,24 +679,39 @@
             View v = convertView;
             if (v == null) {
                 v = LayoutInflater.from(getContext()).inflate(
-                        R.layout.mr_media_route_controller_volume_item, null);
+                        R.layout.mr_controller_volume_item, null);
             }
             MediaRouter.RouteInfo route = getItem(position);
             if (route != null) {
-                TextView textView = (TextView) v.findViewById(R.id.media_route_name);
-                textView.setText(route.getName());
+                boolean isEnabled = route.isEnabled();
 
-                SeekBar volumeSlider = (SeekBar) v.findViewById(R.id.media_route_volume_slider);
-                if (route.getVolumeHandling() == MediaRouter.RouteInfo.PLAYBACK_VOLUME_VARIABLE) {
-                    volumeSlider.setMax(route.getVolumeMax());
-                    volumeSlider.setProgress(route.getVolume());
-                    volumeSlider.setOnSeekBarChangeListener(mOnSeekBarChangeListener);
-                } else {
-                    volumeSlider.setMax(100);
-                    volumeSlider.setProgress(100);
-                    volumeSlider.setEnabled(false);
-                }
+                TextView routeName = (TextView) v.findViewById(R.id.mr_name);
+                routeName.setEnabled(isEnabled);
+                routeName.setText(route.getName());
+
+                SeekBar volumeSlider = (SeekBar) v.findViewById(R.id.mr_volume_slider);
+                volumeSlider.setEnabled(isEnabled);
                 volumeSlider.setTag(position);
+                if (isEnabled) {
+                    if (route.getVolumeHandling()
+                            == MediaRouter.RouteInfo.PLAYBACK_VOLUME_VARIABLE) {
+                        volumeSlider.setMax(route.getVolumeMax());
+                        volumeSlider.setProgress(route.getVolume());
+                        volumeSlider.setOnSeekBarChangeListener(mOnSeekBarChangeListener);
+                    } else {
+                        volumeSlider.setMax(100);
+                        volumeSlider.setProgress(100);
+                        volumeSlider.setEnabled(false);
+                    }
+                }
+                if (Build.VERSION.SDK_INT >= 16) {
+                    SeekBarJellybean.getThumb(volumeSlider).mutate().setAlpha(isEnabled ? 255 : 0);
+                    // TODO: Still see an artifact even though the thumb is transparent. Remove it.
+                }
+
+                ImageView volumeItemIcon =
+                        (ImageView) v.findViewById(R.id.mr_volume_item_icon);
+                volumeItemIcon.setAlpha(isEnabled ? 255 : (int) (255 * DISABLED_ALPHA));
             }
             return v;
         }
@@ -591,12 +722,12 @@
 
         @Override
         protected Bitmap doInBackground(Void... arg) {
-            Bitmap bitmap = null;
+            Bitmap art = null;
             if (mDescription == null) {
                 return null;
             }
             if (mDescription.getIconBitmap() != null) {
-                bitmap = mDescription.getIconBitmap();
+                art = mDescription.getIconBitmap();
             } else if (mDescription.getIconUri() != null) {
                 Uri iconUri = mDescription.getIconUri();
                 String scheme = iconUri.getScheme();
@@ -611,12 +742,14 @@
                     stream = new BufferedInputStream(
                             getContext().getContentResolver().openInputStream(iconUri));
 
-                    // Query bitmap size.
+                    // Query art size.
                     BitmapFactory.Options options = new BitmapFactory.Options();
                     options.inJustDecodeBounds = true;
                     BitmapFactory.decodeStream(stream, null, options);
-
-                    // Rewind the stream in order to restart bitmap decoding.
+                    if (options.outWidth == 0 || options.outHeight == 0) {
+                        return null;
+                    }
+                    // Rewind the stream in order to restart art decoding.
                     try {
                         stream.reset();
                     } catch (IOException e) {
@@ -625,27 +758,15 @@
                         stream = new BufferedInputStream(getContext().getContentResolver()
                                 .openInputStream(iconUri));
                     }
-
-                    // Caculate required size to decode the bitmap and possibly resize it.
+                    // Calculate required size to decode the art and possibly resize it.
                     options.inJustDecodeBounds = false;
-                    int reqWidth;
-                    int reqHeight;
-                    if (options.outWidth >= options.outHeight) {
-                        // For landscape image, fit width to dialog width.
-                        reqWidth = getWindow().getDecorView().getWidth();
-                        reqHeight = reqWidth * (options.outHeight / options.outWidth);
-                    } else {
-                        // For portrait image, fit height to 16:9 ratio case's height.
-                        reqHeight = getWindow().getDecorView().getWidth() * 9 / 16;
-                        reqWidth = reqHeight * (options.outWidth / options.outHeight);
-                    }
-                    int ratio = Math.max(
-                            options.outWidth / reqWidth, options.outHeight / reqHeight);
+                    int reqHeight = getDesiredArtHeight(options.outWidth, options.outHeight);
+                    int ratio = options.outHeight / reqHeight;
                     options.inSampleSize = Math.max(1, Integer.highestOneBit(ratio));
                     if (isCancelled()) {
                         return null;
                     }
-                    bitmap = BitmapFactory.decodeStream(stream, null, options);
+                    art = BitmapFactory.decodeStream(stream, null, options);
                 } catch (IOException e){
                     Log.w(TAG, "Unable to open content: " + iconUri, e);
                 } finally {
@@ -657,14 +778,13 @@
                     }
                 }
             }
-            if (bitmap != null) {
-                if (bitmap.getWidth() < bitmap.getHeight()) {
-                    // Portrait image requires background color.
-                    mBackgroundColor =
-                            new Palette.Builder(bitmap).generate().getDarkVibrantColor(0);
+            if (art != null) {
+                if (art.getWidth() < art.getHeight()) {
+                    // Portrait art requires background color.
+                    mBackgroundColor = new Palette.Builder(art).generate().getDarkVibrantColor(0);
                 }
             }
-            return bitmap;
+            return art;
         }
 
         @Override
@@ -673,20 +793,11 @@
         }
 
         @Override
-        protected void onPostExecute(Bitmap bitmap) {
+        protected void onPostExecute(Bitmap art) {
             mFetchArtTask = null;
-            mArtView.setImageBitmap(bitmap);
-            if (bitmap != null) {
-                mArtView.setVisibility(View.VISIBLE);
-                if (bitmap.getWidth() < bitmap.getHeight()) {
-                    mArtView.setMaxHeight(getWindow().getDecorView().getWidth() * 9 / 16);
-                    mArtView.setBackgroundColor(mBackgroundColor);
-                } else {
-                    mArtView.setMaxHeight(Integer.MAX_VALUE);
-                }
-            } else {
-                mArtView.setVisibility(View.GONE);
-            }
+            mArtView.setImageBitmap(art);
+            mArtView.setBackgroundColor(mBackgroundColor);
+            updateArtView();
         }
     }
 }
diff --git a/v7/mediarouter/src/android/support/v7/app/MediaRouteControllerDialogFragment.java b/v7/mediarouter/src/android/support/v7/app/MediaRouteControllerDialogFragment.java
index beb9832..8156492 100644
--- a/v7/mediarouter/src/android/support/v7/app/MediaRouteControllerDialogFragment.java
+++ b/v7/mediarouter/src/android/support/v7/app/MediaRouteControllerDialogFragment.java
@@ -18,6 +18,7 @@
 
 import android.app.Dialog;
 import android.content.Context;
+import android.content.res.Configuration;
 import android.os.Bundle;
 import android.support.v4.app.DialogFragment;
 
@@ -29,6 +30,7 @@
  * </p>
  */
 public class MediaRouteControllerDialogFragment extends DialogFragment {
+    private MediaRouteControllerDialog mDialog;
     /**
      * Creates a media route controller dialog fragment.
      * <p>
@@ -51,7 +53,15 @@
     }
 
     @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+        if (mDialog != null) {
+            mDialog.onConfigurationChanged(newConfig);
+        }
+    }
+
+    @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
-        return onCreateControllerDialog(getActivity(), savedInstanceState);
+        mDialog = onCreateControllerDialog(getActivity(), savedInstanceState);
+        return mDialog;
     }
 }
diff --git a/v7/mediarouter/src/android/support/v7/media/MediaRouteDescriptor.java b/v7/mediarouter/src/android/support/v7/media/MediaRouteDescriptor.java
index 88a684c..8e5ad25 100644
--- a/v7/mediarouter/src/android/support/v7/media/MediaRouteDescriptor.java
+++ b/v7/mediarouter/src/android/support/v7/media/MediaRouteDescriptor.java
@@ -38,7 +38,7 @@
  */
 public final class MediaRouteDescriptor {
     private static final String KEY_ID = "id";
-    private static final String KEY_CHILD_IDS = "childIds";
+    private static final String KEY_GROUP_MEMBER_IDS = "groupMemberIds";
     private static final String KEY_NAME = "name";
     private static final String KEY_DESCRIPTION = "status";
     private static final String KEY_ICON_URI = "iconUri";
@@ -77,16 +77,16 @@
     }
 
     /**
-     * Gets the child ids of the route.
+     * Gets the group member ids of the route.
      * <p>
-     * A route descriptor that has one or more child route ids represents a
-     * route group. A child route may belong to another group.
+     * A route descriptor that has one or more group member route ids
+     * represents a route group. A member route may belong to another group.
      * </p>
      * @hide
      * STOPSHIP: Unhide or remove.
      */
-    public List<String> getChildIds() {
-        return mBundle.getStringArrayList(KEY_CHILD_IDS);
+    public List<String> getGroupMemberIds() {
+        return mBundle.getStringArrayList(KEY_GROUP_MEMBER_IDS);
     }
 
     /**
@@ -234,7 +234,8 @@
      * Gets the route's presentation display id, or -1 if none.
      */
     public int getPresentationDisplayId() {
-        return mBundle.getInt(KEY_PRESENTATION_DISPLAY_ID, -1);
+        return mBundle.getInt(
+                KEY_PRESENTATION_DISPLAY_ID, MediaRouter.RouteInfo.PRESENTATION_DISPLAY_ID_NONE);
     }
 
     /**
@@ -264,7 +265,7 @@
         StringBuilder result = new StringBuilder();
         result.append("MediaRouteDescriptor{ ");
         result.append("id=").append(getId());
-        result.append(", childIds=").append(getChildIds());
+        result.append(", groupMemberIds=").append(getGroupMemberIds());
         result.append(", name=").append(getName());
         result.append(", description=").append(getDescription());
         result.append(", iconUri=").append(getIconUri());
@@ -308,7 +309,7 @@
      */
     public static final class Builder {
         private final Bundle mBundle;
-        private ArrayList<String> mChildIds;
+        private ArrayList<String> mGroupMemberIds;
         private ArrayList<IntentFilter> mControlFilters;
 
         /**
@@ -354,45 +355,45 @@
         }
 
         /**
-         * Adds a child id of the route.
+         * Adds a group member id of the route.
          * <p>
-         * A route descriptor that has one or more child route ids represents a
-         * route group. A child route may belong to another group.
+         * A route descriptor that has one or more group member route ids
+         * represents a route group. A member route may belong to another group.
          * </p>
          * @hide
          * STOPSHIP: Unhide or remove.
          */
-        public Builder addChildId(String childId) {
-            if (TextUtils.isEmpty(childId)) {
-                throw new IllegalArgumentException("childId must not be empty");
+        public Builder addGroupMemberId(String groupMemberId) {
+            if (TextUtils.isEmpty(groupMemberId)) {
+                throw new IllegalArgumentException("groupMemberId must not be empty");
             }
 
-            if (mChildIds == null) {
-                mChildIds = new ArrayList<>();
+            if (mGroupMemberIds == null) {
+                mGroupMemberIds = new ArrayList<>();
             }
-            if (!mChildIds.contains(childId)) {
-                mChildIds.add(childId);
+            if (!mGroupMemberIds.contains(groupMemberId)) {
+                mGroupMemberIds.add(groupMemberId);
             }
             return this;
         }
 
         /**
-         * Adds a list of child ids of the route.
+         * Adds a list of group member ids of the route.
          * <p>
-         * A route descriptor that has one or more child route ids represents a
-         * route group. A child route may belong to another group.
+         * A route descriptor that has one or more group member route ids
+         * represents a route group. A member route may belong to another group.
          * </p>
          * @hide
          * STOPSHIP: Unhide or remove.
          */
-        public Builder addChildIds(Collection<String> childIds) {
-            if (childIds == null) {
-                throw new IllegalArgumentException("childIds must not be null");
+        public Builder addGroupMemberIds(Collection<String> groupMemberIds) {
+            if (groupMemberIds == null) {
+                throw new IllegalArgumentException("groupMemberIds must not be null");
             }
 
-            if (!childIds.isEmpty()) {
-                for (String childId : childIds) {
-                    addChildId(childId);
+            if (!groupMemberIds.isEmpty()) {
+                for (String groupMemberId : groupMemberIds) {
+                    addGroupMemberId(groupMemberId);
                 }
             }
             return this;
@@ -594,8 +595,8 @@
             if (mControlFilters != null) {
                 mBundle.putParcelableArrayList(KEY_CONTROL_FILTERS, mControlFilters);
             }
-            if (mChildIds != null) {
-                mBundle.putStringArrayList(KEY_CHILD_IDS, mChildIds);
+            if (mGroupMemberIds != null) {
+                mBundle.putStringArrayList(KEY_GROUP_MEMBER_IDS, mGroupMemberIds);
             }
             return new MediaRouteDescriptor(mBundle, mControlFilters);
         }
diff --git a/v7/mediarouter/src/android/support/v7/media/MediaRouter.java b/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
index 614dade..170ee65 100644
--- a/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
+++ b/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
@@ -39,6 +39,7 @@
 import android.support.v4.media.session.MediaSessionCompat;
 import android.support.v4.util.Pair;
 import android.support.v7.media.MediaRouteProvider.ProviderMetadata;
+import android.support.v7.media.MediaRouteProvider.RouteController;
 import android.util.Log;
 import android.view.Display;
 
@@ -783,7 +784,7 @@
         private int mVolume;
         private int mVolumeMax;
         private Display mPresentationDisplay;
-        private int mPresentationDisplayId = -1;
+        private int mPresentationDisplayId = PRESENTATION_DISPLAY_ID_NONE;
         private Bundle mExtras;
         private IntentSender mSettingsIntent;
         MediaRouteDescriptor mDescriptor;
@@ -867,6 +868,13 @@
          */
         public static final int PLAYBACK_VOLUME_VARIABLE = 1;
 
+        /**
+         * The default presentation display id indicating no presentation display is associated
+         * with the route.
+         * @hide
+         */
+        public static final int PRESENTATION_DISPLAY_ID_NONE = -1;
+
         static final int CHANGE_GENERAL = 1 << 0;
         static final int CHANGE_VOLUME = 1 << 1;
         static final int CHANGE_PRESENTATION_DISPLAY = 1 << 2;
@@ -1290,6 +1298,14 @@
         }
 
         /**
+         * Gets the route's presentation display id, or -1 if none.
+         * @hide
+         */
+        public int getPresentationDisplayId() {
+            return mPresentationDisplayId;
+        }
+
+        /**
          * Gets a collection of extra properties about this route that were supplied
          * by its media route provider, or null if none.
          */
@@ -1486,15 +1502,15 @@
             if (mDescriptor != descriptor) {
                 mDescriptor = descriptor;
                 if (descriptor != null) {
-                    List<String> childIds = descriptor.getChildIds();
+                    List<String> groupMemberIds = descriptor.getGroupMemberIds();
                     List<RouteInfo> routes = new ArrayList<>();
-                    changed = childIds.size() != mRoutes.size();
-                    for (String childId : childIds) {
-                        String uniqueChildId = sGlobal.getUniqueId(getProvider(), childId);
-                        RouteInfo child = sGlobal.getRoute(uniqueChildId);
-                        if (child != null) {
-                            routes.add(child);
-                            if (!changed && !mRoutes.contains(child)) {
+                    changed = groupMemberIds.size() != mRoutes.size();
+                    for (String groupMemberId : groupMemberIds) {
+                        String uniqueId = sGlobal.getUniqueId(getProvider(), groupMemberId);
+                        RouteInfo groupMember = sGlobal.getRoute(uniqueId);
+                        if (groupMember != null) {
+                            routes.add(groupMember);
+                            if (!changed && !mRoutes.contains(groupMember)) {
                                 changed = true;
                             }
                         }
@@ -1782,7 +1798,8 @@
         private RegisteredMediaRouteProviderWatcher mRegisteredProviderWatcher;
         private RouteInfo mDefaultRoute;
         private RouteInfo mSelectedRoute;
-        private MediaRouteProvider.RouteController mSelectedRouteController;
+        private RouteController mSelectedRouteController;
+        private Map<String, RouteController> mGroupMemberControllers;
         private MediaRouteDiscoveryRequest mDiscoveryRequest;
         private MediaSessionRecord mMediaSession;
         private MediaSessionCompat mRccMediaSession;
@@ -1873,6 +1890,11 @@
         public void requestSetVolume(RouteInfo route, int volume) {
             if (route == mSelectedRoute && mSelectedRouteController != null) {
                 mSelectedRouteController.onSetVolume(volume);
+            } else if (mGroupMemberControllers != null) {
+                RouteController controller = mGroupMemberControllers.get(route.mDescriptorId);
+                if (controller != null) {
+                    controller.onSetVolume(volume);
+                }
             }
         }
 
@@ -2113,7 +2135,7 @@
                             if (sourceIndex < 0) {
                                 // 1. Add the route to the list.
                                 String uniqueId = assignRouteUniqueId(provider, id);
-                                boolean isGroup = routeDescriptor.getChildIds() != null;
+                                boolean isGroup = routeDescriptor.getGroupMemberIds() != null;
                                 RouteInfo route = isGroup ? new RouteGroup(provider, id, uniqueId) :
                                         new RouteInfo(provider, id, uniqueId);
                                 provider.mRoutes.add(targetIndex++, route);
@@ -2355,6 +2377,13 @@
                         mSelectedRouteController.onRelease();
                         mSelectedRouteController = null;
                     }
+                    if (mGroupMemberControllers != null) {
+                        for (RouteController controller : mGroupMemberControllers.values()) {
+                            controller.onUnselect();
+                            controller.onRelease();
+                        }
+                        mGroupMemberControllers = null;
+                    }
                 }
 
                 mSelectedRoute = route;
@@ -2369,6 +2398,17 @@
                         Log.d(TAG, "Route selected: " + mSelectedRoute);
                     }
                     mCallbackHandler.post(CallbackHandler.MSG_ROUTE_SELECTED, mSelectedRoute);
+
+                    if (mSelectedRoute instanceof RouteGroup) {
+                        mGroupMemberControllers = new HashMap<>();
+                        RouteGroup group = (RouteGroup) mSelectedRoute;
+                        for (RouteInfo groupMember : group.getRoutes()) {
+                            RouteController controller = groupMember.getProviderInstance()
+                                    .onCreateRouteController(groupMember.mDescriptorId);
+                            controller.onSelect();
+                            mGroupMemberControllers.put(groupMember.mDescriptorId, controller);
+                        }
+                    }
                 }
 
                 updatePlaybackInfoFromSelectedRoute();
diff --git a/v7/palette/src/main/java/android/support/v7/graphics/Palette.java b/v7/palette/src/main/java/android/support/v7/graphics/Palette.java
index a476559..eec60e2 100644
--- a/v7/palette/src/main/java/android/support/v7/graphics/Palette.java
+++ b/v7/palette/src/main/java/android/support/v7/graphics/Palette.java
@@ -604,7 +604,7 @@
 
                 // Now generate a quantizer from the Bitmap
                 final ColorCutQuantizer quantizer = new ColorCutQuantizer(
-                        getPixelsFromBitmap(),
+                        getPixelsFromBitmap(bitmap),
                         mMaxColors,
                         mFilters.isEmpty() ? null : mFilters.toArray(new Filter[mFilters.size()]));
 
@@ -669,8 +669,7 @@
                     }, mBitmap);
         }
 
-        private int[] getPixelsFromBitmap() {
-            final Bitmap bitmap = mBitmap;
+        private int[] getPixelsFromBitmap(Bitmap bitmap) {
             final int bitmapWidth = bitmap.getWidth();
             final int bitmapHeight = bitmap.getHeight();
             final int[] pixels = new int[bitmapWidth * bitmapHeight];
diff --git a/v7/recyclerview/src/android/support/v7/util/MessageThreadUtil.java b/v7/recyclerview/src/android/support/v7/util/MessageThreadUtil.java
index 51f99bb..49efcf9 100644
--- a/v7/recyclerview/src/android/support/v7/util/MessageThreadUtil.java
+++ b/v7/recyclerview/src/android/support/v7/util/MessageThreadUtil.java
@@ -18,10 +18,11 @@
 
 import android.os.Handler;
 import android.os.Looper;
+import android.support.v4.content.ParallelExecutorCompat;
 import android.util.Log;
 
 import java.util.concurrent.Executor;
-import java.util.concurrent.Executors;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 class MessageThreadUtil<T> implements ThreadUtil<T> {
 
@@ -83,7 +84,8 @@
     public BackgroundCallback<T> getBackgroundProxy(final BackgroundCallback<T> callback) {
         return new BackgroundCallback<T>() {
             final private MessageQueue mQueue = new MessageQueue();
-            final private Executor mExecutor = Executors.newSingleThreadExecutor();
+            final private Executor mExecutor = ParallelExecutorCompat.getParallelExecutor();
+            AtomicBoolean mBackgroundRunning = new AtomicBoolean(false);
 
             private static final int REFRESH = 1;
             private static final int UPDATE_RANGE = 2;
@@ -114,42 +116,51 @@
 
             private void sendMessage(SyncQueueItem msg) {
                 mQueue.sendMessage(msg);
-                mExecutor.execute(mBackgroundRunnable);
+                maybeExecuteBackgroundRunnable();
             }
 
             private void sendMessageAtFrontOfQueue(SyncQueueItem msg) {
                 mQueue.sendMessageAtFrontOfQueue(msg);
-                mExecutor.execute(mBackgroundRunnable);
+                maybeExecuteBackgroundRunnable();
+            }
+
+            private void maybeExecuteBackgroundRunnable() {
+                if (mBackgroundRunning.compareAndSet(false, true)) {
+                    mExecutor.execute(mBackgroundRunnable);
+                }
             }
 
             private Runnable mBackgroundRunnable = new Runnable() {
                 @Override
                 public void run() {
-                    SyncQueueItem msg = mQueue.next();
-                    if (msg == null) {
-                        return;
+                    while (true) {
+                        SyncQueueItem msg = mQueue.next();
+                        if (msg == null) {
+                            break;
+                        }
+                        switch (msg.what) {
+                            case REFRESH:
+                                mQueue.removeMessages(REFRESH);
+                                callback.refresh(msg.arg1);
+                                break;
+                            case UPDATE_RANGE:
+                                mQueue.removeMessages(UPDATE_RANGE);
+                                mQueue.removeMessages(LOAD_TILE);
+                                callback.updateRange(
+                                        msg.arg1, msg.arg2, msg.arg3, msg.arg4, msg.arg5);
+                                break;
+                            case LOAD_TILE:
+                                callback.loadTile(msg.arg1, msg.arg2);
+                                break;
+                            case RECYCLE_TILE:
+                                //noinspection unchecked
+                                callback.recycleTile((TileList.Tile<T>) msg.data);
+                                break;
+                            default:
+                                Log.e("ThreadUtil", "Unsupported message, what=" + msg.what);
+                        }
                     }
-                    switch (msg.what) {
-                        case REFRESH:
-                            mQueue.removeMessages(REFRESH);
-                            callback.refresh(msg.arg1);
-                            break;
-                        case UPDATE_RANGE:
-                            mQueue.removeMessages(UPDATE_RANGE);
-                            mQueue.removeMessages(LOAD_TILE);
-                            callback.updateRange(
-                                    msg.arg1, msg.arg2, msg.arg3, msg.arg4, msg.arg5);
-                            break;
-                        case LOAD_TILE:
-                            callback.loadTile(msg.arg1, msg.arg2);
-                            break;
-                        case RECYCLE_TILE:
-                            //noinspection unchecked
-                            callback.recycleTile((TileList.Tile<T>) msg.data);
-                            break;
-                        default:
-                            Log.e("ThreadUtil", "Unsupported message, what=" + msg.what);
-                    }
+                    mBackgroundRunning.set(false);
                 }
             };
         };
diff --git a/v7/recyclerview/tests/src/android/support/v7/util/AsyncListUtilTest.java b/v7/recyclerview/tests/src/android/support/v7/util/AsyncListUtilTest.java
index e9147a0..f985898 100644
--- a/v7/recyclerview/tests/src/android/support/v7/util/AsyncListUtilTest.java
+++ b/v7/recyclerview/tests/src/android/support/v7/util/AsyncListUtilTest.java
@@ -16,22 +16,13 @@
 
 package android.support.v7.util;
 
-import android.support.test.runner.AndroidJUnit4;
+import android.support.annotation.UiThread;
 import android.util.SparseBooleanArray;
 
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
-import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertTrue;
-
-@RunWith(AndroidJUnit4.class)
-public class AsyncListUtilTest {
+public class AsyncListUtilTest extends BaseThreadedTest {
 
     private static final int TILE_SIZE = 10;
 
@@ -40,34 +31,37 @@
 
     AsyncListUtil<String> mAsyncListUtil;
 
-
-    @Before
+    @Override
     public void setUp() throws Exception {
         mDataCallback = new TestDataCallback();
         mViewCallback = new TestViewCallback();
 
         mDataCallback.expectTiles(0, 10, 20);
-        mAsyncListUtil = new AsyncListUtil<String>(String.class, TILE_SIZE, mDataCallback,
-                mViewCallback);
+        super.setUp();
         mDataCallback.waitForTiles("initial load");
     }
 
-    @After
+    @Override
+    @UiThread
+    protected void setUpUi() {
+        mAsyncListUtil = new AsyncListUtil<String>(
+                String.class, TILE_SIZE, mDataCallback, mViewCallback);
+    }
+
+    @Override
     public void tearDown() throws Exception {
         /// Wait a little extra to catch spurious messages.
         new CountDownLatch(1).await(500, TimeUnit.MILLISECONDS);
     }
 
-    @Test
-    public void testWithNoPreload() throws InterruptedException {
+    public void testWithNoPreload() throws Throwable {
         scrollAndExpectTiles(10, "scroll to 10", 30);
         scrollAndExpectTiles(25, "scroll to 25", 40);
         scrollAndExpectTiles(45, "scroll to 45", 50, 60);
         scrollAndExpectTiles(70, "scroll to 70", 70, 80, 90);
     }
 
-    @Test
-    public void testWithPreload() throws InterruptedException {
+    public void testWithPreload() throws Throwable {
         mViewCallback.mStartPreload = 5;
         mViewCallback.mEndPreload = 15;
         scrollAndExpectTiles(50, "scroll down a lot", 40, 50, 60, 70, 80);
@@ -78,8 +72,7 @@
         scrollAndExpectTiles(40, "scroll up a little, no new tiles loaded");
     }
 
-    @Test
-    public void testTileCaching() throws InterruptedException {
+    public void testTileCaching() throws Throwable {
         scrollAndExpectTiles(25, "next screen", 30, 40);
 
         scrollAndExpectTiles(0, "back at top, no new page loads");
@@ -90,35 +83,34 @@
         scrollAndExpectTiles(0, "scroll back to top, all pages should reload", 0, 10, 20);
     }
 
-    @Test
-    public void testDataRefresh() throws InterruptedException {
+    public void testDataRefresh() throws Throwable {
         mViewCallback.expectDataSetChanged(40);
         mDataCallback.expectTiles(0, 10, 20);
-        mAsyncListUtil.refresh();
+        refreshOnUiThread();
         mViewCallback.waitForDataSetChanged("increasing item count");
         mDataCallback.waitForTiles("increasing item count");
 
         mViewCallback.expectDataSetChanged(15);
         mDataCallback.expectTiles(0, 10);
-        mAsyncListUtil.refresh();
+        refreshOnUiThread();
         mViewCallback.waitForDataSetChanged("decreasing item count");
         mDataCallback.waitForTiles("decreasing item count");
     }
 
-    @Test
-    public void testItemChanged() throws InterruptedException {
+    public void testItemChanged() throws Throwable {
         final int position = 30;
         final int count = 20;
 
-        assertEquals("no new items should be loaded", 0, getLoadedItemCount(position, count));
+        assertLoadedItemsOnUiThread("no new items should be loaded", 0, position, count);
 
         mViewCallback.expectItemRangeChanged(position, count);
         scrollAndExpectTiles(20, "scrolling to missing items", 30, 40);
         mViewCallback.waitForItems();
 
-        assertEquals("all new items should be loaded", count, getLoadedItemCount(position, count));
+        assertLoadedItemsOnUiThread("all new items should be loaded", count, position, count);
     }
 
+    @UiThread
     private int getLoadedItemCount(int startPosition, int itemCount) {
         int loaded = 0;
         for (int i = 0; i < itemCount; i++) {
@@ -130,9 +122,9 @@
     }
 
     private void scrollAndExpectTiles(int position, String context, int... positions)
-            throws InterruptedException {
+            throws Throwable {
         mDataCallback.expectTiles(positions);
-        mViewCallback.scrollTo(position);
+        scrollOnUiThread(position);
         mDataCallback.waitForTiles(context);
     }
 
@@ -141,6 +133,36 @@
         assertTrue("timed out waiting for " + context, latch.await(1, TimeUnit.SECONDS));
     }
 
+    private void refreshOnUiThread() throws Throwable {
+        runTestOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                mAsyncListUtil.refresh();
+            }
+        });
+    }
+
+    private void assertLoadedItemsOnUiThread(final String message,
+                                             final int expectedCount,
+                                             final int position,
+                                             final int count) throws Throwable {
+        runTestOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                assertEquals(message, expectedCount, getLoadedItemCount(position, count));
+            }
+        });
+    }
+
+    private void scrollOnUiThread(final int position) throws Throwable {
+        runTestOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                mViewCallback.scrollTo(position);
+            }
+        });
+    }
+
     private class TestDataCallback extends AsyncListUtil.DataCallback<String> {
         private int mCacheSize = 10;
 
@@ -205,6 +227,7 @@
         }
 
         @Override
+        @UiThread
         public void onDataRefresh() {
             if (mDataRefreshLatch == null) {
                 return;
@@ -239,12 +262,14 @@
             waitForLatch("onItemChanged", mItemsChangedLatch.mLatch);
         }
 
+        @UiThread
         public void scrollTo(int position) {
             mLastVisibleItem += position - mFirstVisibleItem;
             mFirstVisibleItem = position;
             mAsyncListUtil.onRangeChanged();
         }
 
+        @UiThread
         private void updateViewport() {
             int itemCount = mAsyncListUtil.getItemCount();
             if (mLastVisibleItem < itemCount) {
diff --git a/v7/recyclerview/tests/src/android/support/v7/util/BaseThreadedTest.java b/v7/recyclerview/tests/src/android/support/v7/util/BaseThreadedTest.java
new file mode 100644
index 0000000..73df9a7
--- /dev/null
+++ b/v7/recyclerview/tests/src/android/support/v7/util/BaseThreadedTest.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.support.v7.util;
+
+import android.support.annotation.UiThread;
+import android.support.v7.widget.TestActivity;
+import android.test.ActivityInstrumentationTestCase2;
+
+abstract public class BaseThreadedTest extends ActivityInstrumentationTestCase2<TestActivity> {
+    public BaseThreadedTest() {
+        super(TestActivity.class);
+    }
+
+    @Override
+    public void setUp() throws Exception{
+        try {
+            runTestOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    setUpUi();
+                }
+            });
+        } catch (Throwable throwable) {
+            fail(throwable.getMessage());
+        }
+    }
+
+    @UiThread
+    protected abstract void setUpUi();
+}
diff --git a/v7/recyclerview/tests/src/android/support/v7/util/ThreadUtilTest.java b/v7/recyclerview/tests/src/android/support/v7/util/ThreadUtilTest.java
index daa2ffc..472374d 100644
--- a/v7/recyclerview/tests/src/android/support/v7/util/ThreadUtilTest.java
+++ b/v7/recyclerview/tests/src/android/support/v7/util/ThreadUtilTest.java
@@ -19,27 +19,23 @@
 import static org.hamcrest.MatcherAssert.*;
 import static org.hamcrest.CoreMatchers.*;
 
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
 import android.os.Looper;
-import android.support.test.runner.AndroidJUnit4;
+import android.support.annotation.UiThread;
 
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.Semaphore;
 import java.util.concurrent.TimeUnit;
 
-@RunWith(AndroidJUnit4.class)
-public class ThreadUtilTest {
+public class ThreadUtilTest extends BaseThreadedTest {
     Map<String, LockedObject> results = new HashMap<>();
 
     ThreadUtil.MainThreadCallback<Integer> mMainThreadProxy;
     ThreadUtil.BackgroundCallback<Integer> mBackgroundProxy;
 
-    @Before
-    public void setup() {
+    @Override
+    @UiThread
+    public void setUpUi() {
         ThreadUtil<Integer> threadUtil = new MessageThreadUtil<>();
 
         mMainThreadProxy = threadUtil.getMainThreadProxy(
@@ -93,15 +89,15 @@
                 });
     }
 
-    @Test
     public void testUpdateItemCount() throws InterruptedException {
         initWait("updateItemCount");
+        // In this test and below the calls to mMainThreadProxy are not really made from the UI
+        // thread. That's OK since the message queue inside mMainThreadProxy is synchronized.
         mMainThreadProxy.updateItemCount(7, 9);
         Object[] data = waitFor("updateItemCount");
         assertThat(data, is(new Object[]{7, 9}));
     }
 
-    @Test
     public void testAddTile() throws InterruptedException {
         initWait("addTile");
         TileList.Tile<Integer> tile = new TileList.Tile<Integer>(Integer.class, 10);
@@ -110,7 +106,6 @@
         assertThat(data, is(new Object[]{3, tile}));
     }
 
-    @Test
     public void testRemoveTile() throws InterruptedException {
         initWait("removeTile");
         mMainThreadProxy.removeTile(1, 2);
@@ -118,15 +113,15 @@
         assertThat(data, is(new Object[]{1, 2}));
     }
 
-    @Test
     public void testRefresh() throws InterruptedException {
         initWait("refresh");
+        // In this test and below the calls to mBackgroundProxy are not really made from the worker
+        // thread. That's OK since the message queue inside mBackgroundProxy is synchronized.
         mBackgroundProxy.refresh(2);
         Object[] data = waitFor("refresh");
         assertThat(data, is(new Object[]{2}));
     }
 
-    @Test
     public void testRangeUpdate() throws InterruptedException {
         initWait("updateRange");
         mBackgroundProxy.updateRange(10, 20, 5, 25, 1);
@@ -134,7 +129,6 @@
         assertThat(data, is(new Object[] {10, 20, 5, 25, 1}));
     }
 
-    @Test
     public void testLoadTile() throws InterruptedException {
         initWait("loadTile");
         mBackgroundProxy.loadTile(2, 1);
@@ -142,7 +136,6 @@
         assertThat(data, is(new Object[]{2, 1}));
     }
 
-    @Test
     public void testRecycleTile() throws InterruptedException {
         initWait("recycleTile");
         TileList.Tile<Integer> tile = new TileList.Tile<Integer>(Integer.class, 10);
diff --git a/v7/recyclerview/tests/src/android/support/v7/widget/AsyncListUtilLayoutTest.java b/v7/recyclerview/tests/src/android/support/v7/widget/AsyncListUtilLayoutTest.java
index 3889cfa..b8f6788 100644
--- a/v7/recyclerview/tests/src/android/support/v7/widget/AsyncListUtilLayoutTest.java
+++ b/v7/recyclerview/tests/src/android/support/v7/widget/AsyncListUtilLayoutTest.java
@@ -76,8 +76,13 @@
         mDataCallback.expectTilesInRange(rangeStart, rangeSize);
         mAdapter.expectItemsInRange(rangeStart, rangeSize);
 
-        mAsyncListUtil = new AsyncListUtil<String>(String.class, TILE_SIZE, mDataCallback,
-                mViewCallback);
+        runTestOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                mAsyncListUtil = new AsyncListUtil<String>(
+                        String.class, TILE_SIZE, mDataCallback, mViewCallback);
+            }
+        });
 
         mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
             @Override
