Merge "Revert "Revert "Use RecyclerView for NavigationView""" into mnc-ub-dev
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