am 0f067e4f: am d702f2b4: Merge "Properly constrain leanback preference icon size" into mnc-ub-dev
* commit '0f067e4f87d5e2583d503d2ebcab7393cc819cc5':
Properly constrain leanback preference icon size
diff --git a/annotations/src/android/support/annotation/IntRange.java b/annotations/src/android/support/annotation/IntRange.java
index 6011276..4d46db4 100644
--- a/annotations/src/android/support/annotation/IntRange.java
+++ b/annotations/src/android/support/annotation/IntRange.java
@@ -18,6 +18,7 @@
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.LOCAL_VARIABLE;
import static java.lang.annotation.ElementType.METHOD;
@@ -36,7 +37,7 @@
* }</pre>
*/
@Retention(CLASS)
-@Target({METHOD,PARAMETER,FIELD,LOCAL_VARIABLE})
+@Target({METHOD,PARAMETER,FIELD,LOCAL_VARIABLE,ANNOTATION_TYPE})
public @interface IntRange {
/** Smallest value, inclusive */
long from() default Long.MIN_VALUE;
diff --git a/annotations/src/android/support/annotation/RequiresPermission.java b/annotations/src/android/support/annotation/RequiresPermission.java
index bb9afb2..29b2f76 100644
--- a/annotations/src/android/support/annotation/RequiresPermission.java
+++ b/annotations/src/android/support/annotation/RequiresPermission.java
@@ -22,6 +22,7 @@
import static java.lang.annotation.ElementType.CONSTRUCTOR;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.CLASS;
/**
@@ -51,11 +52,29 @@
* @RequiresPermission.Write(@RequiresPermission(WRITE_HISTORY_BOOKMARKS))
* public static final Uri BOOKMARKS_URI = Uri.parse("content://browser/bookmarks");
* }</pre>
- *
- * @hide
+ * <p>
+ * When specified on a parameter, the annotation indicates that the method requires
+ * a permission which depends on the value of the parameter. For example, consider
+ * {@link android.app.Activity#startActivity(android.content.Intent)}:
+ * <pre>{@code
+ * public void startActivity(@RequiresPermission Intent intent) { ... }
+ * }</pre>
+ * Notice how there are no actual permission names listed in the annotation. The actual
+ * permissions required will depend on the particular intent passed in. For example,
+ * the code may look like this:
+ * <pre>{@code
+ * Intent intent = new Intent(Intent.ACTION_CALL);
+ * startActivity(intent);
+ * }</pre>
+ * and the actual permission requirement for this particular intent is described on
+ * the Intent name itself:
+ * <pre>{@code
+ * @RequiresPermission(Manifest.permission.CALL_PHONE)
+ * public static final String ACTION_CALL = "android.intent.action.CALL";
+ * }</pre>
*/
@Retention(CLASS)
-@Target({ANNOTATION_TYPE,METHOD,CONSTRUCTOR,FIELD})
+@Target({ANNOTATION_TYPE,METHOD,CONSTRUCTOR,FIELD,PARAMETER})
public @interface RequiresPermission {
/**
* The name of the permission that is required, if precisely one permission
@@ -87,18 +106,28 @@
boolean conditional() default false;
/**
- * Specifies that the given permission is required for read operations
+ * Specifies that the given permission is required for read operations.
+ * <p>
+ * When specified on a parameter, the annotation indicates that the method requires
+ * a permission which depends on the value of the parameter (and typically
+ * the corresponding field passed in will be one of a set of constants which have
+ * been annotated with a {@code @RequiresPermission} annotation.)
*/
- @Target(FIELD)
+ @Target({FIELD, METHOD, PARAMETER})
@interface Read {
- RequiresPermission value();
+ RequiresPermission value() default @RequiresPermission;
}
/**
- * Specifies that the given permission is required for write operations
+ * Specifies that the given permission is required for write operations.
+ * <p>
+ * When specified on a parameter, the annotation indicates that the method requires
+ * a permission which depends on the value of the parameter (and typically
+ * the corresponding field passed in will be one of a set of constants which have
+ * been annotated with a {@code @RequiresPermission} annotation.)
*/
- @Target(FIELD)
+ @Target({FIELD, METHOD, PARAMETER})
@interface Write {
- RequiresPermission value();
+ RequiresPermission value() default @RequiresPermission;
}
}
diff --git a/apicheck.mk b/apicheck.mk
index 1638607..75e0f6e 100644
--- a/apicheck.mk
+++ b/apicheck.mk
@@ -44,8 +44,9 @@
$(call intermediates-dir-for,$(LOCAL_MODULE_CLASS),$(support_module),,COMMON)/src
LOCAL_SDK_VERSION := current
+LOCAL_DROIDDOC_STUB_OUT_DIR := $(TARGET_OUT_COMMON_INTERMEDIATES)/$(LOCAL_MODULE_CLASS)/$(LOCAL_MODULE)_intermediates/src
+
LOCAL_DROIDDOC_OPTIONS:= \
- -stubs $(TARGET_OUT_COMMON_INTERMEDIATES)/$(LOCAL_MODULE_CLASS)/$(LOCAL_MODULE)_intermediates/src \
-stubpackages "$(subst $(space),:,$(support_module_java_packages))" \
-api $(support_module_api_file) \
-removedApi $(support_module_removed_file) \
diff --git a/design/src/android/support/design/widget/CoordinatorLayout.java b/design/src/android/support/design/widget/CoordinatorLayout.java
index 2ca18c3..359c468 100644
--- a/design/src/android/support/design/widget/CoordinatorLayout.java
+++ b/design/src/android/support/design/widget/CoordinatorLayout.java
@@ -349,7 +349,7 @@
// Cancel all behaviors beneath the one that intercepted.
// If the event is "down" then we don't have anything to cancel yet.
if (b != null) {
- if (cancelEvent == null) {
+ if (cancelEvent != null) {
final long now = SystemClock.uptimeMillis();
cancelEvent = MotionEvent.obtain(now, now,
MotionEvent.ACTION_CANCEL, 0.0f, 0.0f, 0);
diff --git a/design/src/android/support/design/widget/Snackbar.java b/design/src/android/support/design/widget/Snackbar.java
index eb2c4ef..f0b2132 100644
--- a/design/src/android/support/design/widget/Snackbar.java
+++ b/design/src/android/support/design/widget/Snackbar.java
@@ -25,6 +25,7 @@
import android.os.Message;
import android.support.annotation.ColorInt;
import android.support.annotation.IntDef;
+import android.support.annotation.IntRange;
import android.support.annotation.NonNull;
import android.support.annotation.StringRes;
import android.support.design.R;
@@ -120,6 +121,7 @@
* @hide
*/
@IntDef({LENGTH_INDEFINITE, LENGTH_SHORT, LENGTH_LONG})
+ @IntRange(from = 1)
@Retention(RetentionPolicy.SOURCE)
public @interface Duration {}
diff --git a/v17/leanback/res/values-az-rAZ/strings.xml b/v17/leanback/res/values-az-rAZ/strings.xml
new file mode 100644
index 0000000..d1e685f
--- /dev/null
+++ b/v17/leanback/res/values-az-rAZ/strings.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright (C) 2014 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 xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="orb_search_action" msgid="5651268540267663887">"Axtarış Fəaliyyəti"</string>
+ <string name="lb_search_bar_hint" msgid="8325490927970116252">"Axtarış"</string>
+ <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Axtarış üçün danışın"</string>
+ <string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Axtarış: <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Axtarış üçün danışın: <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+ <string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
+ <string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
+ <string name="lb_playback_controls_play" msgid="731953341987346903">"Oyun"</string>
+ <string name="lb_playback_controls_pause" msgid="6189521112079849518">"Pauza"</string>
+ <string name="lb_playback_controls_fast_forward" msgid="8569951318244687220">"İrəli Ötürmə"</string>
+ <string name="lb_playback_controls_fast_forward_multiplier" msgid="1058753672110224526">"İrəli sarı %1$dX"</string>
+ <string name="lb_playback_controls_rewind" msgid="2227196334132350684">"Geri ötürmə"</string>
+ <string name="lb_playback_controls_rewind_multiplier" msgid="1640629531440849942">"Geri sarı %1$dX"</string>
+ <string name="lb_playback_controls_skip_next" msgid="2946499493161095772">"Növbətini atlayın"</string>
+ <string name="lb_playback_controls_skip_previous" msgid="2326801832933178348">"Öncəkini atlayın"</string>
+ <string name="lb_playback_controls_more_actions" msgid="2330770008796987655">"Digər fəaliyyətlər"</string>
+ <string name="lb_playback_controls_thumb_up" msgid="6530420347129222601">"Bəyənməkdən imtina edin"</string>
+ <string name="lb_playback_controls_thumb_up_outline" msgid="1577637924003500946">"Bəyənin"</string>
+ <string name="lb_playback_controls_thumb_down" msgid="4498041193172964797">"Bəyənməməkdən imtina edin"</string>
+ <string name="lb_playback_controls_thumb_down_outline" msgid="2936020280629424365">"Bəyənməyin"</string>
+ <string name="lb_playback_controls_repeat_none" msgid="87476947476529036">"Təkrarlanmasın"</string>
+ <string name="lb_playback_controls_repeat_all" msgid="6730354406289599000">"Hamısını təkrarlayın"</string>
+ <string name="lb_playback_controls_repeat_one" msgid="3285202316452203619">"Biri təkrarlansın"</string>
+ <string name="lb_playback_controls_shuffle_enable" msgid="1099874107835264529">"Qarışdırma aktiv edilsin"</string>
+ <string name="lb_playback_controls_shuffle_disable" msgid="8388150597335115226">"Qarışdırma deaktiv edilsin"</string>
+ <string name="lb_playback_controls_high_quality_enable" msgid="202415780019335254">"Yüksək keyfiyyəti aktiv edin"</string>
+ <string name="lb_playback_controls_high_quality_disable" msgid="8637371582779057866">"Yüksək keyfiyyəti deaktiv edin"</string>
+ <string name="lb_playback_controls_closed_captioning_enable" msgid="2429655367176440226">"Qapalı çəkilişi aktiv edin"</string>
+ <string name="lb_playback_controls_closed_captioning_disable" msgid="6133362019475930048">"Qapalı çəkilişi deaktiv edin"</string>
+</resources>
diff --git a/v17/leanback/res/values-bg/strings.xml b/v17/leanback/res/values-bg/strings.xml
index de0b6f8..74c01b6 100644
--- a/v17/leanback/res/values-bg/strings.xml
+++ b/v17/leanback/res/values-bg/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Търсете"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Говорете, за да търсите"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Търсете в/ъв <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Говорете, за да търсите в/ъв <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Говорете, за да търсите във: <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"Пускане"</string>
diff --git a/v17/leanback/res/values-ca/strings.xml b/v17/leanback/res/values-ca/strings.xml
index 187f5af..dbf20a8 100644
--- a/v17/leanback/res/values-ca/strings.xml
+++ b/v17/leanback/res/values-ca/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Cerca."</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Parla per fer una cerca."</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Cerca a <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>."</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Parla per cercar a <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>."</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Parla per cercar a <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"Reprodueix"</string>
diff --git a/v17/leanback/res/values-cs/strings.xml b/v17/leanback/res/values-cs/strings.xml
index 1a60828..13f9689 100644
--- a/v17/leanback/res/values-cs/strings.xml
+++ b/v17/leanback/res/values-cs/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Vyhledávání"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Vyhledávejte hlasem"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Hledat <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Vyhledávejte v kategorii „<xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>“ hlasem"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Vyhledávejte v kategorii „<xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>“ hlasem"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$d×"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$d×"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"Přehrát"</string>
diff --git a/v17/leanback/res/values-da/strings.xml b/v17/leanback/res/values-da/strings.xml
index e3e0f9f..701138f 100644
--- a/v17/leanback/res/values-da/strings.xml
+++ b/v17/leanback/res/values-da/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Søg"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Tal for at søge"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Søg efter <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Tal for at søge efter <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Sig noget for at søge i <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"Afspil"</string>
diff --git a/v17/leanback/res/values-de/strings.xml b/v17/leanback/res/values-de/strings.xml
index d729f7c..db0c3e0 100644
--- a/v17/leanback/res/values-de/strings.xml
+++ b/v17/leanback/res/values-de/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Suchen"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Zum Suchen sprechen"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"In <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g> suchen"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Zum Suchen in der Kategorie \"<xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>\" sprechen"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Sprechen, um in \"<xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>\" zu suchen"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dx"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dx"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"Wiedergabe"</string>
diff --git a/v17/leanback/res/values-el/strings.xml b/v17/leanback/res/values-el/strings.xml
index 9b93dcf..6c4f603 100644
--- a/v17/leanback/res/values-el/strings.xml
+++ b/v17/leanback/res/values-el/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Αναζήτηση"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Μιλήστε για να κάνετε αναζήτηση"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Αναζήτηση <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Μιλήστε για αναζήτηση <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Μιλήστε για αναζήτηση: <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"Αναπαραγωγή"</string>
diff --git a/v17/leanback/res/values-es/strings.xml b/v17/leanback/res/values-es/strings.xml
index 0cff1c9..9e6c526 100644
--- a/v17/leanback/res/values-es/strings.xml
+++ b/v17/leanback/res/values-es/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Buscar"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Habla para buscar"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Buscar <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Habla para buscar <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Habla para buscar en <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"Reproducir"</string>
diff --git a/v17/leanback/res/values-et-rEE/strings.xml b/v17/leanback/res/values-et-rEE/strings.xml
index 32fff96..cfda00e 100644
--- a/v17/leanback/res/values-et-rEE/strings.xml
+++ b/v17/leanback/res/values-et-rEE/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Otsing"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Öelge otsimiseks"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Otsige teenusest <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Kõnelge teenusest <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g> otsimiseks"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Häälotsing: <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"Esita"</string>
diff --git a/v17/leanback/res/values-fi/strings.xml b/v17/leanback/res/values-fi/strings.xml
index 9d38d3c..92b5f12 100644
--- a/v17/leanback/res/values-fi/strings.xml
+++ b/v17/leanback/res/values-fi/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Haku"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Tee haku puhumalla"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Haku: <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Puhehaku: <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Hae <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g> puhehaulla"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"Toista"</string>
diff --git a/v17/leanback/res/values-fr/strings.xml b/v17/leanback/res/values-fr/strings.xml
index e9c051c..0a3e6fe 100644
--- a/v17/leanback/res/values-fr/strings.xml
+++ b/v17/leanback/res/values-fr/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Rechercher"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Énoncer la recherche"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Rechercher \"<xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>\""</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Énoncer la recherche \"<xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>\""</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Énoncez votre recherche sur \"<xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>\""</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"Lecture"</string>
diff --git a/v17/leanback/res/values-hr/strings.xml b/v17/leanback/res/values-hr/strings.xml
index 166369f..974de0a 100644
--- a/v17/leanback/res/values-hr/strings.xml
+++ b/v17/leanback/res/values-hr/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Pretražite"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Izgovorite upit za pretraživanje"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Tražite <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Izgovorite upit za pretraživanje <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Izgovorite upit da pretražite <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"Reproduciraj"</string>
diff --git a/v17/leanback/res/values-nl/strings.xml b/v17/leanback/res/values-nl/strings.xml
index fe73141..1925e14 100644
--- a/v17/leanback/res/values-nl/strings.xml
+++ b/v17/leanback/res/values-nl/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Zoeken"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Spreek om te zoeken"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"<xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g> zoeken"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Spreek om <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g> te zoeken"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Spreek om in <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g> te zoeken"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"Afspelen"</string>
diff --git a/v17/leanback/res/values-pl/strings.xml b/v17/leanback/res/values-pl/strings.xml
index f6280a3..18b8bf6 100644
--- a/v17/leanback/res/values-pl/strings.xml
+++ b/v17/leanback/res/values-pl/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Szukaj"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Powiedz, aby wyszukać"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Szukaj <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Powiedz, by wyszukać w aplikacji <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Powiedz, by wyszukać <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"Odtwórz"</string>
diff --git a/v17/leanback/res/values-pt-rBR/strings.xml b/v17/leanback/res/values-pt-rBR/strings.xml
new file mode 100644
index 0000000..79b9d40
--- /dev/null
+++ b/v17/leanback/res/values-pt-rBR/strings.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright (C) 2014 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 xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="orb_search_action" msgid="5651268540267663887">"Ação de pesquisa"</string>
+ <string name="lb_search_bar_hint" msgid="8325490927970116252">"Pesquisar"</string>
+ <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Fale para pesquisar"</string>
+ <string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Pesquisar <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Fale para pesquisar no <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+ <string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
+ <string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
+ <string name="lb_playback_controls_play" msgid="731953341987346903">"Reproduzir"</string>
+ <string name="lb_playback_controls_pause" msgid="6189521112079849518">"Pausar"</string>
+ <string name="lb_playback_controls_fast_forward" msgid="8569951318244687220">"Avançar"</string>
+ <string name="lb_playback_controls_fast_forward_multiplier" msgid="1058753672110224526">"Avançar %1$dX"</string>
+ <string name="lb_playback_controls_rewind" msgid="2227196334132350684">"Retroceder"</string>
+ <string name="lb_playback_controls_rewind_multiplier" msgid="1640629531440849942">"Retroceder %1$dX"</string>
+ <string name="lb_playback_controls_skip_next" msgid="2946499493161095772">"Pular próxima"</string>
+ <string name="lb_playback_controls_skip_previous" msgid="2326801832933178348">"Pular anterior"</string>
+ <string name="lb_playback_controls_more_actions" msgid="2330770008796987655">"Mais ações"</string>
+ <string name="lb_playback_controls_thumb_up" msgid="6530420347129222601">"Desmarcar gostei"</string>
+ <string name="lb_playback_controls_thumb_up_outline" msgid="1577637924003500946">"Marcar gostei"</string>
+ <string name="lb_playback_controls_thumb_down" msgid="4498041193172964797">"Desmarcar não gostei"</string>
+ <string name="lb_playback_controls_thumb_down_outline" msgid="2936020280629424365">"Marcar não gostei"</string>
+ <string name="lb_playback_controls_repeat_none" msgid="87476947476529036">"Não repetir"</string>
+ <string name="lb_playback_controls_repeat_all" msgid="6730354406289599000">"Repetir tudo"</string>
+ <string name="lb_playback_controls_repeat_one" msgid="3285202316452203619">"Repetir uma"</string>
+ <string name="lb_playback_controls_shuffle_enable" msgid="1099874107835264529">"Ativar reprodução aleatória"</string>
+ <string name="lb_playback_controls_shuffle_disable" msgid="8388150597335115226">"Desativar reprodução aleatória"</string>
+ <string name="lb_playback_controls_high_quality_enable" msgid="202415780019335254">"Ativar alta qualidade"</string>
+ <string name="lb_playback_controls_high_quality_disable" msgid="8637371582779057866">"Desativar alta qualidade"</string>
+ <string name="lb_playback_controls_closed_captioning_enable" msgid="2429655367176440226">"Ativar closed captioning"</string>
+ <string name="lb_playback_controls_closed_captioning_disable" msgid="6133362019475930048">"Desativar closed captioning"</string>
+</resources>
diff --git a/v17/leanback/res/values-pt-rPT/strings.xml b/v17/leanback/res/values-pt-rPT/strings.xml
index f3bf4aa..f269712 100644
--- a/v17/leanback/res/values-pt-rPT/strings.xml
+++ b/v17/leanback/res/values-pt-rPT/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Pesquisar"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Fale para pesquisar"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Pesquisar <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Fale para pesquisar <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Fale para pesquisar no(a) <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"Reproduzir"</string>
diff --git a/v17/leanback/res/values-pt/strings.xml b/v17/leanback/res/values-pt/strings.xml
index 13d01a5..79b9d40 100644
--- a/v17/leanback/res/values-pt/strings.xml
+++ b/v17/leanback/res/values-pt/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Pesquisar"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Fale para pesquisar"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Pesquisar <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Fale para pesquisar <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Fale para pesquisar no <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"Reproduzir"</string>
diff --git a/v17/leanback/res/values-ru/strings.xml b/v17/leanback/res/values-ru/strings.xml
index fb03f9d..fdb453b 100644
--- a/v17/leanback/res/values-ru/strings.xml
+++ b/v17/leanback/res/values-ru/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Поиск"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Произнесите запрос"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Поиск здесь: <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Произнесите запрос, чтобы найти <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Скажите, что вы хотите найти – <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"Воспроизвести."</string>
diff --git a/v17/leanback/res/values-sl/strings.xml b/v17/leanback/res/values-sl/strings.xml
index 1af639b..b5d0e1d 100644
--- a/v17/leanback/res/values-sl/strings.xml
+++ b/v17/leanback/res/values-sl/strings.xml
@@ -19,9 +19,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="orb_search_action" msgid="5651268540267663887">"Dejanje iskanja"</string>
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Iskanje"</string>
- <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Izgovorite, če želite iskati"</string>
+ <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Izgovorite iskalno poizvedbo"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Iskanje: <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Govorite, če želite iskati: <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Izgovorite poizvedbo za iskanje v <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$d-kratno"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$d-kratno"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"Predvajaj"</string>
diff --git a/v17/leanback/res/values-sw/strings.xml b/v17/leanback/res/values-sw/strings.xml
index 17c7480..0ad04d1 100644
--- a/v17/leanback/res/values-sw/strings.xml
+++ b/v17/leanback/res/values-sw/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Utafutaji"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Tamka ili utafute"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Tafuta <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Tamka ili utafute <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Tamka ili utafute kwenye <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"Google Play"</string>
diff --git a/v17/leanback/res/values-th/strings.xml b/v17/leanback/res/values-th/strings.xml
index 581bac0..093a529 100644
--- a/v17/leanback/res/values-th/strings.xml
+++ b/v17/leanback/res/values-th/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"ค้นหา"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"พูดเพื่อค้นหา"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"ค้นหา <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"พูดเพื่อค้นหา <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"พูดเพื่อทำการค้นหาใน <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"เล่น"</string>
diff --git a/v17/leanback/res/values-tl/strings.xml b/v17/leanback/res/values-tl/strings.xml
index c4e15ec..a536298 100644
--- a/v17/leanback/res/values-tl/strings.xml
+++ b/v17/leanback/res/values-tl/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Maghanap"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Magsalita upang maghanap"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Hanapin ang <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Magsalita upang hanapin ang <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Magsalita upang maghanap sa <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"I-play"</string>
diff --git a/v17/leanback/res/values-tr/strings.xml b/v17/leanback/res/values-tr/strings.xml
index 4671058..800436c 100644
--- a/v17/leanback/res/values-tr/strings.xml
+++ b/v17/leanback/res/values-tr/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Ara"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Arama yapmak için konuşun"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Ara: <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Aramak için konuşun: <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Konuşarak <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g> araması yapın"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"Oynat"</string>
diff --git a/v17/leanback/res/values-uz-rUZ/strings.xml b/v17/leanback/res/values-uz-rUZ/strings.xml
index 235d88f..c761244 100644
--- a/v17/leanback/res/values-uz-rUZ/strings.xml
+++ b/v17/leanback/res/values-uz-rUZ/strings.xml
@@ -28,7 +28,7 @@
<string name="lb_playback_controls_pause" msgid="6189521112079849518">"To‘xtatib turish"</string>
<string name="lb_playback_controls_fast_forward" msgid="8569951318244687220">"Oldinga o‘tkazish"</string>
<string name="lb_playback_controls_fast_forward_multiplier" msgid="1058753672110224526">"%1$dX tezlikda oldinga o‘tkazish"</string>
- <string name="lb_playback_controls_rewind" msgid="2227196334132350684">"Orqaga qaytarish"</string>
+ <string name="lb_playback_controls_rewind" msgid="2227196334132350684">"Orqaga o‘tkazish"</string>
<string name="lb_playback_controls_rewind_multiplier" msgid="1640629531440849942">"%1$dX tezlikda orqaga qaytarish"</string>
<string name="lb_playback_controls_skip_next" msgid="2946499493161095772">"Keyingisiga o‘tish"</string>
<string name="lb_playback_controls_skip_previous" msgid="2326801832933178348">"Avvalgisiga qaytish"</string>
diff --git a/v17/leanback/res/values-vi/strings.xml b/v17/leanback/res/values-vi/strings.xml
index 201d137..baf1c44 100644
--- a/v17/leanback/res/values-vi/strings.xml
+++ b/v17/leanback/res/values-vi/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"Tìm kiếm"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Nói để tìm kiếm"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Tìm kiếm <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Nói để tìm kiếm <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Nói để tìm kiếm trên <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$dX"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$dX"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"Phát"</string>
diff --git a/v17/leanback/res/values-zh-rCN/strings.xml b/v17/leanback/res/values-zh-rCN/strings.xml
index 276e7bb..17c52b6 100644
--- a/v17/leanback/res/values-zh-rCN/strings.xml
+++ b/v17/leanback/res/values-zh-rCN/strings.xml
@@ -21,7 +21,7 @@
<string name="lb_search_bar_hint" msgid="8325490927970116252">"搜索"</string>
<string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"说话即可开始搜索"</string>
<string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"搜索<xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
- <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"说话即可在<xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>中搜索"</string>
+ <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"说出搜索条件,在<xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>中进行搜索"</string>
<string name="lb_control_display_fast_forward_multiplier" msgid="4541442045214207774">"%1$d 倍速"</string>
<string name="lb_control_display_rewind_multiplier" msgid="3097220783222910245">"%1$d 倍速"</string>
<string name="lb_playback_controls_play" msgid="731953341987346903">"播放"</string>
diff --git a/v4/NOTICES.md b/v4/NOTICES.md
new file mode 100644
index 0000000..8665d5d
--- /dev/null
+++ b/v4/NOTICES.md
@@ -0,0 +1,12 @@
+# Change Log
+
+## [23.0.1](https://android.googlesource.com/platform/frameworks/support/+/refs/heads/master/v4/) (2015-09-24)
+
+**Breakage and deprecation notices:**
+
+- ExploreByTouchHelper
+ - Several public methods that are only meant to be called by app developers (and not internally by
+ the helper itself) became final. Any code that depends on overriding these methods should be
+ moved elsewhere.
+ - The concept of keyboard and accessibility focus have been clarified. As a result, the
+ getFocusedVirtualView() method has been deprecated and will be removed in a subsequent release.
diff --git a/v4/api/current.txt b/v4/api/current.txt
index 421c3a2..e478d52 100644
--- a/v4/api/current.txt
+++ b/v4/api/current.txt
@@ -3215,17 +3215,26 @@
public abstract class ExploreByTouchHelper extends android.support.v4.view.AccessibilityDelegateCompat {
ctor public ExploreByTouchHelper(android.view.View);
- method public boolean dispatchHoverEvent(android.view.MotionEvent);
- method public int getFocusedVirtualView();
+ method public final boolean clearKeyboardFocusForVirtualView(int);
+ method public final boolean dispatchHoverEvent(android.view.MotionEvent);
+ method public final boolean dispatchKeyEvent(android.view.KeyEvent);
+ method public final int getAccessibilityFocusedVirtualViewId();
+ method public deprecated int getFocusedVirtualView();
+ method public final int getKeyboardFocusedVirtualViewId();
method protected abstract int getVirtualViewAt(float, float);
method protected abstract void getVisibleVirtualViews(java.util.List<java.lang.Integer>);
- method public void invalidateRoot();
- method public void invalidateVirtualView(int);
+ method public final void invalidateRoot();
+ method public final void invalidateVirtualView(int);
+ method public final void invalidateVirtualView(int, int);
+ method public final void onFocusChanged(boolean, int, android.graphics.Rect);
method protected abstract boolean onPerformActionForVirtualView(int, int, android.os.Bundle);
- method protected abstract void onPopulateEventForVirtualView(int, android.view.accessibility.AccessibilityEvent);
- method public void onPopulateNodeForHost(android.support.v4.view.accessibility.AccessibilityNodeInfoCompat);
+ method protected void onPopulateEventForHost(android.view.accessibility.AccessibilityEvent);
+ method protected void onPopulateEventForVirtualView(int, android.view.accessibility.AccessibilityEvent);
+ method protected void onPopulateNodeForHost(android.support.v4.view.accessibility.AccessibilityNodeInfoCompat);
method protected abstract void onPopulateNodeForVirtualView(int, android.support.v4.view.accessibility.AccessibilityNodeInfoCompat);
- method public boolean sendEventForVirtualView(int, int);
+ method protected void onVirtualViewKeyboardFocusChanged(int, boolean);
+ method public final boolean requestKeyboardFocusForVirtualView(int);
+ method public final boolean sendEventForVirtualView(int, int);
field public static final int HOST_ID = -1; // 0xffffffff
field public static final int INVALID_ID = -2147483648; // 0x80000000
}
diff --git a/v4/api21/android/support/v4/app/FragmentTransitionCompat21.java b/v4/api21/android/support/v4/app/FragmentTransitionCompat21.java
index ddcff2e..37c4b97 100644
--- a/v4/api21/android/support/v4/app/FragmentTransitionCompat21.java
+++ b/v4/api21/android/support/v4/app/FragmentTransitionCompat21.java
@@ -92,6 +92,36 @@
return transitionSet;
}
+ private static void excludeViews(Transition transition, Transition fromTransition,
+ ArrayList<View> views, boolean exclude) {
+ if (transition != null) {
+ final int viewCount = fromTransition == null ? 0 : views.size();
+ for (int i = 0; i < viewCount; i++) {
+ transition.excludeTarget(views.get(i), exclude);
+ }
+ }
+ }
+
+ /**
+ * Exclude (or remove the exclude) of shared element views from the enter and exit transitions.
+ *
+ * @param enterTransitionObj The enter transition
+ * @param exitTransitionObj The exit transition
+ * @param sharedElementTransitionObj The shared element transition
+ * @param views The shared element target views.
+ * @param exclude <code>true</code> to exclude or <code>false</code> to remove the excluded
+ * views.
+ */
+ public static void excludeSharedElementViews(Object enterTransitionObj,
+ Object exitTransitionObj, Object sharedElementTransitionObj, ArrayList<View> views,
+ boolean exclude) {
+ Transition enterTransition = (Transition) enterTransitionObj;
+ Transition exitTransition = (Transition) exitTransitionObj;
+ Transition sharedElementTransition = (Transition) sharedElementTransitionObj;
+ excludeViews(enterTransition, sharedElementTransition, views, exclude);
+ excludeViews(exitTransition, sharedElementTransition, views, exclude);
+ }
+
/**
* Prepares the enter transition by adding a non-existent view to the transition's target list
* and setting it epicenter callback. By adding a non-existent view to the target list,
@@ -104,35 +134,42 @@
* capturing the final state of the Transition.</p>
*/
public static void addTransitionTargets(Object enterTransitionObject,
- Object sharedElementTransitionObject, final View container,
+ Object sharedElementTransitionObject, Object exitTransitionObject, final View container,
final ViewRetriever inFragment, final View nonExistentView,
EpicenterView epicenterView, final Map<String, String> nameOverrides,
- final ArrayList<View> enteringViews, final Map<String, View> namedViews,
- final Map<String, View> renamedViews, final ArrayList<View> sharedElementTargets) {
+ final ArrayList<View> enteringViews, final ArrayList<View> exitingViews,
+ final Map<String, View> namedViews, final Map<String, View> renamedViews,
+ final ArrayList<View> sharedElementTargets) {
+ final Transition enterTransition = (Transition) enterTransitionObject;
+ final Transition exitTransition = (Transition) exitTransitionObject;
+ final Transition sharedElementTransition = (Transition) sharedElementTransitionObject;
+ excludeViews(enterTransition, exitTransition, exitingViews, true);
if (enterTransitionObject != null || sharedElementTransitionObject != null) {
- final Transition enterTransition = (Transition) enterTransitionObject;
if (enterTransition != null) {
enterTransition.addTarget(nonExistentView);
}
if (sharedElementTransitionObject != null) {
- setSharedElementTargets(sharedElementTransitionObject, nonExistentView,
+ setSharedElementTargets(sharedElementTransition, nonExistentView,
namedViews, sharedElementTargets);
+ excludeViews(enterTransition, sharedElementTransition, sharedElementTargets, true);
+ excludeViews(exitTransition, sharedElementTransition, sharedElementTargets, true);
}
- if (inFragment != null) {
- container.getViewTreeObserver().addOnPreDrawListener(
- new ViewTreeObserver.OnPreDrawListener() {
- public boolean onPreDraw() {
- container.getViewTreeObserver().removeOnPreDrawListener(this);
- if (enterTransition != null) {
- enterTransition.removeTarget(nonExistentView);
- }
+ container.getViewTreeObserver().addOnPreDrawListener(
+ new ViewTreeObserver.OnPreDrawListener() {
+ public boolean onPreDraw() {
+ container.getViewTreeObserver().removeOnPreDrawListener(this);
+ if (enterTransition != null) {
+ enterTransition.removeTarget(nonExistentView);
+ }
+ if (inFragment != null) {
View fragmentView = inFragment.getView();
if (fragmentView != null) {
if (!nameOverrides.isEmpty()) {
findNamedViews(renamedViews, fragmentView);
renamedViews.keySet().retainAll(nameOverrides.values());
- for (Map.Entry<String, String> entry : nameOverrides.entrySet()) {
+ for (Map.Entry<String, String> entry : nameOverrides
+ .entrySet()) {
String to = entry.getValue();
View view = renamedViews.get(to);
if (view != null) {
@@ -148,10 +185,12 @@
addTargets(enterTransition, enteringViews);
}
}
- return true;
}
- });
- }
+ excludeViews(exitTransition, enterTransition, enteringViews, true);
+
+ return true;
+ }
+ });
setSharedElementEpicenter(enterTransition, epicenterView);
}
}
@@ -355,9 +394,15 @@
sceneRoot.getViewTreeObserver().removeOnPreDrawListener(this);
if (enterTransition != null) {
removeTargets(enterTransition, enteringViews);
+ excludeViews(enterTransition, exitTransition, exitingViews, false);
+ excludeViews(enterTransition, sharedElementTransition, sharedElementTargets,
+ false);
}
if (exitTransition != null) {
removeTargets(exitTransition, exitingViews);
+ excludeViews(exitTransition, enterTransition, enteringViews, false);
+ excludeViews(exitTransition, sharedElementTransition, sharedElementTargets,
+ false);
}
if (sharedElementTransition != null) {
removeTargets(sharedElementTransition, sharedElementTargets);
diff --git a/v4/java/android/support/v4/app/ActivityCompat.java b/v4/java/android/support/v4/app/ActivityCompat.java
index 0926d49..4e699d4 100644
--- a/v4/java/android/support/v4/app/ActivityCompat.java
+++ b/v4/java/android/support/v4/app/ActivityCompat.java
@@ -300,6 +300,12 @@
* When checking whether you have a permission you should use {@link
* #checkSelfPermission(android.content.Context, String)}.
* </p>
+ * <p>
+ * Calling this API for permissions already granted to your app would show UI
+ * to the user to decided whether the app can still hold these permissions. This
+ * can be useful if the way your app uses the data guarded by the permissions
+ * changes significantly.
+ * </p>
*
* @param activity The target activity.
* @param permissions The requested permissions.
diff --git a/v4/java/android/support/v4/app/BackStackRecord.java b/v4/java/android/support/v4/app/BackStackRecord.java
index 24cf866..a187276 100644
--- a/v4/java/android/support/v4/app/BackStackRecord.java
+++ b/v4/java/android/support/v4/app/BackStackRecord.java
@@ -1158,7 +1158,8 @@
callback.onSharedElementStart(names, views, null);
}
prepareSharedElementTransition(state, sceneRoot, sharedElementTransition,
- inFragment, outFragment, isBack, sharedElementTargets);
+ inFragment, outFragment, isBack, sharedElementTargets, enterTransition,
+ exitTransition);
}
}
if (enterTransition == null && sharedElementTransition == null &&
@@ -1205,9 +1206,9 @@
if (transition != null) {
FragmentTransitionCompat21.addTransitionTargets(enterTransition,
- sharedElementTransition, sceneRoot, viewRetriever, state.nonExistentView,
- state.enteringEpicenterView, state.nameOverrides, enteringViews,
- namedViews, renamedViews, sharedElementTargets);
+ sharedElementTransition, exitTransition, sceneRoot, viewRetriever,
+ state.nonExistentView, state.enteringEpicenterView, state.nameOverrides,
+ enteringViews, exitingViews, namedViews, renamedViews, sharedElementTargets);
excludeHiddenFragmentsAfterEnter(sceneRoot, state, containerId, transition);
// We want to exclude hidden views later, so we need a non-null list in the
@@ -1229,16 +1230,22 @@
private void prepareSharedElementTransition(final TransitionState state, final View sceneRoot,
final Object sharedElementTransition, final Fragment inFragment,
final Fragment outFragment, final boolean isBack,
- final ArrayList<View> sharedElementTargets) {
- sceneRoot.getViewTreeObserver().addOnPreDrawListener(
- new ViewTreeObserver.OnPreDrawListener() {
- @Override
- public boolean onPreDraw() {
- sceneRoot.getViewTreeObserver().removeOnPreDrawListener(this);
+ final ArrayList<View> sharedElementTargets, final Object enterTransition,
+ final Object exitTransition) {
+ if (sharedElementTransition != null) {
+ sceneRoot.getViewTreeObserver().addOnPreDrawListener(
+ new ViewTreeObserver.OnPreDrawListener() {
+ @Override
+ public boolean onPreDraw() {
+ sceneRoot.getViewTreeObserver().removeOnPreDrawListener(this);
- if (sharedElementTransition != null) {
+ // Remove the exclude for the shared elements from the exiting fragment.
FragmentTransitionCompat21.removeTargets(sharedElementTransition,
sharedElementTargets);
+ // keep the nonExistentView as excluded so the list doesn't get emptied
+ sharedElementTargets.remove(state.nonExistentView);
+ FragmentTransitionCompat21.excludeSharedElementViews(enterTransition,
+ exitTransition, sharedElementTransition, sharedElementTargets, false);
sharedElementTargets.clear();
ArrayMap<String, View> namedViews = mapSharedElementsIn(
@@ -1250,11 +1257,14 @@
callSharedElementEnd(state, inFragment, outFragment, isBack,
namedViews);
- }
- return true;
- }
- });
+ // Exclude the shared elements from the entering fragment.
+ FragmentTransitionCompat21.excludeSharedElementViews(enterTransition,
+ exitTransition, sharedElementTransition, sharedElementTargets, true);
+ return true;
+ }
+ });
+ }
}
private void callSharedElementEnd(TransitionState state, Fragment inFragment,
diff --git a/v4/java/android/support/v4/app/Fragment.java b/v4/java/android/support/v4/app/Fragment.java
index 79f21ff..68fe02f 100644
--- a/v4/java/android/support/v4/app/Fragment.java
+++ b/v4/java/android/support/v4/app/Fragment.java
@@ -59,6 +59,7 @@
final boolean mRetainInstance;
final boolean mDetached;
final Bundle mArguments;
+ final boolean mHidden;
Bundle mSavedFragmentState;
@@ -74,6 +75,7 @@
mRetainInstance = frag.mRetainInstance;
mDetached = frag.mDetached;
mArguments = frag.mArguments;
+ mHidden = frag.mHidden;
}
public FragmentState(Parcel in) {
@@ -86,6 +88,7 @@
mRetainInstance = in.readInt() != 0;
mDetached = in.readInt() != 0;
mArguments = in.readBundle();
+ mHidden = in.readInt() != 0;
mSavedFragmentState = in.readBundle();
}
@@ -113,6 +116,7 @@
mInstance.mTag = mTag;
mInstance.mRetainInstance = mRetainInstance;
mInstance.mDetached = mDetached;
+ mInstance.mHidden = mHidden;
mInstance.mFragmentManager = host.mFragmentManager;
if (FragmentManagerImpl.DEBUG) Log.v(FragmentManagerImpl.TAG,
@@ -135,6 +139,7 @@
dest.writeInt(mRetainInstance ? 1 : 0);
dest.writeInt(mDetached ? 1 : 0);
dest.writeBundle(mArguments);
+ dest.writeInt(mHidden? 1 : 0);
dest.writeBundle(mSavedFragmentState);
}
@@ -984,6 +989,12 @@
* android.content.Context#checkSelfPermission(String)}.
* </p>
* <p>
+ * Calling this API for permissions already granted to your app would show UI
+ * to the user to decided whether the app can still hold these permissions. This
+ * can be useful if the way your app uses the data guarded by the permissions
+ * changes significantly.
+ * </p>
+ * <p>
* A sample permissions request looks like this:
* </p>
* <code><pre><p>
diff --git a/v4/java/android/support/v4/util/SimpleArrayMap.java b/v4/java/android/support/v4/util/SimpleArrayMap.java
index 1b1577a..c7d4b5d 100644
--- a/v4/java/android/support/v4/util/SimpleArrayMap.java
+++ b/v4/java/android/support/v4/util/SimpleArrayMap.java
@@ -522,17 +522,42 @@
/**
* {@inheritDoc}
*
- * <p>This implementation returns false if the object is not a map, or
- * if the maps have different sizes. Otherwise, for each key in this map,
- * values of both maps are compared. If the values for any key are not
- * equal, the method returns false, otherwise it returns true.
+ * <p>This implementation returns false if the object is not a Map or
+ * SimpleArrayMap, or if the maps have different sizes. Otherwise, for each
+ * key in this map, values of both maps are compared. If the values for any
+ * key are not equal, the method returns false, otherwise it returns true.
*/
@Override
public boolean equals(Object object) {
if (this == object) {
return true;
}
- if (object instanceof Map) {
+ if (object instanceof SimpleArrayMap) {
+ SimpleArrayMap<?, ?> map = (SimpleArrayMap<?, ?>) object;
+ if (size() != map.size()) {
+ return false;
+ }
+
+ try {
+ for (int i=0; i<mSize; i++) {
+ K key = keyAt(i);
+ V mine = valueAt(i);
+ Object theirs = map.get(key);
+ if (mine == null) {
+ if (theirs != null || !map.containsKey(key)) {
+ return false;
+ }
+ } else if (!mine.equals(theirs)) {
+ return false;
+ }
+ }
+ } catch (NullPointerException ignored) {
+ return false;
+ } catch (ClassCastException ignored) {
+ return false;
+ }
+ return true;
+ } else if (object instanceof Map) {
Map<?, ?> map = (Map<?, ?>) object;
if (size() != map.size()) {
return false;
diff --git a/v4/java/android/support/v4/view/AccessibilityDelegateCompat.java b/v4/java/android/support/v4/view/AccessibilityDelegateCompat.java
index 0ea755e..4d0281e 100644
--- a/v4/java/android/support/v4/view/AccessibilityDelegateCompat.java
+++ b/v4/java/android/support/v4/view/AccessibilityDelegateCompat.java
@@ -27,6 +27,18 @@
/**
* Helper for accessing {@link View.AccessibilityDelegate} introduced after
* API level 4 in a backwards compatible fashion.
+ * <p>
+ * <strong>Note:</strong> On platform versions prior to
+ * {@link android.os.Build.VERSION_CODES#M API 23}, delegate methods on
+ * views in the {@code android.widget.*} package are called <i>before</i>
+ * host methods. This prevents certain properties such as class name from
+ * being modified by overriding
+ * {@link AccessibilityDelegateCompat#onInitializeAccessibilityNodeInfo(View, AccessibilityNodeInfoCompat)},
+ * as any changes will be overwritten by the host class.
+ * <p>
+ * Starting in {@link android.os.Build.VERSION_CODES#M API 23}, delegate
+ * methods are called <i>after</i> host methods, which all properties to be
+ * modified without being overwritten by the host class.
*/
public class AccessibilityDelegateCompat {
diff --git a/v4/java/android/support/v4/view/ViewCompat.java b/v4/java/android/support/v4/view/ViewCompat.java
index b88d7e5..284a8b6 100644
--- a/v4/java/android/support/v4/view/ViewCompat.java
+++ b/v4/java/android/support/v4/view/ViewCompat.java
@@ -53,6 +53,21 @@
public class ViewCompat {
private static final String TAG = "ViewCompat";
+ /** @hide */
+ @IntDef({View.FOCUS_LEFT, View.FOCUS_UP, View.FOCUS_RIGHT, View.FOCUS_DOWN,
+ View.FOCUS_FORWARD, View.FOCUS_BACKWARD})
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface FocusDirection {}
+
+ /** @hide */
+ @IntDef({View.FOCUS_LEFT, View.FOCUS_UP, View.FOCUS_RIGHT, View.FOCUS_DOWN})
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface FocusRealDirection {}
+
+ /** @hide */
+ @IntDef({View.FOCUS_FORWARD, View.FOCUS_BACKWARD})
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface FocusRelativeDirection {}
/** @hide */
@IntDef({OVER_SCROLL_ALWAYS, OVER_SCROLL_IF_CONTENT_SCROLLS, OVER_SCROLL_NEVER})
@@ -293,36 +308,36 @@
/**
* Scroll indicator direction for the top edge of the view.
*
- * @see #setScrollIndicators(int)
- * @see #setScrollIndicators(int, int)
- * @see #getScrollIndicators()
+ * @see #setScrollIndicators(View, int)
+ * @see #setScrollIndicators(View, int, int)
+ * @see #getScrollIndicators(View)
*/
public static final int SCROLL_INDICATOR_TOP = 0x1;
/**
* Scroll indicator direction for the bottom edge of the view.
*
- * @see #setScrollIndicators(int)
- * @see #setScrollIndicators(int, int)
- * @see #getScrollIndicators()
+ * @see #setScrollIndicators(View, int)
+ * @see #setScrollIndicators(View, int, int)
+ * @see #getScrollIndicators(View)
*/
public static final int SCROLL_INDICATOR_BOTTOM = 0x2;
/**
* Scroll indicator direction for the left edge of the view.
*
- * @see #setScrollIndicators(int)
- * @see #setScrollIndicators(int, int)
- * @see #getScrollIndicators()
+ * @see #setScrollIndicators(View, int)
+ * @see #setScrollIndicators(View, int, int)
+ * @see #getScrollIndicators(View)
*/
public static final int SCROLL_INDICATOR_LEFT = 0x4;
/**
* Scroll indicator direction for the right edge of the view.
*
- * @see #setScrollIndicators(int)
- * @see #setScrollIndicators(int, int)
- * @see #getScrollIndicators()
+ * @see #setScrollIndicators(View, int)
+ * @see #setScrollIndicators(View, int, int)
+ * @see #getScrollIndicators(View)
*/
public static final int SCROLL_INDICATOR_RIGHT = 0x8;
@@ -338,93 +353,93 @@
/**
* Scroll indicator direction for the ending edge of the view.
*
- * @see #setScrollIndicators(int)
- * @see #setScrollIndicators(int, int)
- * @see #getScrollIndicators()
+ * @see #setScrollIndicators(View, int)
+ * @see #setScrollIndicators(View, int, int)
+ * @see #getScrollIndicators(View)
*/
public static final int SCROLL_INDICATOR_END = 0x20;
interface ViewCompatImpl {
- public boolean canScrollHorizontally(View v, int direction);
- public boolean canScrollVertically(View v, int direction);
- public int getOverScrollMode(View v);
- public void setOverScrollMode(View v, int mode);
- public void onInitializeAccessibilityEvent(View v, AccessibilityEvent event);
- public void onPopulateAccessibilityEvent(View v, AccessibilityEvent event);
- public void onInitializeAccessibilityNodeInfo(View v, AccessibilityNodeInfoCompat info);
- public void setAccessibilityDelegate(View v, @Nullable AccessibilityDelegateCompat delegate);
- public boolean hasAccessibilityDelegate(View v);
- public boolean hasTransientState(View view);
- public void setHasTransientState(View view, boolean hasTransientState);
- public void postInvalidateOnAnimation(View view);
- public void postInvalidateOnAnimation(View view, int left, int top, int right, int bottom);
- public void postOnAnimation(View view, Runnable action);
- public void postOnAnimationDelayed(View view, Runnable action, long delayMillis);
- public int getImportantForAccessibility(View view);
- public void setImportantForAccessibility(View view, int mode);
- public boolean isImportantForAccessibility(View view);
- public boolean performAccessibilityAction(View view, int action, Bundle arguments);
- public AccessibilityNodeProviderCompat getAccessibilityNodeProvider(View view);
- public float getAlpha(View view);
- public void setLayerType(View view, int layerType, Paint paint);
- public int getLayerType(View view);
- public int getLabelFor(View view);
- public void setLabelFor(View view, int id);
- public void setLayerPaint(View view, Paint paint);
- public int getLayoutDirection(View view);
- public void setLayoutDirection(View view, int layoutDirection);
- public ViewParent getParentForAccessibility(View view);
- public boolean isOpaque(View view);
- public int resolveSizeAndState(int size, int measureSpec, int childMeasuredState);
- public int getMeasuredWidthAndState(View view);
- public int getMeasuredHeightAndState(View view);
- public int getMeasuredState(View view);
- public int getAccessibilityLiveRegion(View view);
- public void setAccessibilityLiveRegion(View view, int mode);
- public int getPaddingStart(View view);
- public int getPaddingEnd(View view);
- public void setPaddingRelative(View view, int start, int top, int end, int bottom);
- public void dispatchStartTemporaryDetach(View view);
- public void dispatchFinishTemporaryDetach(View view);
- public float getX(View view);
- public float getY(View view);
- public float getRotation(View view);
- public float getRotationX(View view);
- public float getRotationY(View view);
- public float getScaleX(View view);
- public float getScaleY(View view);
- public float getTranslationX(View view);
- public float getTranslationY(View view);
- public int getMinimumWidth(View view);
- public int getMinimumHeight(View view);
- public ViewPropertyAnimatorCompat animate(View view);
- public void setRotation(View view, float value);
- public void setRotationX(View view, float value);
- public void setRotationY(View view, float value);
- public void setScaleX(View view, float value);
- public void setScaleY(View view, float value);
- public void setTranslationX(View view, float value);
- public void setTranslationY(View view, float value);
- public void setX(View view, float value);
- public void setY(View view, float value);
- public void setAlpha(View view, float value);
- public void setPivotX(View view, float value);
- public void setPivotY(View view, float value);
- public float getPivotX(View view);
- public float getPivotY(View view);
- public void setElevation(View view, float elevation);
- public float getElevation(View view);
- public void setTranslationZ(View view, float translationZ);
- public float getTranslationZ(View view);
- public void setClipBounds(View view, Rect clipBounds);
- public Rect getClipBounds(View view);
- public void setTransitionName(View view, String transitionName);
- public String getTransitionName(View view);
- public int getWindowSystemUiVisibility(View view);
- public void requestApplyInsets(View view);
- public void setChildrenDrawingOrderEnabled(ViewGroup viewGroup, boolean enabled);
- public boolean getFitsSystemWindows(View view);
- public boolean hasOverlappingRendering(View view);
+ boolean canScrollHorizontally(View v, int direction);
+ boolean canScrollVertically(View v, int direction);
+ int getOverScrollMode(View v);
+ void setOverScrollMode(View v, int mode);
+ void onInitializeAccessibilityEvent(View v, AccessibilityEvent event);
+ void onPopulateAccessibilityEvent(View v, AccessibilityEvent event);
+ void onInitializeAccessibilityNodeInfo(View v, AccessibilityNodeInfoCompat info);
+ void setAccessibilityDelegate(View v, @Nullable AccessibilityDelegateCompat delegate);
+ boolean hasAccessibilityDelegate(View v);
+ boolean hasTransientState(View view);
+ void setHasTransientState(View view, boolean hasTransientState);
+ void postInvalidateOnAnimation(View view);
+ void postInvalidateOnAnimation(View view, int left, int top, int right, int bottom);
+ void postOnAnimation(View view, Runnable action);
+ void postOnAnimationDelayed(View view, Runnable action, long delayMillis);
+ int getImportantForAccessibility(View view);
+ void setImportantForAccessibility(View view, int mode);
+ boolean isImportantForAccessibility(View view);
+ boolean performAccessibilityAction(View view, int action, Bundle arguments);
+ AccessibilityNodeProviderCompat getAccessibilityNodeProvider(View view);
+ float getAlpha(View view);
+ void setLayerType(View view, int layerType, Paint paint);
+ int getLayerType(View view);
+ int getLabelFor(View view);
+ void setLabelFor(View view, int id);
+ void setLayerPaint(View view, Paint paint);
+ int getLayoutDirection(View view);
+ void setLayoutDirection(View view, int layoutDirection);
+ ViewParent getParentForAccessibility(View view);
+ boolean isOpaque(View view);
+ int resolveSizeAndState(int size, int measureSpec, int childMeasuredState);
+ int getMeasuredWidthAndState(View view);
+ int getMeasuredHeightAndState(View view);
+ int getMeasuredState(View view);
+ int getAccessibilityLiveRegion(View view);
+ void setAccessibilityLiveRegion(View view, int mode);
+ int getPaddingStart(View view);
+ int getPaddingEnd(View view);
+ void setPaddingRelative(View view, int start, int top, int end, int bottom);
+ void dispatchStartTemporaryDetach(View view);
+ void dispatchFinishTemporaryDetach(View view);
+ float getX(View view);
+ float getY(View view);
+ float getRotation(View view);
+ float getRotationX(View view);
+ float getRotationY(View view);
+ float getScaleX(View view);
+ float getScaleY(View view);
+ float getTranslationX(View view);
+ float getTranslationY(View view);
+ int getMinimumWidth(View view);
+ int getMinimumHeight(View view);
+ ViewPropertyAnimatorCompat animate(View view);
+ void setRotation(View view, float value);
+ void setRotationX(View view, float value);
+ void setRotationY(View view, float value);
+ void setScaleX(View view, float value);
+ void setScaleY(View view, float value);
+ void setTranslationX(View view, float value);
+ void setTranslationY(View view, float value);
+ void setX(View view, float value);
+ void setY(View view, float value);
+ void setAlpha(View view, float value);
+ void setPivotX(View view, float value);
+ void setPivotY(View view, float value);
+ float getPivotX(View view);
+ float getPivotY(View view);
+ void setElevation(View view, float elevation);
+ float getElevation(View view);
+ void setTranslationZ(View view, float translationZ);
+ float getTranslationZ(View view);
+ void setClipBounds(View view, Rect clipBounds);
+ Rect getClipBounds(View view);
+ void setTransitionName(View view, String transitionName);
+ String getTransitionName(View view);
+ int getWindowSystemUiVisibility(View view);
+ void requestApplyInsets(View view);
+ void setChildrenDrawingOrderEnabled(ViewGroup viewGroup, boolean enabled);
+ boolean getFitsSystemWindows(View view);
+ boolean hasOverlappingRendering(View view);
void setFitsSystemWindows(View view, boolean fitSystemWindows);
void jumpDrawablesToCurrentState(View v);
void setOnApplyWindowInsetsListener(View view, OnApplyWindowInsetsListener listener);
@@ -450,12 +465,12 @@
boolean dispatchNestedPreFling(View view, float velocityX, float velocityY);
boolean isLaidOut(View view);
int combineMeasuredStates(int curState, int newState);
- public float getZ(View view);
- public boolean isAttachedToWindow(View view);
- public boolean hasOnClickListeners(View view);
- public void setScrollIndicators(View view, int indicators);
- public void setScrollIndicators(View view, int indicators, int mask);
- public int getScrollIndicators(View view);
+ float getZ(View view);
+ boolean isAttachedToWindow(View view);
+ boolean hasOnClickListeners(View view);
+ void setScrollIndicators(View view, int indicators);
+ void setScrollIndicators(View view, int indicators, int mask);
+ int getScrollIndicators(View view);
}
static class BaseViewCompatImpl implements ViewCompatImpl {
@@ -1297,8 +1312,7 @@
@Override
public ViewPropertyAnimatorCompat animate(View view) {
if (mViewPropertyAnimatorCompatMap == null) {
- mViewPropertyAnimatorCompatMap =
- new WeakHashMap<View, ViewPropertyAnimatorCompat>();
+ mViewPropertyAnimatorCompatMap = new WeakHashMap<>();
}
ViewPropertyAnimatorCompat vpa = mViewPropertyAnimatorCompatMap.get(view);
if (vpa == null) {
@@ -1706,6 +1720,7 @@
*/
@OverScroll
public static int getOverScrollMode(View v) {
+ //noinspection ResourceType
return IMPL.getOverScrollMode(v);
}
@@ -1742,10 +1757,9 @@
* event.getText().add(selectedDateUtterance);
* }</pre>
* <p>
- * If an {@link android.view.View.AccessibilityDelegate} has been specified via calling
- * {@link View#setAccessibilityDelegate(android.view.View.AccessibilityDelegate)} its
- * {@link android.view.View.AccessibilityDelegate#onPopulateAccessibilityEvent(View,
- * AccessibilityEvent)}
+ * If an {@link AccessibilityDelegateCompat} has been specified via calling
+ * {@link ViewCompat#setAccessibilityDelegate(View, AccessibilityDelegateCompat)} its
+ * {@link AccessibilityDelegateCompat#onPopulateAccessibilityEvent(View, AccessibilityEvent)}
* is responsible for handling this call.
* </p>
* <p class="note"><strong>Note:</strong> Always call the super implementation before adding
@@ -1775,15 +1789,10 @@
* event.setPassword(true);
* }</pre>
* <p>
- * If an {@link android.view.View.AccessibilityDelegate} has been specified via calling
- * {@link View#setAccessibilityDelegate(android.view.View.AccessibilityDelegate)} its
- * {@link android.view.View.AccessibilityDelegate#onInitializeAccessibilityEvent(View,
- * AccessibilityEvent)}
+ * If an {@link AccessibilityDelegateCompat} has been specified via calling
+ * {@link ViewCompat#setAccessibilityDelegate(View, AccessibilityDelegateCompat)}, its
+ * {@link AccessibilityDelegateCompat#onInitializeAccessibilityEvent(View, AccessibilityEvent)}
* is responsible for handling this call.
- * </p>
- * <p class="note"><strong>Note:</strong> Always call the super implementation before adding
- * information to the event, in case the default implementation has basic information to add.
- * </p>
*
* @param v The View against which to invoke the method.
* @param event The event to initialize.
@@ -1796,33 +1805,27 @@
}
/**
- * Initializes an {@link android.view.accessibility.AccessibilityNodeInfo} with information
+ * Initializes an {@link AccessibilityNodeInfoCompat} with information
* about this view. The base implementation sets:
* <ul>
- * <li>{@link android.view.accessibility.AccessibilityNodeInfo#setParent(View)},</li>
- * <li>{@link android.view.accessibility.AccessibilityNodeInfo#setBoundsInParent(Rect)},</li>
- * <li>{@link android.view.accessibility.AccessibilityNodeInfo#setBoundsInScreen(Rect)},</li>
- * <li>{@link android.view.accessibility.AccessibilityNodeInfo#setPackageName(CharSequence)},</li>
- * <li>{@link android.view.accessibility.AccessibilityNodeInfo#setClassName(CharSequence)},</li>
- * <li>{@link android.view.accessibility.AccessibilityNodeInfo#setContentDescription(CharSequence)},</li>
- * <li>{@link android.view.accessibility.AccessibilityNodeInfo#setEnabled(boolean)},</li>
- * <li>{@link android.view.accessibility.AccessibilityNodeInfo#setClickable(boolean)},</li>
- * <li>{@link android.view.accessibility.AccessibilityNodeInfo#setFocusable(boolean)},</li>
- * <li>{@link android.view.accessibility.AccessibilityNodeInfo#setFocused(boolean)},</li>
- * <li>{@link android.view.accessibility.AccessibilityNodeInfo#setLongClickable(boolean)},</li>
- * <li>{@link android.view.accessibility.AccessibilityNodeInfo#setSelected(boolean)},</li>
+ * <li>{@link AccessibilityNodeInfoCompat#setParent(View)},</li>
+ * <li>{@link AccessibilityNodeInfoCompat#setBoundsInParent(Rect)},</li>
+ * <li>{@link AccessibilityNodeInfoCompat#setBoundsInScreen(Rect)},</li>
+ * <li>{@link AccessibilityNodeInfoCompat#setPackageName(CharSequence)},</li>
+ * <li>{@link AccessibilityNodeInfoCompat#setClassName(CharSequence)},</li>
+ * <li>{@link AccessibilityNodeInfoCompat#setContentDescription(CharSequence)},</li>
+ * <li>{@link AccessibilityNodeInfoCompat#setEnabled(boolean)},</li>
+ * <li>{@link AccessibilityNodeInfoCompat#setClickable(boolean)},</li>
+ * <li>{@link AccessibilityNodeInfoCompat#setFocusable(boolean)},</li>
+ * <li>{@link AccessibilityNodeInfoCompat#setFocused(boolean)},</li>
+ * <li>{@link AccessibilityNodeInfoCompat#setLongClickable(boolean)},</li>
+ * <li>{@link AccessibilityNodeInfoCompat#setSelected(boolean)},</li>
* </ul>
* <p>
- * Subclasses should override this method, call the super implementation,
- * and set additional attributes.
- * </p>
- * <p>
- * If an {@link android.view.View.AccessibilityDelegate} has been specified via calling
- * {@link View#setAccessibilityDelegate(android.view.View.AccessibilityDelegate)} its
- * {@link android.view.View.AccessibilityDelegate#onInitializeAccessibilityNodeInfo(View,
- * android.view.accessibility.AccessibilityNodeInfo)}
- * is responsible for handling this call.
- * </p>
+ * If an {@link AccessibilityDelegateCompat} has been specified via calling
+ * {@link ViewCompat#setAccessibilityDelegate(View, AccessibilityDelegateCompat)}, its
+ * {@link AccessibilityDelegateCompat#onInitializeAccessibilityNodeInfo(View, AccessibilityNodeInfoCompat)}
+ * method is responsible for handling this call.
*
* @param v The View against which to invoke the method.
* @param info The instance to initialize.
@@ -1832,15 +1835,27 @@
}
/**
- * Sets a delegate for implementing accessibility support via compositon as
- * opposed to inheritance. The delegate's primary use is for implementing
- * backwards compatible widgets. For more details see
- * {@link android.view.View.AccessibilityDelegate}.
+ * Sets a delegate for implementing accessibility support via composition
+ * (as opposed to inheritance). For more details, see
+ * {@link AccessibilityDelegateCompat}.
+ * <p>
+ * On platform versions prior to API 14, this method is a no-op.
+ * <p>
+ * <strong>Note:</strong> On platform versions prior to
+ * {@link android.os.Build.VERSION_CODES#M API 23}, delegate methods on
+ * views in the {@code android.widget.*} package are called <i>before</i>
+ * host methods. This prevents certain properties such as class name from
+ * being modified by overriding
+ * {@link AccessibilityDelegateCompat#onInitializeAccessibilityNodeInfo(View, AccessibilityNodeInfoCompat)},
+ * as any changes will be overwritten by the host class.
+ * <p>
+ * Starting in {@link android.os.Build.VERSION_CODES#M API 23}, delegate
+ * methods are called <i>after</i> host methods, which all properties to be
+ * modified without being overwritten by the host class.
*
- * @param v The View against which to invoke the method.
- * @param delegate The delegate instance.
- *
- * @see android.view.View.AccessibilityDelegate
+ * @param delegate the object to which accessibility method calls should be
+ * delegated
+ * @see AccessibilityDelegateCompat
*/
public static void setAccessibilityDelegate(View v, AccessibilityDelegateCompat delegate) {
IMPL.setAccessibilityDelegate(v, delegate);
@@ -1956,6 +1971,7 @@
*/
@ImportantForAccessibility
public static int getImportantForAccessibility(View view) {
+ //noinspection ResourceType
return IMPL.getImportantForAccessibility(view);
}
@@ -2063,13 +2079,6 @@
* {@link #LAYER_TYPE_SOFTWARE software} and {@link #LAYER_TYPE_HARDWARE hardware}
* for more information on when and how to use layers.</p>
*
- * @param layerType The ype of layer to use with this view, must be one of
- * {@link #LAYER_TYPE_NONE}, {@link #LAYER_TYPE_SOFTWARE} or
- * {@link #LAYER_TYPE_HARDWARE}
- * @param paint The paint used to compose the layer. This argument is optional
- * and can be null. It is ignored when the layer type is
- * {@link #LAYER_TYPE_NONE}
- *
* @param view View to set the layer type for
* @param layerType The type of layer to use with this view, must be one of
* {@link #LAYER_TYPE_NONE}, {@link #LAYER_TYPE_SOFTWARE} or
@@ -2100,6 +2109,7 @@
*/
@LayerType
public static int getLayerType(View view) {
+ //noinspection ResourceType
return IMPL.getLayerType(view);
}
@@ -2171,6 +2181,7 @@
*/
@ResolvedLayoutDirectionMode
public static int getLayoutDirection(View view) {
+ //noinspection ResourceType
return IMPL.getLayoutDirection(view);
}
@@ -2297,6 +2308,7 @@
*/
@AccessibilityLiveRegion
public static int getAccessibilityLiveRegion(View view) {
+ //noinspection ResourceType
return IMPL.getAccessibilityLiveRegion(view);
}
diff --git a/v4/java/android/support/v4/widget/ExploreByTouchHelper.java b/v4/java/android/support/v4/widget/ExploreByTouchHelper.java
index 64f6634..c7a085d 100644
--- a/v4/java/android/support/v4/widget/ExploreByTouchHelper.java
+++ b/v4/java/android/support/v4/widget/ExploreByTouchHelper.java
@@ -19,7 +19,10 @@
import android.content.Context;
import android.graphics.Rect;
import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
import android.support.v4.view.AccessibilityDelegateCompat;
+import android.support.v4.view.KeyEventCompat;
import android.support.v4.view.MotionEventCompat;
import android.support.v4.view.ViewCompat;
import android.support.v4.view.ViewParentCompat;
@@ -28,15 +31,23 @@
import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
import android.support.v4.view.accessibility.AccessibilityNodeProviderCompat;
import android.support.v4.view.accessibility.AccessibilityRecordCompat;
+import android.util.SparseArray;
+import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewParent;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
-import java.util.LinkedList;
+import java.util.ArrayList;
import java.util.List;
+import android.support.v4.view.ViewCompat.FocusDirection;
+import android.support.v4.view.ViewCompat.FocusRealDirection;
+
+import static android.support.v4.view.ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_AUTO;
+import static android.support.v4.view.ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_YES;
+
/**
* ExploreByTouchHelper is a utility class for implementing accessibility
* support in custom {@link View}s that represent a collection of View-like
@@ -47,8 +58,36 @@
* <p>
* Clients should override abstract methods on this class and attach it to the
* host view using {@link ViewCompat#setAccessibilityDelegate}:
- *
+ * <p>
* <pre>
+ * class MyCustomView extends View {
+ * private MyVirtualViewHelper mVirtualViewHelper;
+ *
+ * public MyCustomView(Context context, ...) {
+ * ...
+ * mVirtualViewHelper = new MyVirtualViewHelper(this);
+ * ViewCompat.setAccessibilityDelegate(this, mVirtualViewHelper);
+ * }
+ *
+ * @Override
+ * public boolean dispatchHoverEvent(MotionEvent event) {
+ * return mHelper.dispatchHoverEvent(this, event)
+ * || super.dispatchHoverEvent(event);
+ * }
+ *
+ * @Override
+ * public boolean dispatchKeyEvent(KeyEvent event) {
+ * return mHelper.dispatchKeyEvent(event)
+ * || super.dispatchKeyEvent(event);
+ * }
+ *
+ * @Override
+ * public boolean onFocusChanged(boolean gainFocus, int direction,
+ * Rect previouslyFocusedRect) {
+ * super.onFocusChanged(gainFocus, direction, previouslyFocusedRect);
+ * mHelper.onFocusChanged(gainFocus, direction, previouslyFocusedRect);
+ * }
+ * }
* mAccessHelper = new MyExploreByTouchHelper(someView);
* ViewCompat.setAccessibilityDelegate(someView, mAccessHelper);
* </pre>
@@ -61,7 +100,7 @@
public static final int HOST_ID = View.NO_ID;
/** Default class name used for virtual views. */
- private static final String DEFAULT_CLASS_NAME = View.class.getName();
+ private static final String DEFAULT_CLASS_NAME = "android.view.View";
// Temporary, reusable data structures.
private final Rect mTempScreenRect = new Rect();
@@ -69,70 +108,78 @@
private final Rect mTempVisibleRect = new Rect();
private final int[] mTempGlobalRect = new int[2];
+ /** Cache of accessibility nodes. This is populated on-demand. */
+ private final SparseArray<AccessibilityNodeInfoCompat> mCachedNodes = new SparseArray<>();
+
/** System accessibility manager, used to check state and send events. */
private final AccessibilityManager mManager;
/** View whose internal structure is exposed through this helper. */
- private final View mView;
+ private final View mHost;
- /** Node provider that handles creating nodes and performing actions. */
- private ExploreByTouchNodeProvider mNodeProvider;
+ /** Virtual node provider used to expose logical structure to services. */
+ private MyNodeProvider mNodeProvider;
- /** Virtual view id for the currently focused logical item. */
- private int mFocusedVirtualViewId = INVALID_ID;
+ /** Identifier for the virtual view that holds accessibility focus. */
+ private int mAccessibilityFocusedVirtualViewId = INVALID_ID;
- /** Virtual view id for the currently hovered logical item. */
+ /** Identifier for the virtual view that holds keyboard focus. */
+ private int mKeyboardFocusedVirtualViewId = INVALID_ID;
+
+ /** Identifier for the virtual view that is currently hovered. */
private int mHoveredVirtualViewId = INVALID_ID;
/**
- * Factory method to create a new {@link ExploreByTouchHelper}.
+ * Constructs a new helper that can expose a virtual view hierarchy for the
+ * specified host view.
*
- * @param forView View whose logical children are exposed by this helper.
+ * @param host view whose virtual view hierarchy is exposed by this helper
*/
- public ExploreByTouchHelper(View forView) {
- if (forView == null) {
+ public ExploreByTouchHelper(View host) {
+ if (host == null) {
throw new IllegalArgumentException("View may not be null");
}
- mView = forView;
- final Context context = forView.getContext();
+ mHost = host;
+
+ final Context context = host.getContext();
mManager = (AccessibilityManager) context.getSystemService(Context.ACCESSIBILITY_SERVICE);
+
+ // Host view must be focusable so that we can delegate to virtual
+ // views.
+ host.setFocusable(true);
+ if (ViewCompat.getImportantForAccessibility(host) == IMPORTANT_FOR_ACCESSIBILITY_AUTO) {
+ ViewCompat.setImportantForAccessibility(host, IMPORTANT_FOR_ACCESSIBILITY_YES);
+ }
}
- /**
- * Returns the {@link AccessibilityNodeProviderCompat} for this helper.
- *
- * @param host View whose logical children are exposed by this helper.
- * @return The accessibility node provider for this helper.
- */
@Override
public AccessibilityNodeProviderCompat getAccessibilityNodeProvider(View host) {
if (mNodeProvider == null) {
- mNodeProvider = new ExploreByTouchNodeProvider();
+ mNodeProvider = new MyNodeProvider();
}
return mNodeProvider;
}
/**
+ * Delegates hover events from the host view.
+ * <p>
* Dispatches hover {@link MotionEvent}s to the virtual view hierarchy when
* the Explore by Touch feature is enabled.
* <p>
- * This method should be called by overriding
- * {@link View#dispatchHoverEvent}:
- *
+ * This method should be called by overriding the host view's
+ * {@link View#dispatchHoverEvent(MotionEvent)} method:
* <pre>@Override
* public boolean dispatchHoverEvent(MotionEvent event) {
- * if (mHelper.dispatchHoverEvent(this, event) {
- * return true;
- * }
- * return super.dispatchHoverEvent(event);
+ * return mHelper.dispatchHoverEvent(this, event)
+ * || super.dispatchHoverEvent(event);
* }
* </pre>
*
* @param event The hover event to dispatch to the virtual view hierarchy.
* @return Whether the hover event was handled.
*/
- public boolean dispatchHoverEvent(MotionEvent event) {
+ public final boolean dispatchHoverEvent(@NonNull MotionEvent event) {
if (!mManager.isEnabled()
|| !AccessibilityManagerCompat.isTouchExplorationEnabled(mManager)) {
return false;
@@ -145,7 +192,7 @@
updateHoveredVirtualView(virtualViewId);
return (virtualViewId != INVALID_ID);
case MotionEventCompat.ACTION_HOVER_EXIT:
- if (mFocusedVirtualViewId != INVALID_ID) {
+ if (mAccessibilityFocusedVirtualViewId != INVALID_ID) {
updateHoveredVirtualView(INVALID_ID);
return true;
}
@@ -156,78 +203,402 @@
}
/**
+ * Delegates key events from the host view.
+ * <p>
+ * This method should be called by overriding the host view's
+ * {@link View#dispatchKeyEvent(KeyEvent)} method:
+ * <pre>@Override
+ * public boolean dispatchKeyEvent(KeyEvent event) {
+ * return mHelper.dispatchKeyEvent(event)
+ * || super.dispatchKeyEvent(event);
+ * }
+ * </pre>
+ */
+ public final boolean dispatchKeyEvent(@NonNull KeyEvent event) {
+ boolean handled = false;
+
+ final int action = event.getAction();
+ if (action != KeyEvent.ACTION_UP) {
+ final int keyCode = event.getKeyCode();
+ switch (keyCode) {
+ case KeyEvent.KEYCODE_DPAD_LEFT:
+ case KeyEvent.KEYCODE_DPAD_UP:
+ case KeyEvent.KEYCODE_DPAD_RIGHT:
+ case KeyEvent.KEYCODE_DPAD_DOWN:
+ if (KeyEventCompat.hasNoModifiers(event)) {
+ final int direction = keyToDirection(keyCode);
+ final int count = 1 + event.getRepeatCount();
+ for (int i = 0; i < count; i++) {
+ if (moveFocus(direction, null)) {
+ handled = true;
+ } else {
+ break;
+ }
+ }
+ }
+ break;
+ case KeyEvent.KEYCODE_DPAD_CENTER:
+ case KeyEvent.KEYCODE_ENTER:
+ if (KeyEventCompat.hasNoModifiers(event)) {
+ if (event.getRepeatCount() == 0) {
+ clickKeyboardFocusedVirtualView();
+ handled = true;
+ }
+ }
+ break;
+ case KeyEvent.KEYCODE_TAB:
+ if (KeyEventCompat.hasNoModifiers(event)) {
+ handled = moveFocus(View.FOCUS_FORWARD, null);
+ } else if (KeyEventCompat.hasModifiers(event, KeyEvent.META_SHIFT_ON)) {
+ handled = moveFocus(View.FOCUS_BACKWARD, null);
+ }
+ break;
+ }
+ }
+
+ return handled;
+ }
+
+ /**
+ * Delegates focus changes from the host view.
+ * <p>
+ * This method should be called by overriding the host view's
+ * {@link View#onFocusChanged(boolean, int, Rect)} method:
+ * <pre>@Override
+ * public boolean onFocusChanged(boolean gainFocus, int direction,
+ * Rect previouslyFocusedRect) {
+ * super.onFocusChanged(gainFocus, direction, previouslyFocusedRect);
+ * mHelper.onFocusChanged(gainFocus, direction, previouslyFocusedRect);
+ * }
+ * </pre>
+ */
+ public final void onFocusChanged(boolean gainFocus, int direction,
+ @Nullable Rect previouslyFocusedRect) {
+ if (mKeyboardFocusedVirtualViewId != INVALID_ID) {
+ clearKeyboardFocusForVirtualView(mKeyboardFocusedVirtualViewId);
+ }
+
+ if (gainFocus) {
+ moveFocus(direction, previouslyFocusedRect);
+ }
+ }
+
+ /**
+ * @return the identifier of the virtual view that has accessibility focus
+ * or {@link #INVALID_ID} if no virtual view has accessibility
+ * focus
+ */
+ public final int getAccessibilityFocusedVirtualViewId() {
+ return mAccessibilityFocusedVirtualViewId;
+ }
+
+ /**
+ * @return the identifier of the virtual view that has keyboard focus
+ * or {@link #INVALID_ID} if no virtual view has keyboard focus
+ */
+ public final int getKeyboardFocusedVirtualViewId() {
+ return mKeyboardFocusedVirtualViewId;
+ }
+
+ /**
+ * Maps key event codes to focus directions.
+ *
+ * @param keyCode the key event code
+ * @return the corresponding focus direction
+ */
+ @FocusRealDirection
+ private static int keyToDirection(int keyCode) {
+ switch (keyCode) {
+ case KeyEvent.KEYCODE_DPAD_LEFT:
+ return View.FOCUS_LEFT;
+ case KeyEvent.KEYCODE_DPAD_UP:
+ return View.FOCUS_UP;
+ case KeyEvent.KEYCODE_DPAD_RIGHT:
+ return View.FOCUS_RIGHT;
+ default:
+ return View.FOCUS_DOWN;
+ }
+ }
+
+ /**
+ * Obtains the bounds for the specified virtual view.
+ *
+ * @param virtualViewId the identifier of the virtual view
+ * @param outBounds the rect to populate with virtual view bounds
+ */
+ private void getBoundsInParent(int virtualViewId, Rect outBounds) {
+ final AccessibilityNodeInfoCompat node = obtainAccessibilityNodeInfo(virtualViewId);
+ node.getBoundsInParent(outBounds);
+ }
+
+ /**
+ * Adapts AccessibilityNodeInfoCompat for obtaining bounds.
+ */
+ private static final FocusStrategy.BoundsAdapter<AccessibilityNodeInfoCompat> NODE_ADAPTER =
+ new FocusStrategy.BoundsAdapter<AccessibilityNodeInfoCompat>() {
+ @Override
+ public void obtainBounds(AccessibilityNodeInfoCompat node, Rect outBounds) {
+ node.getBoundsInParent(outBounds);
+ }
+ };
+
+ /**
+ * Adapts SparseArray for iterating through values.
+ */
+ private static final FocusStrategy.CollectionAdapter<SparseArray<AccessibilityNodeInfoCompat>, AccessibilityNodeInfoCompat> SPARSE_VALUES_ADAPTER =
+ new FocusStrategy.CollectionAdapter<SparseArray<AccessibilityNodeInfoCompat>, AccessibilityNodeInfoCompat>() {
+ @Override
+ public AccessibilityNodeInfoCompat get(
+ SparseArray<AccessibilityNodeInfoCompat> collection, int index) {
+ return collection.valueAt(index);
+ }
+
+ @Override
+ public int size(SparseArray<AccessibilityNodeInfoCompat> collection) {
+ return collection.size();
+ }
+ };
+
+ /**
+ * Attempts to move keyboard focus in the specified direction.
+ *
+ * @param direction the direction in which to move keyboard focus
+ * @param previouslyFocusedRect the bounds of the previously focused item,
+ * or {@code null} if not available
+ * @return {@code true} if keyboard focus moved to a virtual view managed
+ * by this helper, or {@code false} otherwise
+ */
+ private boolean moveFocus(@FocusDirection int direction, @Nullable Rect previouslyFocusedRect) {
+ final int focusedNodeId = mKeyboardFocusedVirtualViewId;
+ final AccessibilityNodeInfoCompat focusedNode =
+ focusedNodeId == INVALID_ID ? null : mCachedNodes.get(focusedNodeId);
+
+ final AccessibilityNodeInfoCompat nextFocusedNode;
+ switch (direction) {
+ case View.FOCUS_FORWARD:
+ case View.FOCUS_BACKWARD:
+ final boolean isLayoutRtl =
+ ViewCompat.getLayoutDirection(mHost) == ViewCompat.LAYOUT_DIRECTION_RTL;
+ nextFocusedNode = FocusStrategy.findNextFocusInRelativeDirection(mCachedNodes,
+ SPARSE_VALUES_ADAPTER, NODE_ADAPTER, focusedNode, direction, isLayoutRtl,
+ false);
+ break;
+ case View.FOCUS_LEFT:
+ case View.FOCUS_UP:
+ case View.FOCUS_RIGHT:
+ case View.FOCUS_DOWN:
+ final Rect selectedRect = new Rect();
+ if (mKeyboardFocusedVirtualViewId != INVALID_ID) {
+ // Focus is moving from a virtual view within the host.
+ getBoundsInParent(mKeyboardFocusedVirtualViewId, selectedRect);
+ } else if (previouslyFocusedRect != null) {
+ // Focus is moving from a real view outside the host.
+ selectedRect.set(previouslyFocusedRect);
+ } else {
+ // Focus is moving from... somewhere? Make a guess.
+ // Usually this happens when another view was too lazy
+ // to pass the previously focused rect (ex. ScrollView
+ // when moving UP or DOWN).
+ guessPreviouslyFocusedRect(mHost, direction, selectedRect);
+ }
+ nextFocusedNode = FocusStrategy.findNextFocusInAbsoluteDirection(mCachedNodes,
+ SPARSE_VALUES_ADAPTER, NODE_ADAPTER, focusedNode, selectedRect, direction);
+ break;
+ default:
+ throw new IllegalArgumentException("direction must be one of "
+ + "{FOCUS_FORWARD, FOCUS_BACKWARD, FOCUS_UP, FOCUS_DOWN, "
+ + "FOCUS_LEFT, FOCUS_RIGHT}.");
+ }
+
+ final int nextFocusedNodeId;
+ if (nextFocusedNode == null) {
+ nextFocusedNodeId = INVALID_ID;
+ } else {
+ final int index = mCachedNodes.indexOfValue(nextFocusedNode);
+ nextFocusedNodeId = mCachedNodes.keyAt(index);
+ }
+
+ return requestKeyboardFocusForVirtualView(nextFocusedNodeId);
+ }
+
+ /**
+ * Obtains a best guess for the previously focused rect for keyboard focus
+ * moving in the specified direction.
+ *
+ * @param host the view into which focus is moving
+ * @param direction the absolute direction in which focus is moving
+ * @param outBounds the rect to populate with the best-guess bounds for the
+ * previous focus rect
+ */
+ private static Rect guessPreviouslyFocusedRect(@NonNull View host,
+ @FocusRealDirection int direction, @NonNull Rect outBounds) {
+ final int w = host.getWidth();
+ final int h = host.getHeight();
+
+ switch (direction) {
+ case View.FOCUS_LEFT:
+ outBounds.set(w, 0, w, h);
+ break;
+ case View.FOCUS_UP:
+ outBounds.set(0, h, w, h);
+ break;
+ case View.FOCUS_RIGHT:
+ outBounds.set(-1, 0, -1, h);
+ break;
+ case View.FOCUS_DOWN:
+ outBounds.set(0, -1, w, -1);
+ break;
+ default:
+ throw new IllegalArgumentException("direction must be one of "
+ + "{FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT}.");
+ }
+
+ return outBounds;
+ }
+
+ /**
+ * Performs a click action on the keyboard focused virtual view, if any.
+ *
+ * @return {@code true} if the click action was performed successfully or
+ * {@code false} otherwise
+ */
+ private boolean clickKeyboardFocusedVirtualView() {
+ return mKeyboardFocusedVirtualViewId != INVALID_ID && onPerformActionForVirtualView(
+ mKeyboardFocusedVirtualViewId, AccessibilityNodeInfoCompat.ACTION_CLICK, null);
+ }
+
+ /**
* Populates an event of the specified type with information about an item
* and attempts to send it up through the view hierarchy.
* <p>
* You should call this method after performing a user action that normally
* fires an accessibility event, such as clicking on an item.
- *
+ * <p>
* <pre>public void performItemClick(T item) {
* ...
* sendEventForVirtualViewId(item.id, AccessibilityEvent.TYPE_VIEW_CLICKED);
* }
* </pre>
*
- * @param virtualViewId The virtual view id for which to send an event.
- * @param eventType The type of event to send.
- * @return true if the event was sent successfully.
+ * @param virtualViewId the identifier of the virtual view for which to
+ * send an event
+ * @param eventType the type of event to send
+ * @return {@code true} if the event was sent successfully, {@code false}
+ * otherwise
*/
- public boolean sendEventForVirtualView(int virtualViewId, int eventType) {
+ public final boolean sendEventForVirtualView(int virtualViewId, int eventType) {
if ((virtualViewId == INVALID_ID) || !mManager.isEnabled()) {
return false;
}
- final ViewParent parent = mView.getParent();
+ final ViewParent parent = mHost.getParent();
if (parent == null) {
return false;
}
final AccessibilityEvent event = createEvent(virtualViewId, eventType);
- return ViewParentCompat.requestSendAccessibilityEvent(parent, mView, event);
+ return ViewParentCompat.requestSendAccessibilityEvent(parent, mHost, event);
}
/**
* Notifies the accessibility framework that the properties of the parent
* view have changed.
* <p>
- * You <b>must</b> call this method after adding or removing items from the
- * parent view.
+ * You <strong>must</strong> call this method after adding or removing
+ * items from the parent view.
*/
- public void invalidateRoot() {
- invalidateVirtualView(HOST_ID);
+ public final void invalidateRoot() {
+ invalidateVirtualView(HOST_ID, AccessibilityEventCompat.CONTENT_CHANGE_TYPE_SUBTREE);
}
/**
* Notifies the accessibility framework that the properties of a particular
* item have changed.
* <p>
- * You <b>must</b> call this method after changing any of the properties set
- * in {@link #onPopulateNodeForVirtualView}.
+ * You <strong>must</strong> call this method after changing any of the
+ * properties set in
+ * {@link #onPopulateNodeForVirtualView(int, AccessibilityNodeInfoCompat)}.
*
- * @param virtualViewId The virtual view id to invalidate.
+ * @param virtualViewId the virtual view id to invalidate, or
+ * {@link #HOST_ID} to invalidate the root view
+ * @see #invalidateVirtualView(int, int)
*/
- public void invalidateVirtualView(int virtualViewId) {
- sendEventForVirtualView(
- virtualViewId, AccessibilityEventCompat.TYPE_WINDOW_CONTENT_CHANGED);
+ public final void invalidateVirtualView(int virtualViewId) {
+ invalidateVirtualView(virtualViewId,
+ AccessibilityEventCompat.CONTENT_CHANGE_TYPE_UNDEFINED);
}
/**
- * Returns the virtual view id for the currently focused item,
+ * Notifies the accessibility framework that the properties of a particular
+ * item have changed.
+ * <p>
+ * You <strong>must</strong> call this method after changing any of the
+ * properties set in
+ * {@link #onPopulateNodeForVirtualView(int, AccessibilityNodeInfoCompat)}.
*
- * @return A virtual view id, or {@link #INVALID_ID} if no item is
- * currently focused.
+ * @param virtualViewId the virtual view id to invalidate, or
+ * {@link #HOST_ID} to invalidate the root view
+ * @param changeTypes the bit mask of change types. May be {@code 0} for the
+ * default (undefined) change type or one or more of:
+ * <ul>
+ * <li>{@link AccessibilityEventCompat#CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION}
+ * <li>{@link AccessibilityEventCompat#CONTENT_CHANGE_TYPE_SUBTREE}
+ * <li>{@link AccessibilityEventCompat#CONTENT_CHANGE_TYPE_TEXT}
+ * <li>{@link AccessibilityEventCompat#CONTENT_CHANGE_TYPE_UNDEFINED}
+ * </ul>
*/
+ public final void invalidateVirtualView(int virtualViewId, int changeTypes) {
+ if (virtualViewId == HOST_ID
+ && (changeTypes & AccessibilityEventCompat.CONTENT_CHANGE_TYPE_SUBTREE) != 0) {
+ mCachedNodes.clear();
+ } else {
+ mCachedNodes.remove(virtualViewId);
+ }
+
+ if (virtualViewId != INVALID_ID && mManager.isEnabled()) {
+ final ViewParent parent = mHost.getParent();
+ if (parent != null) {
+ // Send events up the hierarchy so they can be coalesced.
+ final AccessibilityEvent event = createEvent(virtualViewId,
+ AccessibilityEventCompat.TYPE_WINDOW_CONTENT_CHANGED);
+ AccessibilityEventCompat.setContentChangeTypes(event, changeTypes);
+ ViewParentCompat.requestSendAccessibilityEvent(parent, mHost, event);
+ }
+ }
+ }
+
+ /**
+ * Returns the virtual view ID for the currently accessibility focused
+ * item.
+ *
+ * @return the identifier of the virtual view that has accessibility focus
+ * or {@link #INVALID_ID} if no virtual view has accessibility
+ * focus
+ * @deprecated Use {@link #getAccessibilityFocusedVirtualViewId()}.
+ */
+ @Deprecated
public int getFocusedVirtualView() {
- return mFocusedVirtualViewId;
+ return getAccessibilityFocusedVirtualViewId();
+ }
+
+ /**
+ * Called when the focus state of a virtual view changes.
+ *
+ * @param virtualViewId the virtual view identifier
+ * @param hasFocus {@code true} if the view has focus, {@code false}
+ * otherwise
+ */
+ protected void onVirtualViewKeyboardFocusChanged(int virtualViewId, boolean hasFocus) {
+ // Stub method.
}
/**
* Sets the currently hovered item, sending hover accessibility events as
* necessary to maintain the correct state.
*
- * @param virtualViewId The virtual view id for the item currently being
- * hovered, or {@link #INVALID_ID} if no item is hovered within
- * the parent view.
+ * @param virtualViewId the virtual view id for the item currently being
+ * hovered, or {@link #INVALID_ID} if no item is
+ * hovered within the parent view
*/
private void updateHoveredVirtualView(int virtualViewId) {
if (mHoveredVirtualViewId == virtualViewId) {
@@ -248,11 +619,11 @@
* Constructs and returns an {@link AccessibilityEvent} for the specified
* virtual view id, which includes the host view ({@link #HOST_ID}).
*
- * @param virtualViewId The virtual view id for the item for which to
- * construct an event.
- * @param eventType The type of event to construct.
- * @return An {@link AccessibilityEvent} populated with information about
- * the specified item.
+ * @param virtualViewId the virtual view id for the item for which to
+ * construct an event
+ * @param eventType the type of event to construct
+ * @return an {@link AccessibilityEvent} populated with information about
+ * the specified item
*/
private AccessibilityEvent createEvent(int virtualViewId, int eventType) {
switch (virtualViewId) {
@@ -266,13 +637,17 @@
/**
* Constructs and returns an {@link AccessibilityEvent} for the host node.
*
- * @param eventType The type of event to construct.
- * @return An {@link AccessibilityEvent} populated with information about
- * the specified item.
+ * @param eventType the type of event to construct
+ * @return an {@link AccessibilityEvent} populated with information about
+ * the specified item
*/
private AccessibilityEvent createEventForHost(int eventType) {
final AccessibilityEvent event = AccessibilityEvent.obtain(eventType);
- ViewCompat.onInitializeAccessibilityEvent(mView, event);
+ ViewCompat.onInitializeAccessibilityEvent(mHost, event);
+
+ // Allow the client to populate the event.
+ onPopulateEventForHost(event);
+
return event;
}
@@ -280,16 +655,24 @@
* Constructs and returns an {@link AccessibilityEvent} populated with
* information about the specified item.
*
- * @param virtualViewId The virtual view id for the item for which to
- * construct an event.
- * @param eventType The type of event to construct.
- * @return An {@link AccessibilityEvent} populated with information about
- * the specified item.
+ * @param virtualViewId the virtual view id for the item for which to
+ * construct an event
+ * @param eventType the type of event to construct
+ * @return an {@link AccessibilityEvent} populated with information about
+ * the specified item
*/
private AccessibilityEvent createEventForChild(int virtualViewId, int eventType) {
final AccessibilityEvent event = AccessibilityEvent.obtain(eventType);
- event.setEnabled(true);
- event.setClassName(DEFAULT_CLASS_NAME);
+ final AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(event);
+ final AccessibilityNodeInfoCompat node = obtainAccessibilityNodeInfo(virtualViewId);
+
+ // Allow the client to override these properties,
+ record.getText().add(node.getText());
+ record.setContentDescription(node.getContentDescription());
+ record.setScrollable(node.isScrollable());
+ record.setPassword(node.isPassword());
+ record.setEnabled(node.isEnabled());
+ record.setChecked(node.isChecked());
// Allow the client to populate the event.
onPopulateEventForVirtualView(virtualViewId, event);
@@ -301,52 +684,65 @@
}
// Don't allow the client to override these properties.
- event.setPackageName(mView.getContext().getPackageName());
-
- final AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(event);
- record.setSource(mView, virtualViewId);
+ record.setClassName(node.getClassName());
+ record.setSource(mHost, virtualViewId);
+ event.setPackageName(mHost.getContext().getPackageName());
return event;
}
/**
- * Constructs and returns an {@link AccessibilityNodeInfoCompat} for the
- * specified virtual view id, which includes the host view
- * ({@link #HOST_ID}).
+ * Obtains a populated {@link AccessibilityNodeInfoCompat} for the
+ * virtual view with the specified identifier.
+ * <p>
+ * This method may be called with identifier {@link #HOST_ID} to obtain a
+ * node for the host view.
*
- * @param virtualViewId The virtual view id for the item for which to
- * construct a node.
- * @return An {@link AccessibilityNodeInfoCompat} populated with information
- * about the specified item.
+ * @param virtualViewId the identifier of the virtual view for which to
+ * construct a node
+ * @return an {@link AccessibilityNodeInfoCompat} populated with information
+ * about the specified item
*/
- private AccessibilityNodeInfoCompat createNode(int virtualViewId) {
- switch (virtualViewId) {
- case HOST_ID:
- return createNodeForHost();
- default:
- return createNodeForChild(virtualViewId);
+ @NonNull
+ private AccessibilityNodeInfoCompat obtainAccessibilityNodeInfo(int virtualViewId) {
+ final AccessibilityNodeInfoCompat node;
+ final int cacheIndex = mCachedNodes.indexOfKey(virtualViewId);
+ if (cacheIndex >= 0) {
+ node = mCachedNodes.valueAt(cacheIndex);
+ } else if (virtualViewId == HOST_ID) {
+ node = createNodeForHost();
+ } else {
+ node = createNodeForChild(virtualViewId);
}
+
+ mCachedNodes.put(virtualViewId, node);
+
+ return node;
}
/**
* Constructs and returns an {@link AccessibilityNodeInfoCompat} for the
* host view populated with its virtual descendants.
*
- * @return An {@link AccessibilityNodeInfoCompat} for the parent node.
+ * @return an {@link AccessibilityNodeInfoCompat} for the parent node
*/
private AccessibilityNodeInfoCompat createNodeForHost() {
- final AccessibilityNodeInfoCompat node = AccessibilityNodeInfoCompat.obtain(mView);
- ViewCompat.onInitializeAccessibilityNodeInfo(mView, node);
+ final AccessibilityNodeInfoCompat node = AccessibilityNodeInfoCompat.obtain(mHost);
+ ViewCompat.onInitializeAccessibilityNodeInfo(mHost, node);
+ final int realNodeCount = node.getChildCount();
// Allow the client to populate the host node.
onPopulateNodeForHost(node);
// Add the virtual descendants.
- final LinkedList<Integer> virtualViewIds = new LinkedList<Integer>();
+ final ArrayList<Integer> virtualViewIds = new ArrayList<>();
getVisibleVirtualViews(virtualViewIds);
+ if (realNodeCount > 0 && virtualViewIds.size() > 0) {
+ throw new RuntimeException("Views cannot have both real and virtual children");
+ }
- for (Integer childVirtualViewId : virtualViewIds) {
- node.addChild(mView, childVirtualViewId);
+ for (int i = 0, count = virtualViewIds.size(); i < count; i++) {
+ node.addChild(mHost, virtualViewIds.get(i));
}
return node;
@@ -376,15 +772,16 @@
* <li>{@link AccessibilityNodeInfoCompat#setBoundsInParent}
* </ul>
*
- * @param virtualViewId The virtual view id for item for which to construct
- * a node.
- * @return An {@link AccessibilityNodeInfoCompat} for the specified item.
+ * @param virtualViewId the virtual view id for item for which to construct
+ * a node
+ * @return an {@link AccessibilityNodeInfoCompat} for the specified item
*/
private AccessibilityNodeInfoCompat createNodeForChild(int virtualViewId) {
final AccessibilityNodeInfoCompat node = AccessibilityNodeInfoCompat.obtain();
// Ensure the client has good defaults.
node.setEnabled(true);
+ node.setFocusable(true);
node.setClassName(DEFAULT_CLASS_NAME);
// Allow the client to populate the node.
@@ -413,12 +810,12 @@
}
// Don't allow the client to override these properties.
- node.setPackageName(mView.getContext().getPackageName());
- node.setSource(mView, virtualViewId);
- node.setParent(mView);
+ node.setPackageName(mHost.getContext().getPackageName());
+ node.setSource(mHost, virtualViewId);
+ node.setParent(mHost);
// Manage internal accessibility focus state.
- if (mFocusedVirtualViewId == virtualViewId) {
+ if (mAccessibilityFocusedVirtualViewId == virtualViewId) {
node.setAccessibilityFocused(true);
node.addAction(AccessibilityNodeInfoCompat.ACTION_CLEAR_ACCESSIBILITY_FOCUS);
} else {
@@ -426,6 +823,15 @@
node.addAction(AccessibilityNodeInfoCompat.ACTION_ACCESSIBILITY_FOCUS);
}
+ // Manage internal keyboard focus state.
+ final boolean isFocused = mKeyboardFocusedVirtualViewId == virtualViewId;
+ if (isFocused) {
+ node.addAction(AccessibilityNodeInfoCompat.ACTION_CLEAR_FOCUS);
+ } else if (node.isFocusable()) {
+ node.addAction(AccessibilityNodeInfoCompat.ACTION_FOCUS);
+ }
+ node.setFocused(isFocused);
+
// Set the visibility based on the parent bound.
if (intersectVisibleToUser(mTempParentRect)) {
node.setVisibleToUser(true);
@@ -433,7 +839,7 @@
}
// Calculate screen-relative bound.
- mView.getLocationOnScreen(mTempGlobalRect);
+ mHost.getLocationOnScreen(mTempGlobalRect);
final int offsetX = mTempGlobalRect[0];
final int offsetY = mTempGlobalRect[1];
mTempScreenRect.set(mTempParentRect);
@@ -453,27 +859,21 @@
}
private boolean performActionForHost(int action, Bundle arguments) {
- return ViewCompat.performAccessibilityAction(mView, action, arguments);
+ return ViewCompat.performAccessibilityAction(mHost, action, arguments);
}
private boolean performActionForChild(int virtualViewId, int action, Bundle arguments) {
switch (action) {
case AccessibilityNodeInfoCompat.ACTION_ACCESSIBILITY_FOCUS:
- case AccessibilityNodeInfoCompat.ACTION_CLEAR_ACCESSIBILITY_FOCUS:
- return manageFocusForChild(virtualViewId, action, arguments);
- default:
- return onPerformActionForVirtualView(virtualViewId, action, arguments);
- }
- }
-
- private boolean manageFocusForChild(int virtualViewId, int action, Bundle arguments) {
- switch (action) {
- case AccessibilityNodeInfoCompat.ACTION_ACCESSIBILITY_FOCUS:
return requestAccessibilityFocus(virtualViewId);
case AccessibilityNodeInfoCompat.ACTION_CLEAR_ACCESSIBILITY_FOCUS:
return clearAccessibilityFocus(virtualViewId);
+ case AccessibilityNodeInfoCompat.ACTION_FOCUS:
+ return requestKeyboardFocusForVirtualView(virtualViewId);
+ case AccessibilityNodeInfoCompat.ACTION_CLEAR_FOCUS:
+ return clearKeyboardFocusForVirtualView(virtualViewId);
default:
- return false;
+ return onPerformActionForVirtualView(virtualViewId, action, arguments);
}
}
@@ -482,8 +882,8 @@
* portion of its parent {@link View}. Modifies {@code localRect} to contain
* only the visible portion.
*
- * @param localRect A rectangle in local (parent) coordinates.
- * @return Whether the specified {@link Rect} is visible on the screen.
+ * @param localRect a rectangle in local (parent) coordinates
+ * @return whether the specified {@link Rect} is visible on the screen
*/
private boolean intersectVisibleToUser(Rect localRect) {
// Missing or empty bounds mean this view is not visible.
@@ -492,12 +892,12 @@
}
// Attached to invisible window means this view is not visible.
- if (mView.getWindowVisibility() != View.VISIBLE) {
+ if (mHost.getWindowVisibility() != View.VISIBLE) {
return false;
}
// An invisible predecessor means that this view is not visible.
- ViewParent viewParent = mView.getParent();
+ ViewParent viewParent = mHost.getParent();
while (viewParent instanceof View) {
final View view = (View) viewParent;
if ((ViewCompat.getAlpha(view) <= 0) || (view.getVisibility() != View.VISIBLE)) {
@@ -512,7 +912,7 @@
}
// If no portion of the parent is visible, this view is not visible.
- if (!mView.getLocalVisibleRect(mTempVisibleRect)) {
+ if (!mHost.getLocalVisibleRect(mTempVisibleRect)) {
return false;
}
@@ -521,15 +921,6 @@
}
/**
- * Returns whether this virtual view is accessibility focused.
- *
- * @return True if the view is accessibility focused.
- */
- private boolean isAccessibilityFocused(int virtualViewId) {
- return (mFocusedVirtualViewId == virtualViewId);
- }
-
- /**
* Attempts to give accessibility focus to a virtual view.
* <p>
* A virtual view will not actually take focus if
@@ -537,9 +928,9 @@
* {@link AccessibilityManager#isTouchExplorationEnabled()} returns false,
* or the view already has accessibility focus.
*
- * @param virtualViewId The id of the virtual view on which to place
- * accessibility focus.
- * @return Whether this virtual view actually took accessibility focus.
+ * @param virtualViewId the identifier of the virtual view on which to
+ * place accessibility focus
+ * @return whether this virtual view actually took accessibility focus
*/
private boolean requestAccessibilityFocus(int virtualViewId) {
if (!mManager.isEnabled()
@@ -547,18 +938,17 @@
return false;
}
// TODO: Check virtual view visibility.
- if (!isAccessibilityFocused(virtualViewId)) {
+ if (mAccessibilityFocusedVirtualViewId != virtualViewId) {
// Clear focus from the previously focused view, if applicable.
- if (mFocusedVirtualViewId != INVALID_ID) {
- sendEventForVirtualView(mFocusedVirtualViewId,
- AccessibilityEventCompat.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED);
+ if (mAccessibilityFocusedVirtualViewId != INVALID_ID) {
+ clearAccessibilityFocus(mAccessibilityFocusedVirtualViewId);
}
// Set focus on the new view.
- mFocusedVirtualViewId = virtualViewId;
+ mAccessibilityFocusedVirtualViewId = virtualViewId;
// TODO: Only invalidate virtual view bounds.
- mView.invalidate();
+ mHost.invalidate();
sendEventForVirtualView(virtualViewId,
AccessibilityEventCompat.TYPE_VIEW_ACCESSIBILITY_FOCUSED);
return true;
@@ -569,14 +959,14 @@
/**
* Attempts to clear accessibility focus from a virtual view.
*
- * @param virtualViewId The id of the virtual view from which to clear
- * accessibility focus.
- * @return Whether this virtual view actually cleared accessibility focus.
+ * @param virtualViewId the identifier of the virtual view from which to
+ * clear accessibility focus
+ * @return whether this virtual view actually cleared accessibility focus
*/
private boolean clearAccessibilityFocus(int virtualViewId) {
- if (isAccessibilityFocused(virtualViewId)) {
- mFocusedVirtualViewId = INVALID_ID;
- mView.invalidate();
+ if (mAccessibilityFocusedVirtualViewId == virtualViewId) {
+ mAccessibilityFocusedVirtualViewId = INVALID_ID;
+ mHost.invalidate();
sendEventForVirtualView(virtualViewId,
AccessibilityEventCompat.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED);
return true;
@@ -585,6 +975,57 @@
}
/**
+ * Attempts to give keyboard focus to a virtual view.
+ *
+ * @param virtualViewId the identifier of the virtual view on which to
+ * place keyboard focus
+ * @return whether this virtual view actually took keyboard focus
+ */
+ public final boolean requestKeyboardFocusForVirtualView(int virtualViewId) {
+ if (!mHost.isFocused() && !mHost.requestFocus()) {
+ // Host must have real keyboard focus.
+ return false;
+ }
+
+ if (mKeyboardFocusedVirtualViewId == virtualViewId) {
+ // The virtual view already has focus.
+ return false;
+ }
+
+ if (mKeyboardFocusedVirtualViewId != INVALID_ID) {
+ clearKeyboardFocusForVirtualView(mKeyboardFocusedVirtualViewId);
+ }
+
+ mKeyboardFocusedVirtualViewId = virtualViewId;
+
+ onVirtualViewKeyboardFocusChanged(virtualViewId, true);
+ sendEventForVirtualView(virtualViewId, AccessibilityEvent.TYPE_VIEW_FOCUSED);
+
+ return true;
+ }
+
+ /**
+ * Attempts to clear keyboard focus from a virtual view.
+ *
+ * @param virtualViewId the identifier of the virtual view from which to
+ * clear keyboard focus
+ * @return whether this virtual view actually cleared keyboard focus
+ */
+ public final boolean clearKeyboardFocusForVirtualView(int virtualViewId) {
+ if (mKeyboardFocusedVirtualViewId != virtualViewId) {
+ // The virtual view is not focused.
+ return false;
+ }
+
+ mKeyboardFocusedVirtualViewId = INVALID_ID;
+
+ onVirtualViewKeyboardFocusChanged(virtualViewId, false);
+ sendEventForVirtualView(virtualViewId, AccessibilityEvent.TYPE_VIEW_FOCUSED);
+
+ return true;
+ }
+
+ /**
* Provides a mapping between view-relative coordinates and logical
* items.
*
@@ -609,22 +1050,25 @@
* Populates an {@link AccessibilityEvent} with information about the
* specified item.
* <p>
- * Implementations <b>must</b> populate the following required fields:
+ * The helper class automatically populates the following fields based on
+ * the values set by
+ * {@link #onPopulateNodeForVirtualView(int, AccessibilityNodeInfoCompat)},
+ * but implementations may optionally override them:
* <ul>
- * <li>event text, see {@link AccessibilityEvent#getText} or
- * {@link AccessibilityEvent#setContentDescription}
- * </ul>
- * <p>
- * The helper class automatically populates the following fields with
- * default values, but implementations may optionally override them:
- * <ul>
- * <li>item class name, set to android.view.View, see
- * {@link AccessibilityEvent#setClassName}
+ * <li>event text, see {@link AccessibilityEvent#getText()}
+ * <li>content description, see
+ * {@link AccessibilityEvent#setContentDescription(CharSequence)}
+ * <li>scrollability, see {@link AccessibilityEvent#setScrollable(boolean)}
+ * <li>password state, see {@link AccessibilityEvent#setPassword(boolean)}
+ * <li>enabled state, see {@link AccessibilityEvent#setEnabled(boolean)}
+ * <li>checked state, see {@link AccessibilityEvent#setChecked(boolean)}
* </ul>
* <p>
* The following required fields are automatically populated by the
* helper class and may not be overridden:
* <ul>
+ * <li>item class name, set to the value used in
+ * {@link #onPopulateNodeForVirtualView(int, AccessibilityNodeInfoCompat)}
* <li>package name, set to the package of the host view's
* {@link Context}, see {@link AccessibilityEvent#setPackageName}
* <li>event source, set to the host view and virtual view identifier,
@@ -635,55 +1079,76 @@
* populate the event
* @param event The event to populate
*/
- protected abstract void onPopulateEventForVirtualView(
- int virtualViewId, AccessibilityEvent event);
+ protected void onPopulateEventForVirtualView(int virtualViewId, AccessibilityEvent event) {
+ // Default implementation is no-op.
+ }
+
+ /**
+ * Populates an {@link AccessibilityEvent} with information about the host
+ * view.
+ * <p>
+ * The default implementation is a no-op.
+ *
+ * @param event the event to populate with information about the host view
+ */
+ protected void onPopulateEventForHost(AccessibilityEvent event) {
+ // Default implementation is no-op.
+ }
/**
* Populates an {@link AccessibilityNodeInfoCompat} with information
* about the specified item.
* <p>
- * Implementations <b>must</b> populate the following required fields:
+ * Implementations <strong>must</strong> populate the following required
+ * fields:
* <ul>
- * <li>event text, see {@link AccessibilityNodeInfoCompat#setText} or
- * {@link AccessibilityNodeInfoCompat#setContentDescription}
+ * <li>event text, see
+ * {@link AccessibilityNodeInfoCompat#setText(CharSequence)} or
+ * {@link AccessibilityNodeInfoCompat#setContentDescription(CharSequence)}
* <li>bounds in parent coordinates, see
- * {@link AccessibilityNodeInfoCompat#setBoundsInParent}
+ * {@link AccessibilityNodeInfoCompat#setBoundsInParent(Rect)}
* </ul>
* <p>
* The helper class automatically populates the following fields with
* default values, but implementations may optionally override them:
* <ul>
- * <li>enabled state, set to true, see
- * {@link AccessibilityNodeInfoCompat#setEnabled}
- * <li>item class name, identical to the class name set by
- * {@link #onPopulateEventForVirtualView}, see
- * {@link AccessibilityNodeInfoCompat#setClassName}
+ * <li>enabled state, set to {@code true}, see
+ * {@link AccessibilityNodeInfoCompat#setEnabled(boolean)}
+ * <li>keyboard focusability, set to {@code true}, see
+ * {@link AccessibilityNodeInfoCompat#setFocusable(boolean)}
+ * <li>item class name, set to {@code android.view.View}, see
+ * {@link AccessibilityNodeInfoCompat#setClassName(CharSequence)}
* </ul>
* <p>
* The following required fields are automatically populated by the
* helper class and may not be overridden:
* <ul>
* <li>package name, identical to the package name set by
- * {@link #onPopulateEventForVirtualView}, see
+ * {@link #onPopulateEventForVirtualView(int, AccessibilityEvent)}, see
* {@link AccessibilityNodeInfoCompat#setPackageName}
* <li>node source, identical to the event source set in
- * {@link #onPopulateEventForVirtualView}, see
+ * {@link #onPopulateEventForVirtualView(int, AccessibilityEvent)}, see
* {@link AccessibilityNodeInfoCompat#setSource(View, int)}
* <li>parent view, set to the host view, see
* {@link AccessibilityNodeInfoCompat#setParent(View)}
* <li>visibility, computed based on parent-relative bounds, see
- * {@link AccessibilityNodeInfoCompat#setVisibleToUser}
+ * {@link AccessibilityNodeInfoCompat#setVisibleToUser(boolean)}
* <li>accessibility focus, computed based on internal helper state, see
- * {@link AccessibilityNodeInfoCompat#setAccessibilityFocused}
+ * {@link AccessibilityNodeInfoCompat#setAccessibilityFocused(boolean)}
+ * <li>keyboard focus, computed based on internal helper state, see
+ * {@link AccessibilityNodeInfoCompat#setFocused(boolean)}
* <li>bounds in screen coordinates, computed based on host view bounds,
- * see {@link AccessibilityNodeInfoCompat#setBoundsInScreen}
+ * see {@link AccessibilityNodeInfoCompat#setBoundsInScreen(Rect)}
* </ul>
* <p>
- * Additionally, the helper class automatically handles accessibility
- * focus management by adding the appropriate
- * {@link AccessibilityNodeInfoCompat#ACTION_ACCESSIBILITY_FOCUS} or
+ * Additionally, the helper class automatically handles keyboard focus and
+ * accessibility focus management by adding the appropriate
+ * {@link AccessibilityNodeInfoCompat#ACTION_FOCUS},
+ * {@link AccessibilityNodeInfoCompat#ACTION_CLEAR_FOCUS},
+ * {@link AccessibilityNodeInfoCompat#ACTION_ACCESSIBILITY_FOCUS}, or
* {@link AccessibilityNodeInfoCompat#ACTION_CLEAR_ACCESSIBILITY_FOCUS}
- * action. Implementations must <b>never</b> manually add these actions.
+ * actions. Implementations must <strong>never</strong> manually add these
+ * actions.
* <p>
* The helper class also automatically modifies parent- and
* screen-relative bounds to reflect the portion of the item visible
@@ -700,10 +1165,11 @@
* Populates an {@link AccessibilityNodeInfoCompat} with information
* about the host view.
* <p>
- * The following required fields are automatically populated by the
- * helper class and may not be overridden:
+ * The default implementation is a no-op.
+ *
+ * @param node the node to populate with information about the host view
*/
- public void onPopulateNodeForHost(AccessibilityNodeInfoCompat node) {
+ protected void onPopulateNodeForHost(AccessibilityNodeInfoCompat node) {
// Default implementation is no-op.
}
@@ -713,8 +1179,9 @@
* {@link AccessibilityNodeInfoCompat#performAction(int, Bundle)} for
* more information.
* <p>
- * Implementations <b>must</b> handle any actions added manually in
- * {@link #onPopulateNodeForVirtualView}.
+ * Implementations <strong>must</strong> handle any actions added manually
+ * in
+ * {@link #onPopulateNodeForVirtualView(int, AccessibilityNodeInfoCompat)}.
* <p>
* The helper class automatically handles focus management resulting
* from {@link AccessibilityNodeInfoCompat#ACTION_ACCESSIBILITY_FOCUS}
@@ -733,13 +1200,12 @@
int virtualViewId, int action, Bundle arguments);
/**
- * Exposes a virtual view hierarchy to the accessibility framework. Only
- * used in API 16+.
+ * Exposes a virtual view hierarchy to the accessibility framework.
*/
- private class ExploreByTouchNodeProvider extends AccessibilityNodeProviderCompat {
+ private class MyNodeProvider extends AccessibilityNodeProviderCompat {
@Override
public AccessibilityNodeInfoCompat createAccessibilityNodeInfo(int virtualViewId) {
- return ExploreByTouchHelper.this.createNode(virtualViewId);
+ return ExploreByTouchHelper.this.obtainAccessibilityNodeInfo(virtualViewId);
}
@Override
diff --git a/v4/java/android/support/v4/widget/FocusStrategy.java b/v4/java/android/support/v4/widget/FocusStrategy.java
new file mode 100644
index 0000000..8be9f1a
--- /dev/null
+++ b/v4/java/android/support/v4/widget/FocusStrategy.java
@@ -0,0 +1,454 @@
+/*
+ * 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.widget;
+
+import android.graphics.Rect;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.view.View;
+
+import android.support.v4.view.ViewCompat.FocusRealDirection;
+import android.support.v4.view.ViewCompat.FocusRelativeDirection;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+
+/**
+ * Implements absolute and relative focus movement strategies. Adapted from
+ * android.view.FocusFinder to work with generic collections of bounded items.
+ */
+class FocusStrategy {
+ public static <L,T> T findNextFocusInRelativeDirection(@NonNull L focusables,
+ @NonNull CollectionAdapter<L,T> collectionAdapter, @NonNull BoundsAdapter<T> adapter,
+ @Nullable T focused, @FocusRelativeDirection int direction, boolean isLayoutRtl,
+ boolean wrap) {
+ final int count = collectionAdapter.size(focusables);
+ final ArrayList<T> sortedFocusables = new ArrayList<>(count);
+ for (int i = 0; i < count; i++) {
+ sortedFocusables.add(collectionAdapter.get(focusables, i));
+ }
+
+ final SequentialComparator<T> comparator = new SequentialComparator<>(isLayoutRtl, adapter);
+ Collections.sort(sortedFocusables, comparator);
+
+ switch (direction) {
+ case View.FOCUS_FORWARD:
+ return getNextFocusable(focused, sortedFocusables, wrap);
+ case View.FOCUS_BACKWARD:
+ return getPreviousFocusable(focused, sortedFocusables, wrap);
+ default:
+ throw new IllegalArgumentException("direction must be one of "
+ + "{FOCUS_FORWARD, FOCUS_BACKWARD}.");
+ }
+ }
+
+ private static <T> T getNextFocusable(T focused, ArrayList<T> focusables, boolean wrap) {
+ final int count = focusables.size();
+
+ // The position of the next focusable item, which is the first item if
+ // no item is currently focused.
+ final int position = (focused == null ? -1 : focusables.lastIndexOf(focused)) + 1;
+ if (position < count) {
+ return focusables.get(position);
+ } else if (wrap && count > 0) {
+ return focusables.get(0);
+ } else {
+ return null;
+ }
+ }
+
+ private static <T> T getPreviousFocusable(T focused, ArrayList<T> focusables, boolean wrap) {
+ final int count = focusables.size();
+
+ // The position of the previous focusable item, which is the last item
+ // if no item is currently focused.
+ final int position = (focused == null ? count : focusables.indexOf(focused)) - 1;
+ if (position >= 0) {
+ return focusables.get(position);
+ } else if (wrap && count > 0) {
+ return focusables.get(count - 1);
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Sorts views according to their visual layout and geometry for default tab order.
+ * This is used for sequential focus traversal.
+ */
+ private static class SequentialComparator<T> implements Comparator<T> {
+ private final Rect mTemp1 = new Rect();
+ private final Rect mTemp2 = new Rect();
+
+ private final boolean mIsLayoutRtl;
+ private final BoundsAdapter<T> mAdapter;
+
+ public SequentialComparator(boolean isLayoutRtl, BoundsAdapter<T> adapter) {
+ mIsLayoutRtl = isLayoutRtl;
+ mAdapter = adapter;
+ }
+
+ public int compare(T first, T second) {
+ final Rect firstRect = mTemp1;
+ final Rect secondRect = mTemp2;
+
+ mAdapter.obtainBounds(first, firstRect);
+ mAdapter.obtainBounds(second, secondRect);
+
+ if (firstRect.top < secondRect.top) {
+ return -1;
+ } else if (firstRect.top > secondRect.top) {
+ return 1;
+ } else if (firstRect.left < secondRect.left) {
+ return mIsLayoutRtl ? 1 : -1;
+ } else if (firstRect.left > secondRect.left) {
+ return mIsLayoutRtl ? -1 : 1;
+ } else if (firstRect.bottom < secondRect.bottom) {
+ return -1;
+ } else if (firstRect.bottom > secondRect.bottom) {
+ return 1;
+ } else if (firstRect.right < secondRect.right) {
+ return mIsLayoutRtl ? 1 : -1;
+ } else if (firstRect.right > secondRect.right) {
+ return mIsLayoutRtl ? -1 : 1;
+ } else {
+ // The view are distinct but completely coincident so we
+ // consider them equal for our purposes. Since the sort is
+ // stable, this means that the views will retain their
+ // layout order relative to one another.
+ return 0;
+ }
+ }
+ }
+
+ public static <L,T> T findNextFocusInAbsoluteDirection(@NonNull L focusables,
+ @NonNull CollectionAdapter<L,T> collectionAdapter, @NonNull BoundsAdapter<T> adapter,
+ @Nullable T focused, @NonNull Rect focusedRect, int direction) {
+ // Initialize the best candidate to something impossible so that
+ // the first plausible view will become the best choice.
+ final Rect bestCandidateRect = new Rect(focusedRect);
+
+ switch (direction) {
+ case View.FOCUS_LEFT:
+ bestCandidateRect.offset(focusedRect.width() + 1, 0);
+ break;
+ case View.FOCUS_RIGHT:
+ bestCandidateRect.offset(-(focusedRect.width() + 1), 0);
+ break;
+ case View.FOCUS_UP:
+ bestCandidateRect.offset(0, focusedRect.height() + 1);
+ break;
+ case View.FOCUS_DOWN:
+ bestCandidateRect.offset(0, -(focusedRect.height() + 1));
+ break;
+ default:
+ throw new IllegalArgumentException("direction must be one of "
+ + "{FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT}.");
+ }
+
+ T closest = null;
+
+ final int count = collectionAdapter.size(focusables);
+ final Rect focusableRect = new Rect();
+ for (int i = 0; i < count; i++) {
+ final T focusable = collectionAdapter.get(focusables, i);
+ if (focusable == focused) {
+ continue;
+ }
+
+ // get focus bounds of other view
+ adapter.obtainBounds(focusable, focusableRect);
+ if (isBetterCandidate(direction, focusedRect, focusableRect, bestCandidateRect)) {
+ bestCandidateRect.set(focusableRect);
+ closest = focusable;
+ }
+ }
+
+ return closest;
+ }
+
+ /**
+ * Is candidate a better candidate than currentBest for a focus search
+ * in a particular direction from a source rect? This is the core
+ * routine that determines the order of focus searching.
+ *
+ * @param direction the direction (up, down, left, right)
+ * @param source the source from which we are searching
+ * @param candidate the candidate rectangle
+ * @param currentBest the current best rectangle
+ * @return {@code true} if the candidate rectangle is a better than the
+ * current best rectangle, {@code false} otherwise
+ */
+ private static boolean isBetterCandidate(
+ @FocusRealDirection int direction, @NonNull Rect source,
+ @NonNull Rect candidate, @NonNull Rect currentBest) {
+ // To be a better candidate, need to at least be a candidate in the
+ // first place. :)
+ if (!isCandidate(source, candidate, direction)) {
+ return false;
+ }
+
+ // We know that candidateRect is a candidate. If currentBest is not
+ // a candidate, candidateRect is better.
+ if (!isCandidate(source, currentBest, direction)) {
+ return true;
+ }
+
+ // If candidateRect is better by beam, it wins.
+ if (beamBeats(direction, source, candidate, currentBest)) {
+ return true;
+ }
+
+ // If currentBest is better, then candidateRect cant' be. :)
+ if (beamBeats(direction, source, currentBest, candidate)) {
+ return false;
+ }
+
+ // Otherwise, do fudge-tastic comparison of the major and minor
+ // axis.
+ final int candidateDist = getWeightedDistanceFor(
+ majorAxisDistance(direction, source, candidate),
+ minorAxisDistance(direction, source, candidate));
+ final int currentBestDist = getWeightedDistanceFor(
+ majorAxisDistance(direction, source, currentBest),
+ minorAxisDistance(direction, source, currentBest));
+ return candidateDist < currentBestDist;
+ }
+
+ /**
+ * One rectangle may be another candidate than another by virtue of
+ * being exclusively in the beam of the source rect.
+ *
+ * @return whether rect1 is a better candidate than rect2 by virtue of
+ * it being in source's beam
+ */
+ private static boolean beamBeats(@FocusRealDirection int direction,
+ @NonNull Rect source, @NonNull Rect rect1, @NonNull Rect rect2) {
+ final boolean rect1InSrcBeam = beamsOverlap(direction, source, rect1);
+ final boolean rect2InSrcBeam = beamsOverlap(direction, source, rect2);
+
+ // If rect1 isn't exclusively in the src beam, it doesn't win.
+ if (rect2InSrcBeam || !rect1InSrcBeam) {
+ return false;
+ }
+
+ // We know rect1 is in the beam, and rect2 is not.
+
+ // If rect1 is to the direction of, and rect2 is not, rect1 wins.
+ // For example, for direction left, if rect1 is to the left of the
+ // source and rect2 is below, then we always prefer the in beam
+ // rect1, since rect2 could be reached by going down.
+ if (!isToDirectionOf(direction, source, rect2)) {
+ return true;
+ }
+
+ // For horizontal directions, being exclusively in beam always
+ // wins.
+ if (direction == View.FOCUS_LEFT || direction == View.FOCUS_RIGHT) {
+ return true;
+ }
+
+ // For vertical directions, beams only beat up to a point: now, as
+ // long as rect2 isn't completely closer, rect1 wins, e.g. for
+ // direction down, completely closer means for rect2's top edge to
+ // be closer to the source's top edge than rect1's bottom edge.
+ return majorAxisDistance(direction, source, rect1)
+ < majorAxisDistanceToFarEdge(direction, source, rect2);
+ }
+
+ /**
+ * Fudge-factor opportunity: how to calculate distance given major and
+ * minor axis distances.
+ * <p/>
+ * Warning: this fudge factor is finely tuned, be sure to run all focus
+ * tests if you dare tweak it.
+ */
+ private static int getWeightedDistanceFor(int majorAxisDistance, int minorAxisDistance) {
+ return 13 * majorAxisDistance * majorAxisDistance
+ + minorAxisDistance * minorAxisDistance;
+ }
+
+ /**
+ * Is destRect a candidate for the next focus given the direction? This
+ * checks whether the dest is at least partially to the direction of
+ * (e.g. left of) from source.
+ * <p/>
+ * Includes an edge case for an empty rect,which is used in some cases
+ * when searching from a point on the screen.
+ */
+ private static boolean isCandidate(@NonNull Rect srcRect, @NonNull Rect destRect,
+ @FocusRealDirection int direction) {
+ switch (direction) {
+ case View.FOCUS_LEFT:
+ return (srcRect.right > destRect.right || srcRect.left >= destRect.right)
+ && srcRect.left > destRect.left;
+ case View.FOCUS_RIGHT:
+ return (srcRect.left < destRect.left || srcRect.right <= destRect.left)
+ && srcRect.right < destRect.right;
+ case View.FOCUS_UP:
+ return (srcRect.bottom > destRect.bottom || srcRect.top >= destRect.bottom)
+ && srcRect.top > destRect.top;
+ case View.FOCUS_DOWN:
+ return (srcRect.top < destRect.top || srcRect.bottom <= destRect.top)
+ && srcRect.bottom < destRect.bottom;
+ }
+ throw new IllegalArgumentException("direction must be one of "
+ + "{FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT}.");
+ }
+
+
+ /**
+ * Do the "beams" w.r.t the given direction's axis of rect1 and rect2 overlap?
+ *
+ * @param direction the direction (up, down, left, right)
+ * @param rect1 the first rectangle
+ * @param rect2 the second rectangle
+ * @return whether the beams overlap
+ */
+ private static boolean beamsOverlap(@FocusRealDirection int direction,
+ @NonNull Rect rect1, @NonNull Rect rect2) {
+ switch (direction) {
+ case View.FOCUS_LEFT:
+ case View.FOCUS_RIGHT:
+ return (rect2.bottom >= rect1.top) && (rect2.top <= rect1.bottom);
+ case View.FOCUS_UP:
+ case View.FOCUS_DOWN:
+ return (rect2.right >= rect1.left) && (rect2.left <= rect1.right);
+ }
+ throw new IllegalArgumentException("direction must be one of "
+ + "{FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT}.");
+ }
+
+ /**
+ * e.g for left, is 'to left of'
+ */
+ private static boolean isToDirectionOf(@FocusRealDirection int direction,
+ @NonNull Rect src, @NonNull Rect dest) {
+ switch (direction) {
+ case View.FOCUS_LEFT:
+ return src.left >= dest.right;
+ case View.FOCUS_RIGHT:
+ return src.right <= dest.left;
+ case View.FOCUS_UP:
+ return src.top >= dest.bottom;
+ case View.FOCUS_DOWN:
+ return src.bottom <= dest.top;
+ }
+ throw new IllegalArgumentException("direction must be one of "
+ + "{FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT}.");
+ }
+
+ /**
+ * @return the distance from the edge furthest in the given direction
+ * of source to the edge nearest in the given direction of
+ * dest. If the dest is not in the direction from source,
+ * returns 0.
+ */
+ private static int majorAxisDistance(@FocusRealDirection int direction,
+ @NonNull Rect source, @NonNull Rect dest) {
+ return Math.max(0, majorAxisDistanceRaw(direction, source, dest));
+ }
+
+ private static int majorAxisDistanceRaw(@FocusRealDirection int direction,
+ @NonNull Rect source, @NonNull Rect dest) {
+ switch (direction) {
+ case View.FOCUS_LEFT:
+ return source.left - dest.right;
+ case View.FOCUS_RIGHT:
+ return dest.left - source.right;
+ case View.FOCUS_UP:
+ return source.top - dest.bottom;
+ case View.FOCUS_DOWN:
+ return dest.top - source.bottom;
+ }
+ throw new IllegalArgumentException("direction must be one of "
+ + "{FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT}.");
+ }
+
+ /**
+ * @return the distance along the major axis w.r.t the direction from
+ * the edge of source to the far edge of dest. If the dest is
+ * not in the direction from source, returns 1 to break ties
+ * with {@link #majorAxisDistance}.
+ */
+ private static int majorAxisDistanceToFarEdge(@FocusRealDirection int direction,
+ @NonNull Rect source, @NonNull Rect dest) {
+ return Math.max(1, majorAxisDistanceToFarEdgeRaw(direction, source, dest));
+ }
+
+ private static int majorAxisDistanceToFarEdgeRaw(
+ @FocusRealDirection int direction, @NonNull Rect source,
+ @NonNull Rect dest) {
+ switch (direction) {
+ case View.FOCUS_LEFT:
+ return source.left - dest.left;
+ case View.FOCUS_RIGHT:
+ return dest.right - source.right;
+ case View.FOCUS_UP:
+ return source.top - dest.top;
+ case View.FOCUS_DOWN:
+ return dest.bottom - source.bottom;
+ }
+ throw new IllegalArgumentException("direction must be one of "
+ + "{FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT}.");
+ }
+
+ /**
+ * Finds the distance on the minor axis w.r.t the direction to the
+ * nearest edge of the destination rectangle.
+ *
+ * @param direction the direction (up, down, left, right)
+ * @param source the source rect
+ * @param dest the destination rect
+ * @return the distance
+ */
+ private static int minorAxisDistance(@FocusRealDirection int direction, @NonNull Rect source,
+ @NonNull Rect dest) {
+ switch (direction) {
+ case View.FOCUS_LEFT:
+ case View.FOCUS_RIGHT:
+ // the distance between the center verticals
+ return Math.abs(
+ ((source.top + source.height() / 2) -
+ ((dest.top + dest.height() / 2))));
+ case View.FOCUS_UP:
+ case View.FOCUS_DOWN:
+ // the distance between the center horizontals
+ return Math.abs(
+ ((source.left + source.width() / 2) -
+ ((dest.left + dest.width() / 2))));
+ }
+ throw new IllegalArgumentException("direction must be one of "
+ + "{FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT}.");
+ }
+
+ /**
+ * Adapter used to obtain bounds from a generic data type.
+ */
+ public interface BoundsAdapter<T> {
+ void obtainBounds(T data, Rect outBounds);
+ }
+
+ /**
+ * Adapter used to obtain items from a generic collection type.
+ */
+ public interface CollectionAdapter<T, V> {
+ V get(T collection, int index);
+ int size(T collection);
+ }
+}
diff --git a/v7/appcompat/api/current.txt b/v7/appcompat/api/current.txt
index f0e90e1..5024159 100644
--- a/v7/appcompat/api/current.txt
+++ b/v7/appcompat/api/current.txt
@@ -244,6 +244,7 @@
public abstract class AppCompatDelegate {
method public abstract void addContentView(android.view.View, android.view.ViewGroup.LayoutParams);
+ method public abstract void applyDayNight();
method public static android.support.v7.app.AppCompatDelegate create(android.app.Activity, android.support.v7.app.AppCompatCallback);
method public static android.support.v7.app.AppCompatDelegate create(android.app.Dialog, android.support.v7.app.AppCompatCallback);
method public abstract android.view.View createView(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet);
@@ -265,12 +266,16 @@
method public abstract void setContentView(int);
method public abstract void setContentView(android.view.View, android.view.ViewGroup.LayoutParams);
method public abstract void setHandleNativeActionModesEnabled(boolean);
+ method public abstract void setNightMode(int);
method public abstract void setSupportActionBar(android.support.v7.widget.Toolbar);
method public abstract void setTitle(java.lang.CharSequence);
method public abstract android.support.v7.view.ActionMode startSupportActionMode(android.support.v7.view.ActionMode.Callback);
field public static final int FEATURE_ACTION_MODE_OVERLAY = 10; // 0xa
field public static final int FEATURE_SUPPORT_ACTION_BAR = 108; // 0x6c
field public static final int FEATURE_SUPPORT_ACTION_BAR_OVERLAY = 109; // 0x6d
+ field public static final int MODE_NIGHT_AUTO = 2; // 0x2
+ field public static final int MODE_NIGHT_NO = 0; // 0x0
+ field public static final int MODE_NIGHT_YES = 1; // 0x1
}
public class AppCompatDialog extends android.app.Dialog implements android.support.v7.app.AppCompatCallback {
@@ -1176,6 +1181,13 @@
field public static int ThemeOverlay_AppCompat_Light;
field public static int Theme_AppCompat;
field public static int Theme_AppCompat_CompactMenu;
+ field public static int Theme_AppCompat_DayNight;
+ field public static int Theme_AppCompat_DayNight_DarkActionBar;
+ field public static int Theme_AppCompat_DayNight_Dialog;
+ field public static int Theme_AppCompat_DayNight_DialogWhenLarge;
+ field public static int Theme_AppCompat_DayNight_Dialog_Alert;
+ field public static int Theme_AppCompat_DayNight_Dialog_MinWidth;
+ field public static int Theme_AppCompat_DayNight_NoActionBar;
field public static int Theme_AppCompat_Dialog;
field public static int Theme_AppCompat_DialogWhenLarge;
field public static int Theme_AppCompat_Dialog_Alert;
diff --git a/v7/appcompat/res-public/values/public_styles.xml b/v7/appcompat/res-public/values/public_styles.xml
index 991ab54..973c317 100644
--- a/v7/appcompat/res-public/values/public_styles.xml
+++ b/v7/appcompat/res-public/values/public_styles.xml
@@ -61,6 +61,13 @@
<public type="style" name="TextAppearance.AppCompat.Widget.Switch"/>
<public type="style" name="TextAppearance.AppCompat.Widget.TextView.SpinnerItem"/>
<public type="style" name="Theme.AppCompat"/>
+ <public type="style" name="Theme.AppCompat.DayNight"/>
+ <public type="style" name="Theme.AppCompat.DayNight.DarkActionBar"/>
+ <public type="style" name="Theme.AppCompat.DayNight.Dialog"/>
+ <public type="style" name="Theme.AppCompat.DayNight.Dialog.Alert"/>
+ <public type="style" name="Theme.AppCompat.DayNight.Dialog.MinWidth"/>
+ <public type="style" name="Theme.AppCompat.DayNight.DialogWhenLarge"/>
+ <public type="style" name="Theme.AppCompat.DayNight.NoActionBar"/>
<public type="style" name="Theme.AppCompat.Dialog"/>
<public type="style" name="Theme.AppCompat.Dialog.Alert"/>
<public type="style" name="Theme.AppCompat.Dialog.MinWidth"/>
diff --git a/v7/appcompat/res/values-af/strings.xml b/v7/appcompat/res/values-af/strings.xml
index 4bb50b0..3964909 100644
--- a/v7/appcompat/res/values-af/strings.xml
+++ b/v7/appcompat/res/values-af/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Deel met %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Deel met"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"AAN"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"AF"</string>
</resources>
diff --git a/v7/appcompat/res/values-am/strings.xml b/v7/appcompat/res/values-am/strings.xml
index a76c931..ae720f8 100644
--- a/v7/appcompat/res/values-am/strings.xml
+++ b/v7/appcompat/res/values-am/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"ከ%s ጋር ያጋሩ"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"ከሚከተለው ጋር ያጋሩ"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"በርቷል"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"ጠፍቷል"</string>
</resources>
diff --git a/v7/appcompat/res/values-ar/strings.xml b/v7/appcompat/res/values-ar/strings.xml
index f0046a9..313daf8 100644
--- a/v7/appcompat/res/values-ar/strings.xml
+++ b/v7/appcompat/res/values-ar/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"مشاركة مع %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"مشاركة مع"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"+999"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"تشغيل"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"إيقاف"</string>
</resources>
diff --git a/v7/appcompat/res/values-az-rAZ/strings.xml b/v7/appcompat/res/values-az-rAZ/strings.xml
new file mode 100644
index 0000000..37d2399
--- /dev/null
+++ b/v7/appcompat/res/values-az-rAZ/strings.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2012 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 xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="abc_action_mode_done" msgid="4076576682505996667">"Hazırdır"</string>
+ <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Evə get"</string>
+ <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Yuxarı get"</string>
+ <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Daha çox seçim"</string>
+ <string name="abc_toolbar_collapse_description" msgid="1603543279005712093">"Dağıt"</string>
+ <string name="abc_action_bar_home_description_format" msgid="1397052879051804371">"%1$s, %2$s"</string>
+ <string name="abc_action_bar_home_subtitle_description_format" msgid="6623331958280229229">"%1$s, %2$s, %3$s"</string>
+ <string name="abc_searchview_description_search" msgid="8264924765203268293">"Axtarış"</string>
+ <string name="abc_search_hint" msgid="7723749260725869598">"Axtarış..."</string>
+ <string name="abc_searchview_description_query" msgid="2550479030709304392">"Axtarış sorğusu"</string>
+ <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Sorğunu təmizlə"</string>
+ <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Sorğunu göndərin"</string>
+ <string name="abc_searchview_description_voice" msgid="893419373245838918">"Səsli axtarış"</string>
+ <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Tətbiq seçin"</string>
+ <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Hamısına baxın"</string>
+ <!-- String.format failed for translation -->
+ <!-- no translation found for abc_shareactionprovider_share_with_application (7165123711973476752) -->
+ <skip />
+ <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Bununla paylaşın"</string>
+ <string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"AKTİV"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"DEAKTİV"</string>
+</resources>
diff --git a/v7/appcompat/res/values-bg/strings.xml b/v7/appcompat/res/values-bg/strings.xml
index d8cbcd0..c71fd6c 100644
--- a/v7/appcompat/res/values-bg/strings.xml
+++ b/v7/appcompat/res/values-bg/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Споделяне със: %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Споделяне със:"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ВКЛ."</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"ИЗКЛ."</string>
</resources>
diff --git a/v7/appcompat/res/values-bn-rBD/strings.xml b/v7/appcompat/res/values-bn-rBD/strings.xml
index 872d425..6be164f 100644
--- a/v7/appcompat/res/values-bn-rBD/strings.xml
+++ b/v7/appcompat/res/values-bn-rBD/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s এর সাথে ভাগ করুন"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"এর সাথে ভাগ করুন"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"৯৯৯+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"চালু"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"বন্ধ"</string>
</resources>
diff --git a/v7/appcompat/res/values-ca/strings.xml b/v7/appcompat/res/values-ca/strings.xml
index 863e69f..2613ea6 100644
--- a/v7/appcompat/res/values-ca/strings.xml
+++ b/v7/appcompat/res/values-ca/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Comparteix amb %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Comparteix amb"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"+999"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ACTIVAT"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"DESACTIVAT"</string>
</resources>
diff --git a/v7/appcompat/res/values-cs/strings.xml b/v7/appcompat/res/values-cs/strings.xml
index cba91eb..c8e1921 100644
--- a/v7/appcompat/res/values-cs/strings.xml
+++ b/v7/appcompat/res/values-cs/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Sdílet pomocí %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Sdílet pomocí"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ZAPNUTO"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"VYPNUTO"</string>
</resources>
diff --git a/v7/appcompat/res/values-da/strings.xml b/v7/appcompat/res/values-da/strings.xml
index bda4579..e7ac13f 100644
--- a/v7/appcompat/res/values-da/strings.xml
+++ b/v7/appcompat/res/values-da/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Del med %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Del med"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"TIL"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"FRA"</string>
</resources>
diff --git a/v7/appcompat/res/values-de/strings.xml b/v7/appcompat/res/values-de/strings.xml
index b5a74e9..06a18b5 100644
--- a/v7/appcompat/res/values-de/strings.xml
+++ b/v7/appcompat/res/values-de/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Freigeben für %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Freigeben für"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"An"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"Aus"</string>
</resources>
diff --git a/v7/appcompat/res/values-el/strings.xml b/v7/appcompat/res/values-el/strings.xml
index 1ecc119..5309082 100644
--- a/v7/appcompat/res/values-el/strings.xml
+++ b/v7/appcompat/res/values-el/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Κοινή χρήση με %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Κοινή χρήση με"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ΕΝΕΡΓΟΠΟΙΗΣΗ"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"ΑΠΕΝΕΡΓΟΠΟΙΗΣΗ"</string>
</resources>
diff --git a/v7/appcompat/res/values-en-rAU/strings.xml b/v7/appcompat/res/values-en-rAU/strings.xml
index 4db58a9..ab73cfd 100644
--- a/v7/appcompat/res/values-en-rAU/strings.xml
+++ b/v7/appcompat/res/values-en-rAU/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Share with %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Share with"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ON"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"OFF"</string>
</resources>
diff --git a/v7/appcompat/res/values-en-rGB/strings.xml b/v7/appcompat/res/values-en-rGB/strings.xml
index 4db58a9..ab73cfd 100644
--- a/v7/appcompat/res/values-en-rGB/strings.xml
+++ b/v7/appcompat/res/values-en-rGB/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Share with %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Share with"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ON"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"OFF"</string>
</resources>
diff --git a/v7/appcompat/res/values-en-rIN/strings.xml b/v7/appcompat/res/values-en-rIN/strings.xml
index 4db58a9..ab73cfd 100644
--- a/v7/appcompat/res/values-en-rIN/strings.xml
+++ b/v7/appcompat/res/values-en-rIN/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Share with %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Share with"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ON"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"OFF"</string>
</resources>
diff --git a/v7/appcompat/res/values-es-rUS/strings.xml b/v7/appcompat/res/values-es-rUS/strings.xml
index 043c6ae..f1e3dbb 100644
--- a/v7/appcompat/res/values-es-rUS/strings.xml
+++ b/v7/appcompat/res/values-es-rUS/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Compartir con %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Compartir con"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ACTIVAR"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"DESACTIVAR"</string>
</resources>
diff --git a/v7/appcompat/res/values-es/strings.xml b/v7/appcompat/res/values-es/strings.xml
index 8f6ea4b..d8e7d39 100644
--- a/v7/appcompat/res/values-es/strings.xml
+++ b/v7/appcompat/res/values-es/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Compartir con %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Compartir con"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"+999"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"SÍ"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"NO"</string>
</resources>
diff --git a/v7/appcompat/res/values-et-rEE/strings.xml b/v7/appcompat/res/values-et-rEE/strings.xml
index b8c7f16..03091c4 100644
--- a/v7/appcompat/res/values-et-rEE/strings.xml
+++ b/v7/appcompat/res/values-et-rEE/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Jagamine kasutajaga %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Jagamine:"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"SEES"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"VÄLJAS"</string>
</resources>
diff --git a/v7/appcompat/res/values-eu-rES/strings.xml b/v7/appcompat/res/values-eu-rES/strings.xml
index 3b0fb90..92bda4a 100644
--- a/v7/appcompat/res/values-eu-rES/strings.xml
+++ b/v7/appcompat/res/values-eu-rES/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Partekatu %s erabiltzailearekin"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Partekatu hauekin"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"AKTIBATUTA"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"DESAKTIBATUTA"</string>
</resources>
diff --git a/v7/appcompat/res/values-fa/strings.xml b/v7/appcompat/res/values-fa/strings.xml
index ae4eb85..97d6ea7 100644
--- a/v7/appcompat/res/values-fa/strings.xml
+++ b/v7/appcompat/res/values-fa/strings.xml
@@ -16,7 +16,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="abc_action_mode_done" msgid="4076576682505996667">"انجام شد"</string>
+ <string name="abc_action_mode_done" msgid="4076576682505996667">"تمام"</string>
<string name="abc_action_bar_home_description" msgid="4600421777120114993">"پیمایش به صفحه اصلی"</string>
<string name="abc_action_bar_up_description" msgid="1594238315039666878">"پیمایش به بالا"</string>
<string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"گزینههای بیشتر"</string>
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"اشتراکگذاری با %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"اشتراکگذاری با"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"۹۹۹+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"روشن"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"خاموش"</string>
</resources>
diff --git a/v7/appcompat/res/values-fi/strings.xml b/v7/appcompat/res/values-fi/strings.xml
index 4b3e728..77a4a98 100644
--- a/v7/appcompat/res/values-fi/strings.xml
+++ b/v7/appcompat/res/values-fi/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Jakaminen: %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Jakaminen:"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"KÄYTÖSSÄ"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"POIS KÄYTÖSTÄ"</string>
</resources>
diff --git a/v7/appcompat/res/values-fr-rCA/strings.xml b/v7/appcompat/res/values-fr-rCA/strings.xml
index 291bd4e..1f636fb 100644
--- a/v7/appcompat/res/values-fr-rCA/strings.xml
+++ b/v7/appcompat/res/values-fr-rCA/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Partager avec %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Partager"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">">999"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ACTIVÉ"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"DÉSACTIVÉ"</string>
</resources>
diff --git a/v7/appcompat/res/values-fr/strings.xml b/v7/appcompat/res/values-fr/strings.xml
index b7f5604..8fc4240 100644
--- a/v7/appcompat/res/values-fr/strings.xml
+++ b/v7/appcompat/res/values-fr/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Partager avec %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Partager avec"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">">999"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ACTIVÉ"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"DÉSACTIVÉ"</string>
</resources>
diff --git a/v7/appcompat/res/values-gl-rES/strings.xml b/v7/appcompat/res/values-gl-rES/strings.xml
index b6b11be..ee1e7d5 100644
--- a/v7/appcompat/res/values-gl-rES/strings.xml
+++ b/v7/appcompat/res/values-gl-rES/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Compartir con %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Compartir con"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">">999"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ACTIVAR"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"DESACTIVAR"</string>
</resources>
diff --git a/v7/appcompat/res/values-gu-rIN/strings.xml b/v7/appcompat/res/values-gu-rIN/strings.xml
index b77acd3..6fea9bb 100644
--- a/v7/appcompat/res/values-gu-rIN/strings.xml
+++ b/v7/appcompat/res/values-gu-rIN/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s સાથે શેર કરો"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"આની સાથે શેર કરો"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ચાલુ"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"બંધ"</string>
</resources>
diff --git a/v7/appcompat/res/values-hi/strings.xml b/v7/appcompat/res/values-hi/strings.xml
index 95daa34..17d3d7b 100644
--- a/v7/appcompat/res/values-hi/strings.xml
+++ b/v7/appcompat/res/values-hi/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s के साथ साझा करें"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"इसके द्वारा साझा करें"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"चालू"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"बंद"</string>
</resources>
diff --git a/v7/appcompat/res/values-hr/strings.xml b/v7/appcompat/res/values-hr/strings.xml
index da68332..6467bfa 100644
--- a/v7/appcompat/res/values-hr/strings.xml
+++ b/v7/appcompat/res/values-hr/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Dijeljenje sa: %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Dijeljenje sa"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"UKLJUČENO"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"ISKLJUČENO"</string>
</resources>
diff --git a/v7/appcompat/res/values-hu/strings.xml b/v7/appcompat/res/values-hu/strings.xml
index 57ab85b..1cb4fe5 100644
--- a/v7/appcompat/res/values-hu/strings.xml
+++ b/v7/appcompat/res/values-hu/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Megosztás a következővel: %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Megosztás a következővel:"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"BE"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"KI"</string>
</resources>
diff --git a/v7/appcompat/res/values-hy-rAM/strings.xml b/v7/appcompat/res/values-hy-rAM/strings.xml
index 903fa43..708275a 100644
--- a/v7/appcompat/res/values-hy-rAM/strings.xml
+++ b/v7/appcompat/res/values-hy-rAM/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Տարածել ըստ %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Տարածել"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ՄԻԱՑՎԱԾ"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"ԱՆՋԱՏՎԱԾ"</string>
</resources>
diff --git a/v7/appcompat/res/values-in/strings.xml b/v7/appcompat/res/values-in/strings.xml
index 0e7003c..d2d0ecc 100644
--- a/v7/appcompat/res/values-in/strings.xml
+++ b/v7/appcompat/res/values-in/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Bagikan dengan %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Bagikan dengan"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"AKTIF"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"NONAKTIF"</string>
</resources>
diff --git a/v7/appcompat/res/values-is-rIS/strings.xml b/v7/appcompat/res/values-is-rIS/strings.xml
index fb305b2..c8ded4d 100644
--- a/v7/appcompat/res/values-is-rIS/strings.xml
+++ b/v7/appcompat/res/values-is-rIS/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Deila með %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Deila með"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"KVEIKT"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"SLÖKKT"</string>
</resources>
diff --git a/v7/appcompat/res/values-it/strings.xml b/v7/appcompat/res/values-it/strings.xml
index a2d9bee..31bff55 100644
--- a/v7/appcompat/res/values-it/strings.xml
+++ b/v7/appcompat/res/values-it/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Condividi con %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Condividi con"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ON"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"OFF"</string>
</resources>
diff --git a/v7/appcompat/res/values-iw/strings.xml b/v7/appcompat/res/values-iw/strings.xml
index 329d0ec..6b834d9 100644
--- a/v7/appcompat/res/values-iw/strings.xml
+++ b/v7/appcompat/res/values-iw/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"שתף עם %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"שתף עם"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"פועל"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"כבוי"</string>
</resources>
diff --git a/v7/appcompat/res/values-ja/strings.xml b/v7/appcompat/res/values-ja/strings.xml
index fa55b08..45fb2c0 100644
--- a/v7/appcompat/res/values-ja/strings.xml
+++ b/v7/appcompat/res/values-ja/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%sと共有"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"共有"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ON"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"OFF"</string>
</resources>
diff --git a/v7/appcompat/res/values-ka-rGE/strings.xml b/v7/appcompat/res/values-ka-rGE/strings.xml
index b14bcb7..91c31fb 100644
--- a/v7/appcompat/res/values-ka-rGE/strings.xml
+++ b/v7/appcompat/res/values-ka-rGE/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s-თან გაზიარება"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"გაზიარება:"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ჩართულია"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"გამორთულია"</string>
</resources>
diff --git a/v7/appcompat/res/values-kk-rKZ/strings.xml b/v7/appcompat/res/values-kk-rKZ/strings.xml
index 52b9af5..81fcfa9 100644
--- a/v7/appcompat/res/values-kk-rKZ/strings.xml
+++ b/v7/appcompat/res/values-kk-rKZ/strings.xml
@@ -16,7 +16,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="abc_action_mode_done" msgid="4076576682505996667">"Орындалды"</string>
+ <string name="abc_action_mode_done" msgid="4076576682505996667">"Дайын"</string>
<string name="abc_action_bar_home_description" msgid="4600421777120114993">"Негізгі бетте қозғалу"</string>
<string name="abc_action_bar_up_description" msgid="1594238315039666878">"Жоғары қозғалу"</string>
<string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Басқа опциялар"</string>
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s бөлісу"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Бөлісу"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ҚОСУЛЫ"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"ӨШІРУЛІ"</string>
</resources>
diff --git a/v7/appcompat/res/values-km-rKH/strings.xml b/v7/appcompat/res/values-km-rKH/strings.xml
index aa81b7d..ee4bcbe 100644
--- a/v7/appcompat/res/values-km-rKH/strings.xml
+++ b/v7/appcompat/res/values-km-rKH/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"ចែករំលែកជាមួយ %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"ចែករំលែកជាមួយ"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"បើក"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"បិទ"</string>
</resources>
diff --git a/v7/appcompat/res/values-kn-rIN/strings.xml b/v7/appcompat/res/values-kn-rIN/strings.xml
index 7ef7572..abd409e 100644
--- a/v7/appcompat/res/values-kn-rIN/strings.xml
+++ b/v7/appcompat/res/values-kn-rIN/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s ಜೊತೆಗೆ ಹಂಚಿಕೊಳ್ಳಿ"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"ಇವರೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಿ"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ಆನ್"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"ಆಫ್"</string>
</resources>
diff --git a/v7/appcompat/res/values-ko/strings.xml b/v7/appcompat/res/values-ko/strings.xml
index 7c158f9..262f543 100644
--- a/v7/appcompat/res/values-ko/strings.xml
+++ b/v7/appcompat/res/values-ko/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s와(과) 공유"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"공유 대상"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"사용"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"사용 안함"</string>
</resources>
diff --git a/v7/appcompat/res/values-ky-rKG/strings.xml b/v7/appcompat/res/values-ky-rKG/strings.xml
index a758b96..3176cc6 100644
--- a/v7/appcompat/res/values-ky-rKG/strings.xml
+++ b/v7/appcompat/res/values-ky-rKG/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s аркылуу бөлүшүү"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Бөлүшүү"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"КҮЙҮК"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"ӨЧҮК"</string>
</resources>
diff --git a/v7/appcompat/res/values-lo-rLA/strings.xml b/v7/appcompat/res/values-lo-rLA/strings.xml
index 3b93232..c95fd60 100644
--- a/v7/appcompat/res/values-lo-rLA/strings.xml
+++ b/v7/appcompat/res/values-lo-rLA/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"ແບ່ງປັນກັບ %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"ແບ່ງປັນກັບ"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ເປີດ"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"ປິດ"</string>
</resources>
diff --git a/v7/appcompat/res/values-lt/strings.xml b/v7/appcompat/res/values-lt/strings.xml
index b070a2f..992910c 100644
--- a/v7/appcompat/res/values-lt/strings.xml
+++ b/v7/appcompat/res/values-lt/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Bendrinti naudojant „%s“"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Bendrinti naudojant"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ĮJUNGTI"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"IŠJUNGTI"</string>
</resources>
diff --git a/v7/appcompat/res/values-lv/strings.xml b/v7/appcompat/res/values-lv/strings.xml
index 7c4ef4f..6700c87 100644
--- a/v7/appcompat/res/values-lv/strings.xml
+++ b/v7/appcompat/res/values-lv/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Kopīgot ar %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Kopīgot ar:"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"IESLĒGTS"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"IZSLĒGTS"</string>
</resources>
diff --git a/v7/appcompat/res/values-mk-rMK/strings.xml b/v7/appcompat/res/values-mk-rMK/strings.xml
index ac2b03e..a386996 100644
--- a/v7/appcompat/res/values-mk-rMK/strings.xml
+++ b/v7/appcompat/res/values-mk-rMK/strings.xml
@@ -38,4 +38,6 @@
<skip />
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Сподели со"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ВКЛУЧЕНО"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"ИСКЛУЧЕНО"</string>
</resources>
diff --git a/v7/appcompat/res/values-ml-rIN/strings.xml b/v7/appcompat/res/values-ml-rIN/strings.xml
index 53f8e4b..292fcc0 100644
--- a/v7/appcompat/res/values-ml-rIN/strings.xml
+++ b/v7/appcompat/res/values-ml-rIN/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s എന്നതുമായി പങ്കിടുക"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"ഇവരുമായി പങ്കിടുക"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ഓൺ"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"ഓഫ്"</string>
</resources>
diff --git a/v7/appcompat/res/values-mn-rMN/strings.xml b/v7/appcompat/res/values-mn-rMN/strings.xml
index a89dc4d..75a9724 100644
--- a/v7/appcompat/res/values-mn-rMN/strings.xml
+++ b/v7/appcompat/res/values-mn-rMN/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s-тай хуваалцах"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Хуваалцах"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ИДЭВХТЭЙ"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"ИДЭВХГҮЙ"</string>
</resources>
diff --git a/v7/appcompat/res/values-mr-rIN/strings.xml b/v7/appcompat/res/values-mr-rIN/strings.xml
index 1afbd81..76d42a9 100644
--- a/v7/appcompat/res/values-mr-rIN/strings.xml
+++ b/v7/appcompat/res/values-mr-rIN/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s सह सामायिक करा"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"यांच्यासह सामायिक करा"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"चालू"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"बंद"</string>
</resources>
diff --git a/v7/appcompat/res/values-ms-rMY/strings.xml b/v7/appcompat/res/values-ms-rMY/strings.xml
index 9763618..75ffefb 100644
--- a/v7/appcompat/res/values-ms-rMY/strings.xml
+++ b/v7/appcompat/res/values-ms-rMY/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Kongsi dengan %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Kongsi dengan"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"HIDUP"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"MATI"</string>
</resources>
diff --git a/v7/appcompat/res/values-my-rMM/strings.xml b/v7/appcompat/res/values-my-rMM/strings.xml
index 936ac99..f8690aa 100644
--- a/v7/appcompat/res/values-my-rMM/strings.xml
+++ b/v7/appcompat/res/values-my-rMM/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s ကို မျှဝေပါရန်"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"မျှဝေဖို့ ရွေးပါ"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"၉၉၉+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ဖွင့်"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"ပိတ်"</string>
</resources>
diff --git a/v7/appcompat/res/values-nb/strings.xml b/v7/appcompat/res/values-nb/strings.xml
index 483f707..10f3024 100644
--- a/v7/appcompat/res/values-nb/strings.xml
+++ b/v7/appcompat/res/values-nb/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Del med %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Del med"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"PÅ"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"AV"</string>
</resources>
diff --git a/v7/appcompat/res/values-ne-rNP/strings.xml b/v7/appcompat/res/values-ne-rNP/strings.xml
index 4a08778..a841f21 100644
--- a/v7/appcompat/res/values-ne-rNP/strings.xml
+++ b/v7/appcompat/res/values-ne-rNP/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s सँग साझेदारी गर्नुहोस्"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"साझेदारी गर्नुहोस्..."</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"९९९+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"सक्रिय गर्नुहोस्"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"निष्क्रिय पार्नुहोस्"</string>
</resources>
diff --git a/v7/appcompat/res/values-night/themes_daynight.xml b/v7/appcompat/res/values-night/themes_daynight.xml
new file mode 100644
index 0000000..965d355
--- /dev/null
+++ b/v7/appcompat/res/values-night/themes_daynight.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.
+-->
+
+<resources>
+
+ <!-- Material theme (day/night vesion) for activities. -->
+ <style name="Theme.AppCompat.DayNight" parent="Theme.AppCompat" />
+
+ <!-- Variant of AppCompat.DayNight that has a solid (opaque) action bar
+ with an inverse color profile. The dark action bar sharply stands out against
+ the light content (when applicable). -->
+ <style name="Theme.AppCompat.DayNight.DarkActionBar" parent="Theme.AppCompat" />
+
+ <!-- Variant of AppCompat.DayNight with no action bar. -->
+ <style name="Theme.AppCompat.DayNight.NoActionBar" parent="Theme.AppCompat.NoActionBar" />
+
+ <!-- Material theme (day/night vesion) for dialog windows and activities,
+ which is used by the {@code android.support.v7.app.Dialog} class. This changes
+ the window to be floating (not fill the entire screen), and puts a
+ frame around its contents. You can set this theme on an activity if
+ you would like to make an activity that looks like a Dialog. -->
+ <style name="Theme.AppCompat.DayNight.Dialog" parent="Theme.AppCompat.Dialog" />
+
+ <!-- Variant of Theme.AppCompat.DayNight.Dialog that has a nice minimum width for
+ a regular dialog. -->
+ <style name="Theme.AppCompat.DayNight.Dialog.MinWidth" parent="Theme.AppCompat.Dialog.MinWidth" />
+
+ <!-- Theme for a window that will be displayed either full-screen on
+ smaller screens (small, normal) or as a dialog on larger screens
+ (large, xlarge). -->
+ <style name="Theme.AppCompat.DayNight.DialogWhenLarge" parent="Theme.AppCompat.DialogWhenLarge" />
+
+ <!-- Material user theme for alert dialog windows, which is used by the
+ {@code android.support.v7.app.AlertDialog} class. -->
+ <style name="Theme.AppCompat.DayNight.Dialog.Alert" parent="Theme.AppCompat.Dialog.Alert" />
+
+</resources>
\ No newline at end of file
diff --git a/v7/appcompat/res/values-nl/strings.xml b/v7/appcompat/res/values-nl/strings.xml
index 38a7607..adb0f0e 100644
--- a/v7/appcompat/res/values-nl/strings.xml
+++ b/v7/appcompat/res/values-nl/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Delen met %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Delen met"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"AAN"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"UIT"</string>
</resources>
diff --git a/v7/appcompat/res/values-pa-rIN/strings.xml b/v7/appcompat/res/values-pa-rIN/strings.xml
index af87fdf..45b703a 100644
--- a/v7/appcompat/res/values-pa-rIN/strings.xml
+++ b/v7/appcompat/res/values-pa-rIN/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s ਨਾਲ ਸ਼ੇਅਰ ਕਰੋ"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"ਇਸ ਨਾਲ ਸ਼ੇਅਰ ਕਰੋ"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ਤੇ"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"ਬੰਦ"</string>
</resources>
diff --git a/v7/appcompat/res/values-pl/strings.xml b/v7/appcompat/res/values-pl/strings.xml
index 72fa439..166986a 100644
--- a/v7/appcompat/res/values-pl/strings.xml
+++ b/v7/appcompat/res/values-pl/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Udostępnij dla %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Udostępnij dla"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"WŁ."</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"WYŁ."</string>
</resources>
diff --git a/v7/appcompat/res/values-pt-rBR/strings.xml b/v7/appcompat/res/values-pt-rBR/strings.xml
new file mode 100644
index 0000000..06cf8d9
--- /dev/null
+++ b/v7/appcompat/res/values-pt-rBR/strings.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2012 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 xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="abc_action_mode_done" msgid="4076576682505996667">"Concluído"</string>
+ <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Navegar para a página inicial"</string>
+ <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Navegar para cima"</string>
+ <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Mais opções"</string>
+ <string name="abc_toolbar_collapse_description" msgid="1603543279005712093">"Recolher"</string>
+ <string name="abc_action_bar_home_description_format" msgid="1397052879051804371">"%1$s, %2$s"</string>
+ <string name="abc_action_bar_home_subtitle_description_format" msgid="6623331958280229229">"%1$s, %2$s, %3$s"</string>
+ <string name="abc_searchview_description_search" msgid="8264924765203268293">"Pesquisar"</string>
+ <string name="abc_search_hint" msgid="7723749260725869598">"Pesquisar..."</string>
+ <string name="abc_searchview_description_query" msgid="2550479030709304392">"Consulta de pesquisa"</string>
+ <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Limpar consulta"</string>
+ <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Enviar consulta"</string>
+ <string name="abc_searchview_description_voice" msgid="893419373245838918">"Pesquisa por voz"</string>
+ <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Selecione um app"</string>
+ <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Ver tudo"</string>
+ <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Compartilhar com %s"</string>
+ <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Compartilhar com"</string>
+ <string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ATIVAR"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"DESATIVAR"</string>
+</resources>
diff --git a/v7/appcompat/res/values-pt-rPT/strings.xml b/v7/appcompat/res/values-pt-rPT/strings.xml
index d76c5c8..176aade 100644
--- a/v7/appcompat/res/values-pt-rPT/strings.xml
+++ b/v7/appcompat/res/values-pt-rPT/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Partilhar com %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Partilhar com"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"+999"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ATIVADO"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"DESATIVADO"</string>
</resources>
diff --git a/v7/appcompat/res/values-pt/strings.xml b/v7/appcompat/res/values-pt/strings.xml
index dfcfce8..06cf8d9 100644
--- a/v7/appcompat/res/values-pt/strings.xml
+++ b/v7/appcompat/res/values-pt/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Compartilhar com %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Compartilhar com"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ATIVAR"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"DESATIVAR"</string>
</resources>
diff --git a/v7/appcompat/res/values-ro/strings.xml b/v7/appcompat/res/values-ro/strings.xml
index 55538ee..9879823 100644
--- a/v7/appcompat/res/values-ro/strings.xml
+++ b/v7/appcompat/res/values-ro/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Trimiteți la %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Trimiteți la"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"˃999"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ACTIVAȚI"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"DEZACTIVAȚI"</string>
</resources>
diff --git a/v7/appcompat/res/values-ru/strings.xml b/v7/appcompat/res/values-ru/strings.xml
index 03a2c8f..08ed085 100644
--- a/v7/appcompat/res/values-ru/strings.xml
+++ b/v7/appcompat/res/values-ru/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Открыть доступ пользователю %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Открыть доступ"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">">999"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ВКЛ."</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"ОТКЛ."</string>
</resources>
diff --git a/v7/appcompat/res/values-si-rLK/strings.xml b/v7/appcompat/res/values-si-rLK/strings.xml
index a03b5bd..47d7dc6 100644
--- a/v7/appcompat/res/values-si-rLK/strings.xml
+++ b/v7/appcompat/res/values-si-rLK/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s සමඟ බෙදාගන්න"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"සමඟ බෙදාගන්න"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ක්රියාත්මකයි"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"ක්රියාවිරහිතයි"</string>
</resources>
diff --git a/v7/appcompat/res/values-sk/strings.xml b/v7/appcompat/res/values-sk/strings.xml
index f7f0b81..b7a2dc0 100644
--- a/v7/appcompat/res/values-sk/strings.xml
+++ b/v7/appcompat/res/values-sk/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Zdieľať pomocou %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Zdieľať pomocou"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ZAP."</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"VYP."</string>
</resources>
diff --git a/v7/appcompat/res/values-sl/strings.xml b/v7/appcompat/res/values-sl/strings.xml
index 7d5f0bf..173180f 100644
--- a/v7/appcompat/res/values-sl/strings.xml
+++ b/v7/appcompat/res/values-sl/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Deljenje z:"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Deljenje z"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"VKLOPLJENO"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"IZKLOPLJENO"</string>
</resources>
diff --git a/v7/appcompat/res/values-sq-rAL/strings.xml b/v7/appcompat/res/values-sq-rAL/strings.xml
index 68689a6..758d941 100644
--- a/v7/appcompat/res/values-sq-rAL/strings.xml
+++ b/v7/appcompat/res/values-sq-rAL/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Shpërnda publikisht me %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Shpërnda publikisht me"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"AKTIV"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"JOAKTIV"</string>
</resources>
diff --git a/v7/appcompat/res/values-sr/strings.xml b/v7/appcompat/res/values-sr/strings.xml
index e147d75..a54af9b 100644
--- a/v7/appcompat/res/values-sr/strings.xml
+++ b/v7/appcompat/res/values-sr/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Дели са апликацијом %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Дели са"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">">999"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"УКЉУЧИ"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"ИСКЉУЧИ"</string>
</resources>
diff --git a/v7/appcompat/res/values-sv/strings.xml b/v7/appcompat/res/values-sv/strings.xml
index feebdb2..a0c9cc0 100644
--- a/v7/appcompat/res/values-sv/strings.xml
+++ b/v7/appcompat/res/values-sv/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Dela med %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Dela med"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">">999"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"PÅ"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"AV"</string>
</resources>
diff --git a/v7/appcompat/res/values-sw/strings.xml b/v7/appcompat/res/values-sw/strings.xml
index 25c4039..f1382ba 100644
--- a/v7/appcompat/res/values-sw/strings.xml
+++ b/v7/appcompat/res/values-sw/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Shiriki na %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Shiriki na:"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"IMEWASHWA"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"IMEZIMWA"</string>
</resources>
diff --git a/v7/appcompat/res/values-ta-rIN/strings.xml b/v7/appcompat/res/values-ta-rIN/strings.xml
index 099526b..a31eb25 100644
--- a/v7/appcompat/res/values-ta-rIN/strings.xml
+++ b/v7/appcompat/res/values-ta-rIN/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s உடன் பகிர்"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"இதனுடன் பகிர்"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"இயக்கு"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"முடக்கு"</string>
</resources>
diff --git a/v7/appcompat/res/values-te-rIN/strings.xml b/v7/appcompat/res/values-te-rIN/strings.xml
index 8ea231a..2f6695d 100644
--- a/v7/appcompat/res/values-te-rIN/strings.xml
+++ b/v7/appcompat/res/values-te-rIN/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%sతో భాగస్వామ్యం చేయి"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"వీరితో భాగస్వామ్యం చేయి"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ఆన్ చేయి"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"ఆఫ్ చేయి"</string>
</resources>
diff --git a/v7/appcompat/res/values-th/strings.xml b/v7/appcompat/res/values-th/strings.xml
index cc5ab0a..b77ee55 100644
--- a/v7/appcompat/res/values-th/strings.xml
+++ b/v7/appcompat/res/values-th/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"แชร์กับ %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"แชร์กับ"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"เปิด"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"ปิด"</string>
</resources>
diff --git a/v7/appcompat/res/values-tl/strings.xml b/v7/appcompat/res/values-tl/strings.xml
index aa7169f..73e1b2f 100644
--- a/v7/appcompat/res/values-tl/strings.xml
+++ b/v7/appcompat/res/values-tl/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Ibahagi sa/kay %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Ibahagi sa/kay"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"I-ON"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"I-OFF"</string>
</resources>
diff --git a/v7/appcompat/res/values-tr/strings.xml b/v7/appcompat/res/values-tr/strings.xml
index 0d592fc..56aecf6 100644
--- a/v7/appcompat/res/values-tr/strings.xml
+++ b/v7/appcompat/res/values-tr/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s ile paylaş"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Şununla paylaş"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"AÇ"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"KAPAT"</string>
</resources>
diff --git a/v7/appcompat/res/values-uk/strings.xml b/v7/appcompat/res/values-uk/strings.xml
index ff08b47..5e81c70 100644
--- a/v7/appcompat/res/values-uk/strings.xml
+++ b/v7/appcompat/res/values-uk/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Надіслати через %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Надіслати через"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"УВІМК."</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"ВИМК."</string>
</resources>
diff --git a/v7/appcompat/res/values-ur-rPK/strings.xml b/v7/appcompat/res/values-ur-rPK/strings.xml
index 5196476..7972fe6 100644
--- a/v7/appcompat/res/values-ur-rPK/strings.xml
+++ b/v7/appcompat/res/values-ur-rPK/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s کے ساتھ اشتراک کریں"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"اشتراک کریں مع"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"آن"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"آف"</string>
</resources>
diff --git a/v7/appcompat/res/values-uz-rUZ/strings.xml b/v7/appcompat/res/values-uz-rUZ/strings.xml
index fa884f7..4a713a9 100644
--- a/v7/appcompat/res/values-uz-rUZ/strings.xml
+++ b/v7/appcompat/res/values-uz-rUZ/strings.xml
@@ -23,7 +23,7 @@
<string name="abc_toolbar_collapse_description" msgid="1603543279005712093">"Yig‘ish"</string>
<string name="abc_action_bar_home_description_format" msgid="1397052879051804371">"%1$s, %2$s"</string>
<string name="abc_action_bar_home_subtitle_description_format" msgid="6623331958280229229">"%1$s, %2$s, %3$s"</string>
- <string name="abc_searchview_description_search" msgid="8264924765203268293">"Izlash"</string>
+ <string name="abc_searchview_description_search" msgid="8264924765203268293">"Qidirish"</string>
<string name="abc_search_hint" msgid="7723749260725869598">"Qidirish…"</string>
<string name="abc_searchview_description_query" msgid="2550479030709304392">"So‘rovni izlash"</string>
<string name="abc_searchview_description_clear" msgid="3691816814315814921">"So‘rovni tozalash"</string>
@@ -36,4 +36,6 @@
<skip />
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Bo‘lishish:"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"YONIQ"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"O‘CHIQ"</string>
</resources>
diff --git a/v7/appcompat/res/values-vi/strings.xml b/v7/appcompat/res/values-vi/strings.xml
index 8190bc0..ec24827 100644
--- a/v7/appcompat/res/values-vi/strings.xml
+++ b/v7/appcompat/res/values-vi/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Chia sẻ với %s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Chia sẻ với"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"BẬT"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"TẮT"</string>
</resources>
diff --git a/v7/appcompat/res/values-zh-rCN/strings.xml b/v7/appcompat/res/values-zh-rCN/strings.xml
index b0fbc2f..8ac28b7 100644
--- a/v7/appcompat/res/values-zh-rCN/strings.xml
+++ b/v7/appcompat/res/values-zh-rCN/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"通过%s分享"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"分享方式"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"开启"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"关闭"</string>
</resources>
diff --git a/v7/appcompat/res/values-zh-rHK/strings.xml b/v7/appcompat/res/values-zh-rHK/strings.xml
index 2c46334..91d3289 100644
--- a/v7/appcompat/res/values-zh-rHK/strings.xml
+++ b/v7/appcompat/res/values-zh-rHK/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"與「%s」分享"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"分享對象"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999 +"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"開啟"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"關閉"</string>
</resources>
diff --git a/v7/appcompat/res/values-zh-rTW/strings.xml b/v7/appcompat/res/values-zh-rTW/strings.xml
index bfabf5a..45fea16 100644
--- a/v7/appcompat/res/values-zh-rTW/strings.xml
+++ b/v7/appcompat/res/values-zh-rTW/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"與「%s」分享"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"選擇分享對象"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"開啟"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"關閉"</string>
</resources>
diff --git a/v7/appcompat/res/values-zu/strings.xml b/v7/appcompat/res/values-zu/strings.xml
index edc265d..932624f 100644
--- a/v7/appcompat/res/values-zu/strings.xml
+++ b/v7/appcompat/res/values-zu/strings.xml
@@ -34,4 +34,6 @@
<string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Yabelana no-%s"</string>
<string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Yabelana no-"</string>
<string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"999+"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"VULIWE"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"VALIWE"</string>
</resources>
diff --git a/v7/appcompat/res/values/themes_daynight.xml b/v7/appcompat/res/values/themes_daynight.xml
new file mode 100644
index 0000000..bc7001d
--- /dev/null
+++ b/v7/appcompat/res/values/themes_daynight.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.
+-->
+
+<resources>
+
+ <!-- Material theme (day/night vesion) for activities. -->
+ <style name="Theme.AppCompat.DayNight" parent="Theme.AppCompat.Light" />
+
+ <!-- Variant of AppCompat.DayNight that has a solid (opaque) action bar
+ with an inverse color profile. The dark action bar sharply stands out against
+ the light content (when applicable). -->
+ <style name="Theme.AppCompat.DayNight.DarkActionBar" parent="Theme.AppCompat.Light.DarkActionBar" />
+
+ <!-- Variant of AppCompat.DayNight with no action bar. -->
+ <style name="Theme.AppCompat.DayNight.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar" />
+
+ <!-- Material theme (day/night vesion) for dialog windows and activities,
+ which is used by the {@code android.support.v7.app.Dialog} class. This changes
+ the window to be floating (not fill the entire screen), and puts a
+ frame around its contents. You can set this theme on an activity if
+ you would like to make an activity that looks like a Dialog. -->
+ <style name="Theme.AppCompat.DayNight.Dialog" parent="Theme.AppCompat.Light.Dialog" />
+
+ <!-- Variant of Theme.AppCompat.DayNight.Dialog that has a nice minimum width for
+ a regular dialog. -->
+ <style name="Theme.AppCompat.DayNight.Dialog.MinWidth" parent="Theme.AppCompat.Light.Dialog.MinWidth" />
+
+ <!-- Theme for a window that will be displayed either full-screen on
+ smaller screens (small, normal) or as a dialog on larger screens
+ (large, xlarge). -->
+ <style name="Theme.AppCompat.DayNight.DialogWhenLarge" parent="Theme.AppCompat.Light.DialogWhenLarge" />
+
+ <!-- Material user theme for alert dialog windows, which is used by the
+ {@code android.support.v7.app.AlertDialog} class. -->
+ <style name="Theme.AppCompat.DayNight.Dialog.Alert" parent="Theme.AppCompat.Light.Dialog.Alert" />
+
+</resources>
\ No newline at end of file
diff --git a/v7/appcompat/src/android/support/v7/app/AppCompatActivity.java b/v7/appcompat/src/android/support/v7/app/AppCompatActivity.java
index 378c558..2ce12ce 100644
--- a/v7/appcompat/src/android/support/v7/app/AppCompatActivity.java
+++ b/v7/appcompat/src/android/support/v7/app/AppCompatActivity.java
@@ -62,6 +62,12 @@
}
@Override
+ public void setTheme(int resid) {
+ getDelegate().applyDayNight();
+ super.setTheme(resid);
+ }
+
+ @Override
protected void onPostCreate(@Nullable Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
getDelegate().onPostCreate(savedInstanceState);
diff --git a/v7/appcompat/src/android/support/v7/app/AppCompatDelegate.java b/v7/appcompat/src/android/support/v7/app/AppCompatDelegate.java
index ef38511..79ca07f 100644
--- a/v7/appcompat/src/android/support/v7/app/AppCompatDelegate.java
+++ b/v7/appcompat/src/android/support/v7/app/AppCompatDelegate.java
@@ -76,6 +76,40 @@
static final String TAG = "AppCompatDelegate";
/**
+ * Mode which means to not use night mode, and therefore not use {@code night} qualified
+ * resources, regardless of the time.
+ *
+ * @see #setNightMode(int)
+ */
+ public static final int MODE_NIGHT_NO = 0;
+
+ /**
+ * Mode which means to always use night mode, and therefore use {@code night} qualified
+ * resources, regardless of the time.
+ *
+ * @see #setNightMode(int)
+ */
+ public static final int MODE_NIGHT_YES = 1;
+
+ /**
+ * Mode which means to use night mode when it is determined that it is night or not..
+ *
+ * <p>The calculation used to determine whether it is night or not makes use of the location
+ * APIs (if this app has the necessary permissions). This allows us to generate accurate
+ * sunrise and sunset times. If this app does not have permission to access the location APIs
+ * then we use hardcoded times which will be less accurate.</p>
+ *
+ * <p>This is the default mode.</p>
+ *
+ * @see #setNightMode(int)
+ */
+ public static final int MODE_NIGHT_AUTO = 2;
+
+ @IntDef({MODE_NIGHT_NO, MODE_NIGHT_YES, MODE_NIGHT_AUTO})
+ @Retention(RetentionPolicy.SOURCE)
+ @interface NightMode {}
+
+ /**
* Flag for enabling the support Action Bar.
*
* <p>This is enabled by default for some devices. The Action Bar replaces the title bar and
@@ -330,4 +364,31 @@
*/
public abstract boolean isHandleNativeActionModesEnabled();
+ /**
+ * Allow AppCompat to apply the {@code night} and {@code notnight} resource qualifiers.
+ *
+ * <p>Doing this enables the
+ * {@link R.style#Theme_AppCompat_DayNight Theme.AppCompat.DayNight}
+ * family of themes to work, using the computed twilight to automatically select a dark or
+ * light theme.</p>
+ *
+ * <p>You can override the night mode using {@link #setNightMode(int)}.</p>
+ *
+ * <p>This only works on devices running
+ * {@link Build.VERSION_CODES#ICE_CREAM_SANDWICH ICE_CREAM_SANDWICH} and above.</p>
+ *
+ * @see #setNightMode(int)
+ */
+ public abstract void applyDayNight();
+
+ /**
+ * Override the night mode used when {@link #applyDayNight()} is called. This method only takes
+ * effect for those situtations where {@link #applyDayNight()} works.
+ *
+ * <p>This needs to be called before {@link #applyDayNight()}. Defaults to
+ * {@link #MODE_NIGHT_AUTO}.</p>
+ *
+ * @see #applyDayNight()
+ */
+ public abstract void setNightMode(@NightMode int mode);
}
diff --git a/v7/appcompat/src/android/support/v7/app/AppCompatDelegateImplBase.java b/v7/appcompat/src/android/support/v7/app/AppCompatDelegateImplBase.java
index cdb048f..e6cf54c 100644
--- a/v7/appcompat/src/android/support/v7/app/AppCompatDelegateImplBase.java
+++ b/v7/appcompat/src/android/support/v7/app/AppCompatDelegateImplBase.java
@@ -115,6 +115,11 @@
abstract boolean onKeyShortcut(int keyCode, KeyEvent event);
@Override
+ public void setNightMode(@NightMode int mode) {
+ // no-op
+ }
+
+ @Override
public final ActionBarDrawerToggle.Delegate getDrawerToggleDelegate() {
return new ActionBarDrawableToggleImpl();
}
@@ -191,6 +196,11 @@
return false;
}
+ @Override
+ public void applyDayNight() {
+ // no-op on v7
+ }
+
final boolean isDestroyed() {
return mIsDestroyed;
}
diff --git a/v7/appcompat/src/android/support/v7/app/AppCompatDelegateImplV14.java b/v7/appcompat/src/android/support/v7/app/AppCompatDelegateImplV14.java
index f134c48..03dd0c0 100644
--- a/v7/appcompat/src/android/support/v7/app/AppCompatDelegateImplV14.java
+++ b/v7/appcompat/src/android/support/v7/app/AppCompatDelegateImplV14.java
@@ -16,15 +16,23 @@
package android.support.v7.app;
+import android.app.UiModeManager;
import android.content.Context;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.os.Build;
import android.support.v7.internal.view.SupportActionModeWrapper;
import android.view.ActionMode;
import android.view.Window;
class AppCompatDelegateImplV14 extends AppCompatDelegateImplV11 {
+ private TwilightManager mTwilightManager;
private boolean mHandleNativeActionModes = true; // defaults to true
+ @NightMode
+ private int mNightMode = MODE_NIGHT_AUTO;
+
AppCompatDelegateImplV14(Context context, Window window, AppCompatCallback callback) {
super(context, window, callback);
}
@@ -46,6 +54,90 @@
return mHandleNativeActionModes;
}
+ @Override
+ public void applyDayNight() {
+ if (!isSystemControllingNightMode()) {
+ // If the system is not controlling night mode, let's do it ourselves
+ switch (mNightMode) {
+ case MODE_NIGHT_AUTO:
+ // For auto, we need to check whether it's night or not
+ setDayNightUsingTwilight();
+ break;
+ default:
+ // Else, we'll set the value directly
+ setDayNightConfiguration(mNightMode);
+ break;
+ }
+ }
+ }
+
+ @Override
+ public void setNightMode(@NightMode int mode) {
+ mNightMode = mode;
+ }
+
+ /**
+ * If possible, updates the Activity's {@link uiMode} to match whether we are at night or not.
+ */
+ void setDayNightUsingTwilight() {
+ // If the system isn't controlling night mode, we'll do it ourselves
+ if (getTwilightManager().isNight()) {
+ // If we're at 'night', set the night mode
+ setDayNightConfiguration(MODE_NIGHT_YES);
+ } else {
+ // Else, set the day mode
+ setDayNightConfiguration(MODE_NIGHT_NO);
+ }
+ }
+
+ /**
+ * Updates the {@link Resources} configuration {@code uiMode} with the
+ * chosen {@code UI_MODE_NIGHT} value.
+ */
+ void setDayNightConfiguration(@NightMode int mode) {
+ final Resources res = mContext.getResources();
+ final Configuration conf = res.getConfiguration();
+ final int currentNightMode = conf.uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
+ int newNightMode = Configuration.UI_MODE_NIGHT_UNDEFINED;
+ switch (mode) {
+ case MODE_NIGHT_NO:
+ newNightMode = Configuration.UI_MODE_NIGHT_NO;
+ break;
+ case MODE_NIGHT_YES:
+ newNightMode = Configuration.UI_MODE_NIGHT_YES;
+ break;
+ }
+
+ if (currentNightMode != newNightMode) {
+ conf.uiMode = (conf.uiMode & ~Configuration.UI_MODE_NIGHT_MASK) | newNightMode;
+ res.updateConfiguration(conf, res.getDisplayMetrics());
+ }
+ }
+
+ /**
+ * Returns true if the system is controlling night mode.
+ */
+ private boolean isSystemControllingNightMode() {
+ final UiModeManager uiModeManager =
+ (UiModeManager) mContext.getSystemService(Context.UI_MODE_SERVICE);
+
+ if (Build.VERSION.SDK_INT < 23
+ && uiModeManager.getCurrentModeType() != Configuration.UI_MODE_TYPE_CAR) {
+ // Night mode only has an effect with car mode enabled on < API v23
+ return false;
+ }
+
+ return uiModeManager.getNightMode() != UiModeManager.MODE_NIGHT_NO;
+ }
+
+ private TwilightManager getTwilightManager() {
+ if (mTwilightManager == null) {
+ mTwilightManager = new TwilightManager(mContext);
+ }
+ return mTwilightManager;
+ }
+
class AppCompatWindowCallbackV14 extends AppCompatWindowCallbackBase {
AppCompatWindowCallbackV14(Window.Callback callback) {
super(callback);
diff --git a/v7/appcompat/src/android/support/v7/app/AppCompatDelegateImplV23.java b/v7/appcompat/src/android/support/v7/app/AppCompatDelegateImplV23.java
index 006827c..7b4c5ae 100644
--- a/v7/appcompat/src/android/support/v7/app/AppCompatDelegateImplV23.java
+++ b/v7/appcompat/src/android/support/v7/app/AppCompatDelegateImplV23.java
@@ -57,4 +57,9 @@
return null;
}
}
+
+ @Override
+ public void applyDayNight() {
+ // no-op. Let the framework handle DayNight stuff
+ }
}
diff --git a/v7/appcompat/src/android/support/v7/app/AppCompatDialog.java b/v7/appcompat/src/android/support/v7/app/AppCompatDialog.java
index 11688e6..5f13992 100644
--- a/v7/appcompat/src/android/support/v7/app/AppCompatDialog.java
+++ b/v7/appcompat/src/android/support/v7/app/AppCompatDialog.java
@@ -46,6 +46,9 @@
// To workaround this, we call onCreate(null) in the ctor, and then again as usual in
// onCreate().
getDelegate().onCreate(null);
+
+ // Apply AppCompat's DayNight resources if needed
+ getDelegate().applyDayNight();
}
protected AppCompatDialog(Context context, boolean cancelable,
diff --git a/v7/mediarouter/api/current.txt b/v7/mediarouter/api/current.txt
index 69fc20e..6a9afb6 100644
--- a/v7/mediarouter/api/current.txt
+++ b/v7/mediarouter/api/current.txt
@@ -182,6 +182,7 @@
public abstract class AppCompatDelegate {
method public abstract void addContentView(android.view.View, android.view.ViewGroup.LayoutParams);
+ method public abstract void applyDayNight();
method public static android.support.v7.app.AppCompatDelegate create(android.app.Activity, android.support.v7.app.AppCompatCallback);
method public static android.support.v7.app.AppCompatDelegate create(android.app.Dialog, android.support.v7.app.AppCompatCallback);
method public abstract android.view.View createView(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet);
@@ -203,12 +204,16 @@
method public abstract void setContentView(int);
method public abstract void setContentView(android.view.View, android.view.ViewGroup.LayoutParams);
method public abstract void setHandleNativeActionModesEnabled(boolean);
+ method public abstract void setNightMode(int);
method public abstract void setSupportActionBar(android.support.v7.widget.Toolbar);
method public abstract void setTitle(java.lang.CharSequence);
method public abstract android.support.v7.view.ActionMode startSupportActionMode(android.support.v7.view.ActionMode.Callback);
field public static final int FEATURE_ACTION_MODE_OVERLAY = 10; // 0xa
field public static final int FEATURE_SUPPORT_ACTION_BAR = 108; // 0x6c
field public static final int FEATURE_SUPPORT_ACTION_BAR_OVERLAY = 109; // 0x6d
+ field public static final int MODE_NIGHT_AUTO = 2; // 0x2
+ field public static final int MODE_NIGHT_NO = 0; // 0x0
+ field public static final int MODE_NIGHT_YES = 1; // 0x1
}
public class AppCompatDialog extends android.app.Dialog implements android.support.v7.app.AppCompatCallback {
diff --git a/v7/mediarouter/res/values-af/strings.xml b/v7/mediarouter/res/values-af/strings.xml
index 891e66d..182b520 100644
--- a/v7/mediarouter/res/values-af/strings.xml
+++ b/v7/mediarouter/res/values-af/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Speel"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Laat wag"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Saai uit"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Saai uit na"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Vind tans toestelle"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Ontkoppel"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Hou op uitsaai"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Maak toe"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Speel"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Laat wag"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Vou uit"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Vou in"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Geen media is gekies nie"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Geen inligting beskikbaar nie"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Saai tans skerm uit"</string>
</resources>
diff --git a/v7/mediarouter/res/values-am/strings.xml b/v7/mediarouter/res/values-am/strings.xml
index 9d9a90d..a76cab1 100644
--- a/v7/mediarouter/res/values-am/strings.xml
+++ b/v7/mediarouter/res/values-am/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"አጫውት"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"ለአፍታ አቁም"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Cast"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Cast አድርግ ወደ"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"መሣሪያዎችን በማግኘት ላይ"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"ግንኙነት አቋርጥ"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Cast ማድረግ አቁም"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"ዝጋ"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"አጫውት"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"ለአፍታ አቁም"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"አስፋ"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"ሰብስብ"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"ምንም ማህደረመረጃ አልተመረጠም"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"ምንም መረጃ አይገኝም"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"ማያ ገጽን በመውሰድ ላይ"</string>
</resources>
diff --git a/v7/mediarouter/res/values-ar/strings.xml b/v7/mediarouter/res/values-ar/strings.xml
index c0c5a25..3ad27f8 100644
--- a/v7/mediarouter/res/values-ar/strings.xml
+++ b/v7/mediarouter/res/values-ar/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"تشغيل"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"إيقاف مؤقت"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"إرسال"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"إرسال إلى"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"جارٍ البحث عن أجهزة"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"قطع الاتصال"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"إيقاف الإرسال"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"إغلاق"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"تشغيل"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"إيقاف مؤقت"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"توسيع"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"تصغير"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"لم يتم اختيار أية وسائط"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"لا تتوفر أية معلومات"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"جارٍ إرسال الشاشة"</string>
</resources>
diff --git a/v7/mediarouter/res/values-az-rAZ/strings.xml b/v7/mediarouter/res/values-az-rAZ/strings.xml
new file mode 100644
index 0000000..10395dc
--- /dev/null
+++ b/v7/mediarouter/res/values-az-rAZ/strings.xml
@@ -0,0 +1,34 @@
+<?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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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_button_content_description" msgid="4324764887951330391">"Yayım"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Bura yayımlayın"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Cihazlar axtarılır"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Bağlantını kəsin"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Yayımı dayandırın"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Qapadın"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Oynadın"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Durdurun"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Genişləndirin"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Yığcamlaşdırın"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Heç bir media seçilməyib"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Əlçatan məlumat yoxdur"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Ekran yayımlanır"</string>
+</resources>
diff --git a/v7/mediarouter/res/values-bg/strings.xml b/v7/mediarouter/res/values-bg/strings.xml
index 93676ed..4524b81 100644
--- a/v7/mediarouter/res/values-bg/strings.xml
+++ b/v7/mediarouter/res/values-bg/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Пускане"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Поставяне на пауза"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Предаване"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Предаване към"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Търсят се устройства"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Прекратяване на връзката"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Спиране на предаването"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Затваряне"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Пускане"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Поставяне на пауза"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Разгъване"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Свиване"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Няма избрана мултимедия"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Няма налична информация"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Екранът се предава"</string>
</resources>
diff --git a/v7/mediarouter/res/values-bn-rBD/strings.xml b/v7/mediarouter/res/values-bn-rBD/strings.xml
index ee08f48..16e5f11 100644
--- a/v7/mediarouter/res/values-bn-rBD/strings.xml
+++ b/v7/mediarouter/res/values-bn-rBD/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"চালান"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"বিরাম দিন"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"কাস্ট করুন"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"এতে কাস্ট করুন"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"ডিভাইসগুলিকে খোঁজা হচ্ছে"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"সংযোগ বিচ্ছিন্ন করুন"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"কাস্ট করা বন্ধ করুন"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"বন্ধ করুন"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"চালান"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"বিরাম দিন"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"প্রসারিত করুন"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"সঙ্কুচিত করুন"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"কোনো মিডিয়া নির্বাচন করা হয়নি"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"কোনো তথ্য উপলব্ধ নেই"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"স্ক্রীন কাস্ট করা হচ্ছে"</string>
</resources>
diff --git a/v7/mediarouter/res/values-ca/strings.xml b/v7/mediarouter/res/values-ca/strings.xml
index ce4c180..eb7a186 100644
--- a/v7/mediarouter/res/values-ca/strings.xml
+++ b/v7/mediarouter/res/values-ca/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Reprodueix"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Posa en pausa"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Emet"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Emet a"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"S\'estan cercant dispositius"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Desconnecta"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Atura l\'emissió"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Tanca"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Reprodueix"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Posa en pausa"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Desplega"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Replega"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"No s\'ha seleccionat cap fitxer multimèdia"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"No hi ha informació disponible"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Emissió de pantalla"</string>
</resources>
diff --git a/v7/mediarouter/res/values-cs/strings.xml b/v7/mediarouter/res/values-cs/strings.xml
index c17629a..0cb4a5e 100644
--- a/v7/mediarouter/res/values-cs/strings.xml
+++ b/v7/mediarouter/res/values-cs/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Přehrát"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Pozastavit"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Odeslat"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Odesílat do"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Hledání zařízení"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Odpojit"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Zastavit odesílání"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Zavřít"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Přehrát"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Pozastavit"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Rozbalit"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Sbalit"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Nebyla vybrána žádná média"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Nejsou k dispozici žádné informace"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Odesílání obsahu obrazovky"</string>
</resources>
diff --git a/v7/mediarouter/res/values-da/strings.xml b/v7/mediarouter/res/values-da/strings.xml
index 786cdc6..022abda 100644
--- a/v7/mediarouter/res/values-da/strings.xml
+++ b/v7/mediarouter/res/values-da/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Afspil"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Sæt på pause"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Cast"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Cast til"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Finder enheder"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Afbryd"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Stop med at caste"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Luk"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Afspil"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Sæt på pause"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Udvid"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Skjul"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Der er ikke valgt nogen medier"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Der er ingen tilgængelige oplysninger"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Skærmen castes"</string>
</resources>
diff --git a/v7/mediarouter/res/values-de/strings.xml b/v7/mediarouter/res/values-de/strings.xml
index 296b611..0c3f759 100644
--- a/v7/mediarouter/res/values-de/strings.xml
+++ b/v7/mediarouter/res/values-de/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Wiedergabe"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Pause"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Streamen"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Streamen auf"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Geräte werden gesucht."</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Verbindung trennen"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Streaming stoppen"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Schließen"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Wiedergeben"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Pausieren"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Maximieren"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Minimieren"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Keine Medien ausgewählt"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Keine Informationen verfügbar"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Bildschirm wird gestreamt."</string>
</resources>
diff --git a/v7/mediarouter/res/values-el/strings.xml b/v7/mediarouter/res/values-el/strings.xml
index 153ad7b..04f3fdb 100644
--- a/v7/mediarouter/res/values-el/strings.xml
+++ b/v7/mediarouter/res/values-el/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Αναπαραγωγή"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Παύση"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Μετάδοση"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Μετάδοση σε"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Εύρεση συσκευών"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Αποσύνδεση"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Διακοπή μετάδοσης"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Κλείσιμο"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Αναπαραγωγή"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Παύση"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Ανάπτυξη"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Σύμπτυξη"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Δεν έχουν επιλεγεί μέσα"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Δεν υπάρχουν διαθέσιμες πληροφορίες"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Μετάδοση οθόνης"</string>
</resources>
diff --git a/v7/mediarouter/res/values-en-rAU/strings.xml b/v7/mediarouter/res/values-en-rAU/strings.xml
index 1cb9d4a..3ee5c4e 100644
--- a/v7/mediarouter/res/values-en-rAU/strings.xml
+++ b/v7/mediarouter/res/values-en-rAU/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Play"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Pause"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Cast"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Cast to"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Finding devices"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Disconnect"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Stop casting"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Close"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Play"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Pause"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Expand"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Collapse"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"No media selected"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"No info available"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Casting screen"</string>
</resources>
diff --git a/v7/mediarouter/res/values-en-rGB/strings.xml b/v7/mediarouter/res/values-en-rGB/strings.xml
index 1cb9d4a..3ee5c4e 100644
--- a/v7/mediarouter/res/values-en-rGB/strings.xml
+++ b/v7/mediarouter/res/values-en-rGB/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Play"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Pause"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Cast"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Cast to"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Finding devices"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Disconnect"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Stop casting"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Close"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Play"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Pause"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Expand"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Collapse"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"No media selected"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"No info available"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Casting screen"</string>
</resources>
diff --git a/v7/mediarouter/res/values-en-rIN/strings.xml b/v7/mediarouter/res/values-en-rIN/strings.xml
index 1cb9d4a..3ee5c4e 100644
--- a/v7/mediarouter/res/values-en-rIN/strings.xml
+++ b/v7/mediarouter/res/values-en-rIN/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Play"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Pause"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Cast"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Cast to"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Finding devices"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Disconnect"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Stop casting"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Close"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Play"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Pause"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Expand"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Collapse"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"No media selected"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"No info available"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Casting screen"</string>
</resources>
diff --git a/v7/mediarouter/res/values-es-rUS/strings.xml b/v7/mediarouter/res/values-es-rUS/strings.xml
index 7d3b402..3074ef2 100644
--- a/v7/mediarouter/res/values-es-rUS/strings.xml
+++ b/v7/mediarouter/res/values-es-rUS/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Reproducir"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Pausar"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Transmitir"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Transmitir a"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Buscando dispositivos"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Desconectar"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Detener la transmisión"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Cerrar"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Reproducir"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Pausar"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Mostrar"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Ocultar"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"No se seleccionó ningún contenido multimedia"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Sin información disponible"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Transmitiendo pantalla"</string>
</resources>
diff --git a/v7/mediarouter/res/values-es/strings.xml b/v7/mediarouter/res/values-es/strings.xml
index d80e303..8c6e340 100644
--- a/v7/mediarouter/res/values-es/strings.xml
+++ b/v7/mediarouter/res/values-es/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Reproducir"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Pausa"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Enviar"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Enviar a"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Buscando dispositivos"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Desconectar"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Dejar de enviar contenido"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Cerrar"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Reproducir"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Pausa"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Mostrar"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Ocultar"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"No se ha seleccionado ningún medio"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"No hay información disponible"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Enviando pantalla"</string>
</resources>
diff --git a/v7/mediarouter/res/values-et-rEE/strings.xml b/v7/mediarouter/res/values-et-rEE/strings.xml
index e458335..2de394d 100644
--- a/v7/mediarouter/res/values-et-rEE/strings.xml
+++ b/v7/mediarouter/res/values-et-rEE/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Esitamine"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Peatamine"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Ülekandmine"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Ülekandmine seadmesse"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Seadmete otsimine"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Katkesta ühendus"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Peata ülekanne"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Sulgemine"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Esitamine"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Peatamine"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Laiendamine"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Ahendamine"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Meediat pole valitud"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Teave puudub"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Ekraanikuva ülekandmine"</string>
</resources>
diff --git a/v7/mediarouter/res/values-eu-rES/strings.xml b/v7/mediarouter/res/values-eu-rES/strings.xml
index 899be28..8eb2541 100644
--- a/v7/mediarouter/res/values-eu-rES/strings.xml
+++ b/v7/mediarouter/res/values-eu-rES/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Erreproduzitu"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Pausatu"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Igorri"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Igorri hona"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Gailuak bilatzen"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Deskonektatu"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Utzi igortzeari"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Itxi"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Erreproduzitu"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Pausatu"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Zabaldu"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Tolestu"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Ez da hautatu multimedia-edukirik"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Ez dago informaziorik"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Pantaila igortzen"</string>
</resources>
diff --git a/v7/mediarouter/res/values-fa/strings.xml b/v7/mediarouter/res/values-fa/strings.xml
index 76dcec6..dcd95a9 100644
--- a/v7/mediarouter/res/values-fa/strings.xml
+++ b/v7/mediarouter/res/values-fa/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"پخش"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"توقف موقت"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"ارسال محتوا"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"ارسال محتوا به"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"پیدا کردن دستگاهها"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"قطع ارتباط"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"توقف ارسال محتوا"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"بستن"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"پخش"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"توقف موقت"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"بزرگ کردن"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"کوچک کردن"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"رسانه انتخاب نشده است"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"اطلاعات دردسترس نیست"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"درحال فرستادن صفحه"</string>
</resources>
diff --git a/v7/mediarouter/res/values-fi/strings.xml b/v7/mediarouter/res/values-fi/strings.xml
index 44c8b64..30c08c4 100644
--- a/v7/mediarouter/res/values-fi/strings.xml
+++ b/v7/mediarouter/res/values-fi/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Toista"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Keskeytä"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Suoratoisto"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Suoratoiston kohde"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Etsitään laitteita"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Katkaise yhteys"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Lopeta suoratoisto"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Sulje"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Toista"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Keskeytä"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Laajenna"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Tiivistä"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Ei valittua mediaa."</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Tietoja ei ole saatavilla"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Suoratoistetaan näyttöä"</string>
</resources>
diff --git a/v7/mediarouter/res/values-fr-rCA/strings.xml b/v7/mediarouter/res/values-fr-rCA/strings.xml
index 6f385ff..dc2341d 100644
--- a/v7/mediarouter/res/values-fr-rCA/strings.xml
+++ b/v7/mediarouter/res/values-fr-rCA/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Lecture"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Suspendre"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Diffuser"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Diffuser sur"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Recherche d\'appareils"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Se déconnecter"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Arrêter la diffusion"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Fermer"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Lire"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Interrompre"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Développer"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Réduire"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Aucun média sélectionné"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Aucune information disponible"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Diffusion de l\'écran en cours"</string>
</resources>
diff --git a/v7/mediarouter/res/values-fr/strings.xml b/v7/mediarouter/res/values-fr/strings.xml
index 711ccd3..314a622 100644
--- a/v7/mediarouter/res/values-fr/strings.xml
+++ b/v7/mediarouter/res/values-fr/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Lecture"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Pause"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Diffuser"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Diffuser sur"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Recherche d\'appareils en cours…"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Déconnecter"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Arrêter de diffuser"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Fermer"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Lecture"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Pause"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Développer"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Réduire"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Aucun média sélectionné"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Aucune information disponible"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Diffusion de l\'écran en cours…"</string>
</resources>
diff --git a/v7/mediarouter/res/values-gl-rES/strings.xml b/v7/mediarouter/res/values-gl-rES/strings.xml
index 61bc1e2..c589176 100644
--- a/v7/mediarouter/res/values-gl-rES/strings.xml
+++ b/v7/mediarouter/res/values-gl-rES/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Reproduce"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Pausa"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Emitir"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Emitir en"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Buscando dispositivos"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Desconectar"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Parar de emitir"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Pechar"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Reproduce"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Pausa"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Ampliar"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Contraer"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Non se seleccionaron recursos"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Non hai información dispoñible"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Emisión de pantalla"</string>
</resources>
diff --git a/v7/mediarouter/res/values-gu-rIN/strings.xml b/v7/mediarouter/res/values-gu-rIN/strings.xml
index 2fd0f36..46eb0da 100644
--- a/v7/mediarouter/res/values-gu-rIN/strings.xml
+++ b/v7/mediarouter/res/values-gu-rIN/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"ચલાવો"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"થોભો"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"કાસ્ટ કરો"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"આના પર કાસ્ટ કરો"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"ઉપકરણો શોધી રહ્યાં છીએ"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"ડિસ્કનેક્ટ કરો"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"કાસ્ટ કરવાનું રોકો"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"બંધ કરો"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"ચલાવો"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"થોભાવો"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"વિસ્તૃત કરો"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"સંકુચિત કરો"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"કોઈ મીડિયા પસંદ કરેલ નથી"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"કોઈ માહિતી ઉપલબ્ધ નથી"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"સ્ક્રીનને કાસ્ટ કરી રહ્યાં છે"</string>
</resources>
diff --git a/v7/mediarouter/res/values-hi/strings.xml b/v7/mediarouter/res/values-hi/strings.xml
index c2f58f3..5323564 100644
--- a/v7/mediarouter/res/values-hi/strings.xml
+++ b/v7/mediarouter/res/values-hi/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"चलाएं"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"रोकें"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"कास्ट करें"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"इस पर कास्ट करें"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"डिवाइस ढूंढ रहा है"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"डिस्कनेक्ट करें"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"कास्ट करना बंद करें"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"बंद करें"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"चलाएं"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"रोकें"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"विस्तृत करें"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"संक्षिप्त करें"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"कोई मीडिया चयनित नहीं है"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"कोई जानकारी उपलब्ध नहीं"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"स्क्रीन कास्ट हो रही है"</string>
</resources>
diff --git a/v7/mediarouter/res/values-hr/strings.xml b/v7/mediarouter/res/values-hr/strings.xml
index dcb4934..9b60d2b 100644
--- a/v7/mediarouter/res/values-hr/strings.xml
+++ b/v7/mediarouter/res/values-hr/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Reprodukcija"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Pauziraj"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Emitiranje"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Emitiranje na"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Traženje uređaja"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Prekini vezu"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Zaustavi emitiranje"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Zatvaranje"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Reprodukcija"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Pauziranje"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Proširivanje"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Sažimanje"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Nije odabran nijedan medij"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Informacije nisu dostupne"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Emitiranje zaslona"</string>
</resources>
diff --git a/v7/mediarouter/res/values-hu/strings.xml b/v7/mediarouter/res/values-hu/strings.xml
index 0a76065..52e2d30 100644
--- a/v7/mediarouter/res/values-hu/strings.xml
+++ b/v7/mediarouter/res/values-hu/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Indítás"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Szüneteltetés"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Tartalomátküldés"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Átküldés ide"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Eszközök keresése"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Leválasztás"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Átküldés leállítása"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Bezárás"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Lejátszás"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Szüneteltetés"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Kibontás"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Összecsukás"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Nincs média kiválasztva"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Nincs információ"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Képernyőtartalom átküldése"</string>
</resources>
diff --git a/v7/mediarouter/res/values-hy-rAM/strings.xml b/v7/mediarouter/res/values-hy-rAM/strings.xml
index 19c65ed..0468d80 100644
--- a/v7/mediarouter/res/values-hy-rAM/strings.xml
+++ b/v7/mediarouter/res/values-hy-rAM/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Նվագարկել"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Դադար"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Հեռարձակում"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Հեռարձակել դեպի"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Սարքերի որոնում"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Անջատել"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Դադարեցնել հեռարձակումը"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Փակել"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Նվագարկել"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Դադար"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Ընդարձակել"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Կոծկել"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Մեդիա ֆայլեր չեն ընտրվել"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Տեղեկությունները հասանելի չեն"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Էկրանը հեռարձակվում է"</string>
</resources>
diff --git a/v7/mediarouter/res/values-in/strings.xml b/v7/mediarouter/res/values-in/strings.xml
index b90a0cb..b9c347f 100644
--- a/v7/mediarouter/res/values-in/strings.xml
+++ b/v7/mediarouter/res/values-in/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Putar"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Jeda"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Transmisi"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Transmisi ke"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Mencari perangkat"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Putuskan sambungan"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Hentikan transmisi"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Tutup"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Putar"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Jeda"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Luaskan"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Ciutkan"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Tidak ada media yang dipilih"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Tidak ada info yang tersedia"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Transmisi layar"</string>
</resources>
diff --git a/v7/mediarouter/res/values-is-rIS/strings.xml b/v7/mediarouter/res/values-is-rIS/strings.xml
index 9fa308e..54a33a1 100644
--- a/v7/mediarouter/res/values-is-rIS/strings.xml
+++ b/v7/mediarouter/res/values-is-rIS/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Spila"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Hlé"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Senda út"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Senda út í"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Leitað að tækjum"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Aftengjast"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Stöðva útsendingu"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Loka"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Spila"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Hlé"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Stækka"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Minnka"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Enginn miðill valinn"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Engar upplýsingar í boði"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Skjár sendur út"</string>
</resources>
diff --git a/v7/mediarouter/res/values-it/strings.xml b/v7/mediarouter/res/values-it/strings.xml
index 8c3324d..cb2d553 100644
--- a/v7/mediarouter/res/values-it/strings.xml
+++ b/v7/mediarouter/res/values-it/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Riproduci"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Pausa"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Trasmetti"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Trasmetti a"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Ricerca di dispositivi in corso"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Scollega"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Interrompi trasmissione"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Chiudi"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Riproduci"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Pausa"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Espandi"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Comprimi"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Nessun contenuto multimediale selezionato"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Nessuna informazione disponibile"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Trasmissione dello schermo in corso"</string>
</resources>
diff --git a/v7/mediarouter/res/values-iw/strings.xml b/v7/mediarouter/res/values-iw/strings.xml
index 720a4e2..4e6085f 100644
--- a/v7/mediarouter/res/values-iw/strings.xml
+++ b/v7/mediarouter/res/values-iw/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"הפעל"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"השהה"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"העבר"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"העבר אל"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"מחפש מכשירים"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"נתק"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"עצור העברה"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"סגור"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"הפעל"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"השהה"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"הרחב"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"כווץ"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"לא נבחרה מדיה"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"אין מידע זמין"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"העברת מסך מתבצעת"</string>
</resources>
diff --git a/v7/mediarouter/res/values-ja/strings.xml b/v7/mediarouter/res/values-ja/strings.xml
index 37d80b6..6b91989 100644
--- a/v7/mediarouter/res/values-ja/strings.xml
+++ b/v7/mediarouter/res/values-ja/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"再生"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"一時停止"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"キャスト"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"キャスト先"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"端末を検索しています"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"接続を解除"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"キャストを停止"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"閉じる"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"再生"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"一時停止"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"展開"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"折りたたむ"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"メディアが選択されていません"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"情報がありません"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"画面をキャストしています"</string>
</resources>
diff --git a/v7/mediarouter/res/values-ka-rGE/strings.xml b/v7/mediarouter/res/values-ka-rGE/strings.xml
index b37403a..880ef9e 100644
--- a/v7/mediarouter/res/values-ka-rGE/strings.xml
+++ b/v7/mediarouter/res/values-ka-rGE/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"დაკვრა"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"პაუზა"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"ტრანსლირება"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"ტრანსლირებული"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"მიმდინარეობს მოწყობილობების მოძიება"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"კავშირის გაწყვეტა"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"ტრანსლირების შეჩერება"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"დახურვა"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"დაკვრა"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"პაუზა"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"გაშლა"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"ჩაკეცვა"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"მედია არჩეული არ არის"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"ინფორმაცია არ არის ხელმისაწვდომი"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"მიმდინარეობს ეკრანის გადაცემა"</string>
</resources>
diff --git a/v7/mediarouter/res/values-kk-rKZ/strings.xml b/v7/mediarouter/res/values-kk-rKZ/strings.xml
index 0778828..e501d8d 100644
--- a/v7/mediarouter/res/values-kk-rKZ/strings.xml
+++ b/v7/mediarouter/res/values-kk-rKZ/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Ойнату"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Кідірту"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Трансляциялау"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Келесіге трансляциялау"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Құрылғыларды табу"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Ажырату"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Трансляциялауды тоқтату"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Жабу"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Ойнату"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Кідірту"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Жаю"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Жию"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Ешбір тасушы таңдалмаған"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Қол жетімді ақпарат жоқ"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Экранды трансляциялау"</string>
</resources>
diff --git a/v7/mediarouter/res/values-km-rKH/strings.xml b/v7/mediarouter/res/values-km-rKH/strings.xml
index d41b47c..f399f8f 100644
--- a/v7/mediarouter/res/values-km-rKH/strings.xml
+++ b/v7/mediarouter/res/values-km-rKH/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"ចាក់"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"ផ្អាក"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"ខាស"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"ខាសទៅ"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"ស្វែងរកឧបករណ៍"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"ផ្ដាច់"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"បញ្ឈប់ការខាស"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"បិទ"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"ចាក់"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"ផ្អាក"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"ពង្រីក"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"បង្រួម"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"គ្មានការជ្រើសមេឌៀទេ"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"មិនមានព័ត៌មានទេ"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"កំពុងខាសអេក្រង់"</string>
</resources>
diff --git a/v7/mediarouter/res/values-kn-rIN/strings.xml b/v7/mediarouter/res/values-kn-rIN/strings.xml
index 19785c9..b80b9f9 100644
--- a/v7/mediarouter/res/values-kn-rIN/strings.xml
+++ b/v7/mediarouter/res/values-kn-rIN/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"ಪ್ಲೇ ಮಾಡು"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"ವಿರಾಮ"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"ಬಿತ್ತರಿಸುವಿಕೆ"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"ಇದಕ್ಕೆ ಬಿತ್ತರಿಸಿ"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"ಸಾಧನಗಳನ್ನು ಹುಡುಕಲಾಗುತ್ತಿದೆ"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸು"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"ಬಿತ್ತರಿಸುವಿಕೆ ನಿಲ್ಲಿಸು"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"ಮುಚ್ಚು"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"ಪ್ಲೇ ಮಾಡಿ"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"ವಿರಾಮ"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"ವಿಸ್ತರಿಸು"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"ಸಂಕುಚಿಸು"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"ಯಾವುದೇ ಮಾಧ್ಯಮ ಆಯ್ಕೆಮಾಡಲಾಗಿಲ್ಲ"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"ಯಾವುದೇ ಮಾಹಿತಿ ಲಭ್ಯವಿಲ್ಲ"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"ಪರದೆಯನ್ನು ಬಿತ್ತರಿಸಲಾಗುತ್ತಿದೆ"</string>
</resources>
diff --git a/v7/mediarouter/res/values-ko/strings.xml b/v7/mediarouter/res/values-ko/strings.xml
index f9ee94e..f96913f 100644
--- a/v7/mediarouter/res/values-ko/strings.xml
+++ b/v7/mediarouter/res/values-ko/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"재생"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"일시중지"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"전송"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"전송 대상"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"기기를 찾는 중"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"연결 해제"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"전송 중지"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"닫기"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"재생"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"일시중지"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"펼치기"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"접기"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"선택한 미디어 없음"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"정보가 없습니다."</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"화면 전송 중"</string>
</resources>
diff --git a/v7/mediarouter/res/values-ky-rKG/strings.xml b/v7/mediarouter/res/values-ky-rKG/strings.xml
index 6565d05..cc5d44b 100644
--- a/v7/mediarouter/res/values-ky-rKG/strings.xml
+++ b/v7/mediarouter/res/values-ky-rKG/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Ойнотуу"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Тындыруу"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Тышкы экранга чыгаруу"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Төмөнкүгө чыгаруу"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Түзмөктөр изделүүдө"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Ажыратуу"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Тышк экранга чыгарну токтотуу"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Жабуу"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Ойнотуу"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Тындыруу"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Жайып көрсөтүү"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Жыйыштыруу"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Бир да медиа файл тандалган жок"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Эч маалымат жок"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Тышкы экранга чыгарылууда"</string>
</resources>
diff --git a/v7/mediarouter/res/values-lo-rLA/strings.xml b/v7/mediarouter/res/values-lo-rLA/strings.xml
index 8077770..1fb32ee 100644
--- a/v7/mediarouter/res/values-lo-rLA/strings.xml
+++ b/v7/mediarouter/res/values-lo-rLA/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"ຫຼິ້ນ"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"ຢຸດຊົ່ວຄາວ"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"ຄາສທ໌"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"ຄາສທ໌ຫາ"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"ກຳລັງຊອກຫາອຸປະກອນ"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"ຕັດການເຊື່ອມຕໍ່"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"ຢຸດການຄາສທ໌"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"ປິດ"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"ຫຼິ້ນ"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"ຢຸດຊົ່ວຄາວ"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"ຂະຫຍາຍ"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"ຫຍໍ້ລົງ"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"ບໍ່ໄດ້ເລືອກມີເດຍໃດໄວ້"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"ບໍ່ມີຂໍ້ມູນ"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"ການສົ່ງພາບໜ້າຈໍ"</string>
</resources>
diff --git a/v7/mediarouter/res/values-lt/strings.xml b/v7/mediarouter/res/values-lt/strings.xml
index 3e78374..4a58465 100644
--- a/v7/mediarouter/res/values-lt/strings.xml
+++ b/v7/mediarouter/res/values-lt/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Leisti"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Pristabdyti"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Perduoti"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Perduoti į"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Randami įrenginiai"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Atjungti"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Sustabdyti perdavimą"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Uždaryti"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Leisti"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Pristabdyti"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Išskleisti"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Sutraukti"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Nepasirinkta jokia medija"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Informacija nepasiekiama"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Perduodamas ekranas"</string>
</resources>
diff --git a/v7/mediarouter/res/values-lv/strings.xml b/v7/mediarouter/res/values-lv/strings.xml
index a7f30a4..c9956b8 100644
--- a/v7/mediarouter/res/values-lv/strings.xml
+++ b/v7/mediarouter/res/values-lv/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Atskaņot"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Apturēt"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Apraidīt"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Apraidīšana uz ierīci"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Notiek ierīču meklēšana"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Atvienot"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Pārtraukt apraidi"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Aizvērt"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Atskaņot"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Apturēt"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Izvērst"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Sakļaut"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Nav atlasīti multivides faili"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Nav pieejama informācija"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Notiek ekrāna apraide"</string>
</resources>
diff --git a/v7/mediarouter/res/values-mk-rMK/strings.xml b/v7/mediarouter/res/values-mk-rMK/strings.xml
index 47df5bc..dd9d5e6 100644
--- a/v7/mediarouter/res/values-mk-rMK/strings.xml
+++ b/v7/mediarouter/res/values-mk-rMK/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Репродуцирај"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Пауза"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Емитувај"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Емитувај на"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Наоѓање уреди"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Исклучи"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Запри го емитувањето"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Затвори"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Репродуцирај"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Паузирај"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Прошири"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Собери"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Не се избрани медиуми"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Нема достапни информации"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Екранот се емитува"</string>
</resources>
diff --git a/v7/mediarouter/res/values-ml-rIN/strings.xml b/v7/mediarouter/res/values-ml-rIN/strings.xml
index 93192b6..de8423e 100644
--- a/v7/mediarouter/res/values-ml-rIN/strings.xml
+++ b/v7/mediarouter/res/values-ml-rIN/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"പ്ലേ ചെയ്യുക"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"താൽക്കാലികമായി നിർത്തുക"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"കാസ്റ്റുചെയ്യുക"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"ഇതിലേക്ക് കാസ്റ്റുചെയ്യുക"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"ഉപകരണങ്ങൾ കണ്ടെത്തുന്നു"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"വിച്ഛേദിക്കുക"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"കാസ്റ്റുചെയ്യൽ നിർത്തുക"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"അടയ്ക്കുക"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"പ്ലേ ചെയ്യുക"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"തൽക്കാലം നിർത്തൂ"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"വികസിപ്പിക്കുക"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"ചുരുക്കുക"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"മീഡിയയൊന്നും തിരഞ്ഞെടുത്തിട്ടില്ല"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"വിവരങ്ങളൊന്നും ലഭ്യമല്ല"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"സ്ക്രീൻ കാസ്റ്റുചെയ്യുന്നു"</string>
</resources>
diff --git a/v7/mediarouter/res/values-mn-rMN/strings.xml b/v7/mediarouter/res/values-mn-rMN/strings.xml
index e14eb50..a820731 100644
--- a/v7/mediarouter/res/values-mn-rMN/strings.xml
+++ b/v7/mediarouter/res/values-mn-rMN/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Тоглуулах"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Түр зогсоох"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Дамжуулах"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Дамжуулах"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Төхөөрөмж хайж байна"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Салгах"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Дамжуулахыг зогсоох"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Хаах"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Тоглуулах"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Түр зогсоох"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Дэлгэх"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Хураах"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Ямар ч медиа сонгоогүй"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Мэдээлэл байхгүй байна"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Дэлгэцийг дамжуулж байна"</string>
</resources>
diff --git a/v7/mediarouter/res/values-mr-rIN/strings.xml b/v7/mediarouter/res/values-mr-rIN/strings.xml
index 8313f5a..c425e76 100644
--- a/v7/mediarouter/res/values-mr-rIN/strings.xml
+++ b/v7/mediarouter/res/values-mr-rIN/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"प्ले करा"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"विराम द्या"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"कास्ट करा"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"यावर कास्ट करा"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"डिव्हाइसेस शोधत आहे"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"डिस्कनेक्ट करा"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"कास्ट करणे थांबवा"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"बंद करा"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"प्ले करा"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"विराम"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"विस्तृत करा"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"संकुचित करा"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"मीडिया निवडला नाही"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"कोणतीही माहिती उपलब्ध नाही"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"स्क्रीन कास्ट करीत आहे"</string>
</resources>
diff --git a/v7/mediarouter/res/values-ms-rMY/strings.xml b/v7/mediarouter/res/values-ms-rMY/strings.xml
index 23371d3..786848b 100644
--- a/v7/mediarouter/res/values-ms-rMY/strings.xml
+++ b/v7/mediarouter/res/values-ms-rMY/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Main"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Jeda"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Hantar"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Hantar ke"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Mencari peranti"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Putuskan sambungan"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Berhenti menghantar"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Tutup"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Main"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Jeda"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Kembangkan"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Runtuhkan"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Tiada media dipilih"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Maklumat tidak tersedia"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Menghantar skrin"</string>
</resources>
diff --git a/v7/mediarouter/res/values-my-rMM/strings.xml b/v7/mediarouter/res/values-my-rMM/strings.xml
index d8efc8a..557bfd3 100644
--- a/v7/mediarouter/res/values-my-rMM/strings.xml
+++ b/v7/mediarouter/res/values-my-rMM/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"ဖွင့်ရန်"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"ခဏရပ်ရန်"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"ကာစ်တ်"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"သို့ ကာစ်တ်လုပ်ရန်"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"စက်ပစ္စည်းများ ရှာဖွေခြင်း"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"ဆက်သွယ်မှု ဖြတ်ရန်"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"ကာစ်တ်လုပ်ခြင်း ရပ်တန့်ရန်"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"ပိတ်ရန်"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"ဖွင့်ရန်"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"ခဏရပ်ရန်"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"ဖြန့်ချရန်၃"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"ခေါက်သိမ်းရန်..."</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"မည်သည့်မီဒီမှ မရွေးချယ်ထားပါ"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"အချက်အလက် မရရှိနိုင်ပါ"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"တည်းဖြတ်ရေး မျက်နှာပြင်"</string>
</resources>
diff --git a/v7/mediarouter/res/values-nb/strings.xml b/v7/mediarouter/res/values-nb/strings.xml
index f806229..c8b92df 100644
--- a/v7/mediarouter/res/values-nb/strings.xml
+++ b/v7/mediarouter/res/values-nb/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Spill av"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Sett på pause"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Cast"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Cast til"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Finner enheter"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Koble fra"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Stopp castingen"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Lukk"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Spill av"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Sett på pause"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Utvid"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Skjul"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Du har ikke valgt noen medier"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Ingen informasjon er tilgjengelig"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Caster skjermen"</string>
</resources>
diff --git a/v7/mediarouter/res/values-ne-rNP/strings.xml b/v7/mediarouter/res/values-ne-rNP/strings.xml
index 237279c..05aa6f8 100644
--- a/v7/mediarouter/res/values-ne-rNP/strings.xml
+++ b/v7/mediarouter/res/values-ne-rNP/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"बजाउनुहोस्"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"रोक्नुहोस्"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Cast"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"यसमा Cast गर्नुहोस्"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"यन्त्रहरू पत्ता लगाउँदै"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"विच्छेद गर्नुहोस्"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"casting रोक्नुहोस्"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"बन्द गर्नुहोस्"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"बजाउनुहोस्"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"रोक्नुहोस्"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"विस्तार गर्नुहोस्"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"संक्षिप्त पार्नुहोस्"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"कुनै मिडिया चयन भएको छैन"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"जानकारी उपलब्ध छैन"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"स्क्रिन cast गर्दै"</string>
</resources>
diff --git a/v7/mediarouter/res/values-nl/strings.xml b/v7/mediarouter/res/values-nl/strings.xml
index 22323b1..762139e 100644
--- a/v7/mediarouter/res/values-nl/strings.xml
+++ b/v7/mediarouter/res/values-nl/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Afspelen"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Onderbreken"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Casten"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Casten naar"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Apparaten zoeken"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Loskoppelen"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Casten stoppen"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Sluiten"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Afspelen"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Onderbreken"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Uitvouwen"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Samenvouwen"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Geen media geselecteerd"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Geen informatie beschikbaar"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Scherm casten"</string>
</resources>
diff --git a/v7/mediarouter/res/values-pa-rIN/strings.xml b/v7/mediarouter/res/values-pa-rIN/strings.xml
index 02053d7..63ac0ce 100644
--- a/v7/mediarouter/res/values-pa-rIN/strings.xml
+++ b/v7/mediarouter/res/values-pa-rIN/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"ਪਲੇ ਕਰੋ"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"ਰੋਕੋ"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"ਜੋੜੋ"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"ਇਸ ਨਾਲ ਕਾਸਟ ਕਰੋ"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"ਡਿਵਾਈਸਾਂ ਲੱਭ ਰਿਹਾ ਹੈ"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"ਡਿਸਕਨੈਕਟ ਕਰੋ"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"ਜੋੜਨਾ ਰੋਕੋ"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"ਬੰਦ ਕਰੋ"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"ਪਲੇ ਕਰੋ"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"ਰੋਕੋ"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"ਵਿਸਤਾਰ ਕਰੋ"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"ਬੰਦ ਕਰੋ"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"ਕੋਈ ਵੀ ਮੀਡੀਆ ਨਹੀਂ ਚੁਣਿਆ ਗਿਆ"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"ਕੋਈ ਜਾਣਕਾਰੀ ਉਪਲਬਧ ਨਹੀਂ"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"ਸਕ੍ਰੀਨ ਜੋੜ ਰਿਹਾ ਹੈ"</string>
</resources>
diff --git a/v7/mediarouter/res/values-pl/strings.xml b/v7/mediarouter/res/values-pl/strings.xml
index fbcb7e1..33c081c 100644
--- a/v7/mediarouter/res/values-pl/strings.xml
+++ b/v7/mediarouter/res/values-pl/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Odtwórz"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Wstrzymaj"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Przesyłaj"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Przesyłaj na"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Znajdowanie urządzeń"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Odłącz"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Zatrzymaj przesyłanie"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Zamknij"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Odtwórz"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Wstrzymaj"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Rozwiń"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Zwiń"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Nie wybrano multimediów"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Brak informacji"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Przesyłam ekran"</string>
</resources>
diff --git a/v7/mediarouter/res/values-pt-rBR/strings.xml b/v7/mediarouter/res/values-pt-rBR/strings.xml
new file mode 100644
index 0000000..115b278
--- /dev/null
+++ b/v7/mediarouter/res/values-pt-rBR/strings.xml
@@ -0,0 +1,34 @@
+<?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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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_button_content_description" msgid="4324764887951330391">"Transmitir"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Transmitir para"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Localizando dispositivos"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Desconectar"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Interromper transmissão"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Fechar"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Reproduzir"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Pausar"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Expandir"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Recolher"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Nenhuma mídia selecionada"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Nenhuma informação disponível"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Transmitindo a tela"</string>
+</resources>
diff --git a/v7/mediarouter/res/values-pt-rPT/strings.xml b/v7/mediarouter/res/values-pt-rPT/strings.xml
index 7982b3c..9cf90f2 100644
--- a/v7/mediarouter/res/values-pt-rPT/strings.xml
+++ b/v7/mediarouter/res/values-pt-rPT/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Reproduzir"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Colocar em pausa"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Transmitir"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Transmitir para"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"A localizar dispositivos"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Desassociar"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Interromper a transmissão"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Fechar"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Reproduzir"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Interromper"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Expandir"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Reduzir"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Nenhum suporte multimédia selecionado"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Nenhuma informação disponível"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"A transmitir o ecrã"</string>
</resources>
diff --git a/v7/mediarouter/res/values-pt/strings.xml b/v7/mediarouter/res/values-pt/strings.xml
index 12a954a..115b278 100644
--- a/v7/mediarouter/res/values-pt/strings.xml
+++ b/v7/mediarouter/res/values-pt/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Reproduzir"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Pausar"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Transmitir"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Transmitir para"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Localizando dispositivos"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Desconectar"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Interromper transmissão"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Fechar"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Reproduzir"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Pausar"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Expandir"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Recolher"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Nenhuma mídia selecionada"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Nenhuma informação disponível"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Transmitindo a tela"</string>
</resources>
diff --git a/v7/mediarouter/res/values-ro/strings.xml b/v7/mediarouter/res/values-ro/strings.xml
index 6e8bb4c..f2c90e6 100644
--- a/v7/mediarouter/res/values-ro/strings.xml
+++ b/v7/mediarouter/res/values-ro/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Redați"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Întrerupeți"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Proiectați"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Proiectați pe"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Se caută dispozitive"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Deconectați-vă"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Opriți proiecția"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Închideți"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Redați"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Întrerupeți"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Extindeți"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Restrângeți"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Niciun fișier media selectat"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Nu sunt disponibile informații"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Se proiectează ecranul"</string>
</resources>
diff --git a/v7/mediarouter/res/values-ru/strings.xml b/v7/mediarouter/res/values-ru/strings.xml
index 0b9d7a7..ad91e8a 100644
--- a/v7/mediarouter/res/values-ru/strings.xml
+++ b/v7/mediarouter/res/values-ru/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Воспроизвести."</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Приостановить."</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Транслировать"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Выберите устройство"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Поиск устройств…"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Отключить"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Остановить трансляцию"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Закрыть"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Воспроизвести"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Приостановить"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Развернуть"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Свернуть"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Медиафайл не выбран"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Данных нет"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Подключение к удаленному монитору"</string>
</resources>
diff --git a/v7/mediarouter/res/values-si-rLK/strings.xml b/v7/mediarouter/res/values-si-rLK/strings.xml
index 6db6506..fac7535 100644
--- a/v7/mediarouter/res/values-si-rLK/strings.xml
+++ b/v7/mediarouter/res/values-si-rLK/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"ධාවනය කරන්න"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"විරාමය"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"විකාශය"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"විකාශය"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"උපාංග සෙවීම"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"විසන්ධි කරන්න"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"විකාශ කිරීම නවත්වන්න"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"වසන්න"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"ධාවනය කරන්න"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"විරාම ගන්වන්න"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"දිග හරින්න"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"හකුළන්න"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"මාධ්යය තෝරා නැත"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"ලබා ගත හැකි තොරතුරු නොමැත"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"විකාශ තිරය"</string>
</resources>
diff --git a/v7/mediarouter/res/values-sk/strings.xml b/v7/mediarouter/res/values-sk/strings.xml
index e6a02ac..6330497 100644
--- a/v7/mediarouter/res/values-sk/strings.xml
+++ b/v7/mediarouter/res/values-sk/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Prehrať"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Pozastaviť"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Prenos"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Prenos do"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Vyhľadávanie zariadení"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Odpojiť"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Zastaviť prenos"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Zavrieť"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Prehrať"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Pozastaviť"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Rozbaliť"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Zbaliť"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Nie sú vybrané žiadne médiá"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Nie sú k dispozícii žiadne informácie"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Prenáša sa obrazovka"</string>
</resources>
diff --git a/v7/mediarouter/res/values-sl/strings.xml b/v7/mediarouter/res/values-sl/strings.xml
index 8b02d5d..486b3d5 100644
--- a/v7/mediarouter/res/values-sl/strings.xml
+++ b/v7/mediarouter/res/values-sl/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Predvajaj"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Zaustavi"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Predvajanje"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Predvajanje prek:"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Iskanje naprav"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Prekini povezavo"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Ustavi predvajanje"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Zapri"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Predvajanje"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Zaustavi"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Razširi"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Strni"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Ni izbrane predstavnosti"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Podatki niso na voljo"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Predvajanje zaslona"</string>
</resources>
diff --git a/v7/mediarouter/res/values-sq-rAL/strings.xml b/v7/mediarouter/res/values-sq-rAL/strings.xml
index ccd00c7..873dc70 100644
--- a/v7/mediarouter/res/values-sq-rAL/strings.xml
+++ b/v7/mediarouter/res/values-sq-rAL/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Luaj"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Pauzë"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Transmeto"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Transmeto te"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Gjetja e pajisjeve"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Shkëpute"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Ndalo transmetimin"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Mbyll"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Luaj"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Pauzë"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Zgjeroje"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Palose"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Nuk u zgjodh asnjë media"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Nuk jepet asnjë informacion"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Po transmeton ekranin"</string>
</resources>
diff --git a/v7/mediarouter/res/values-sr/strings.xml b/v7/mediarouter/res/values-sr/strings.xml
index 9bca659..48019fc 100644
--- a/v7/mediarouter/res/values-sr/strings.xml
+++ b/v7/mediarouter/res/values-sr/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Пусти"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Паузирај"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Пребацивање"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Пребацујте на"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Проналажење уређаја"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Прекини везу"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Заустави пребацивање"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Затвори"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Пусти"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Паузирај"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Прошири"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Скупи"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Нема изабраних медија"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Нису доступне никакве информације"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Пребацује се екран"</string>
</resources>
diff --git a/v7/mediarouter/res/values-sv/strings.xml b/v7/mediarouter/res/values-sv/strings.xml
index e802f47..5702582 100644
--- a/v7/mediarouter/res/values-sv/strings.xml
+++ b/v7/mediarouter/res/values-sv/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Spela upp"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Pausa"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Casta"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Casta till"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Letar efter enheter"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Koppla från"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Sluta casta"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Stäng"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Spela upp"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Pausa"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Utöka"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Komprimera"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Inga media har valts"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Det finns ingen information"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Skärmen castas"</string>
</resources>
diff --git a/v7/mediarouter/res/values-sw/strings.xml b/v7/mediarouter/res/values-sw/strings.xml
index 5f2c5b7..fb19f71 100644
--- a/v7/mediarouter/res/values-sw/strings.xml
+++ b/v7/mediarouter/res/values-sw/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Google Play"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Sitisha"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Tuma"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Tuma kwenye"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Inatafuta vifaa"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Ondoa"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Acha kutuma"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Funga"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Cheza"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Sitisha"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Panua"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Kunja"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Hakuna maudhui yaliyochaguliwa"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Hakuna maelezo yaliyopatikana"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Inatuma skrini"</string>
</resources>
diff --git a/v7/mediarouter/res/values-ta-rIN/strings.xml b/v7/mediarouter/res/values-ta-rIN/strings.xml
index 2496d80..f5ecb7b 100644
--- a/v7/mediarouter/res/values-ta-rIN/strings.xml
+++ b/v7/mediarouter/res/values-ta-rIN/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"இயக்கு"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"இடைநிறுத்து"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"அனுப்பும்"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"இதற்கு அனுப்பு"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"சாதனங்களைத் தேடுகிறது"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"தொடர்பைத் துண்டி"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"அனுப்புவதை நிறுத்து"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"மூடும்"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"இயக்கும்"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"இடைநிறுத்தும்"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"விரிவாக்கு"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"சுருக்கு"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"மீடியா எதுவும் தேர்ந்தெடுக்கப்படவில்லை"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"தகவல் எதுவுமில்லை"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"திரையை அனுப்புகிறீர்கள்"</string>
</resources>
diff --git a/v7/mediarouter/res/values-te-rIN/strings.xml b/v7/mediarouter/res/values-te-rIN/strings.xml
index 897fa1e..9949915 100644
--- a/v7/mediarouter/res/values-te-rIN/strings.xml
+++ b/v7/mediarouter/res/values-te-rIN/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"ప్లే చేయి"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"పాజ్ చేయి"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"ప్రసారం చేస్తుంది"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"దీనికి ప్రసారం చేయండి"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"పరికరాలను కనుగొంటోంది"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"డిస్కనెక్ట్ చేయి"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"ప్రసారాన్ని ఆపివేయి"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"మూసివేస్తుంది"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"ప్లే చేస్తుంది"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"పాజ్ చేస్తుంది"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"విస్తరింపజేస్తుంది"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"కుదిస్తుంది"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"మీడియా ఏదీ ఎంచుకోబడలేదు"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"సమాచారం అందుబాటులో లేదు"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"స్క్రీన్ను ప్రసారం చేస్తోంది"</string>
</resources>
diff --git a/v7/mediarouter/res/values-th/strings.xml b/v7/mediarouter/res/values-th/strings.xml
index 7fed923..0e236c9 100644
--- a/v7/mediarouter/res/values-th/strings.xml
+++ b/v7/mediarouter/res/values-th/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"เล่น"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"หยุดชั่วคราว"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"แคสต์"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"แคสต์ไปยัง"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"กำลังค้นหาอุปกรณ์"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"ยกเลิกการเชื่อมต่อ"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"หยุดการแคสต์"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"ปิด"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"เล่น"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"หยุดชั่วคราว"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"ขยาย"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"ยุบ"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"ไม่ได้เลือกสื่อไว้"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"ไม่มีข้อมูล"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"กำลังแคสต์หน้าจอ"</string>
</resources>
diff --git a/v7/mediarouter/res/values-tl/strings.xml b/v7/mediarouter/res/values-tl/strings.xml
index b22031a..fde2fab 100644
--- a/v7/mediarouter/res/values-tl/strings.xml
+++ b/v7/mediarouter/res/values-tl/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"I-play"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"I-pause"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"I-cast"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"I-cast sa"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Naghahanap ng mga device"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Idiskonekta"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Itigil ang pagca-cast"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Isara"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"I-play"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"I-pause"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Palawakin"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"I-collapse"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Walang piniling media"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Walang available na impormasyon"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Kina-cast ang screen"</string>
</resources>
diff --git a/v7/mediarouter/res/values-tr/strings.xml b/v7/mediarouter/res/values-tr/strings.xml
index dad9c60..42e8132 100644
--- a/v7/mediarouter/res/values-tr/strings.xml
+++ b/v7/mediarouter/res/values-tr/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Oynat"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Duraklat"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Yayınla"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Şuraya yayınla:"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Cihazlar bulunuyor"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Bağlantıyı kes"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Yayını durdur"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Kapat"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Oynat"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Duraklat"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Genişlet"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Daralt"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Medya seçilmedi"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Bilgi yok"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Ekran yayınlanıyor"</string>
</resources>
diff --git a/v7/mediarouter/res/values-uk/strings.xml b/v7/mediarouter/res/values-uk/strings.xml
index 9daaf87..7eceaa8 100644
--- a/v7/mediarouter/res/values-uk/strings.xml
+++ b/v7/mediarouter/res/values-uk/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Відтворити"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Призупинити"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Транслювати"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Транслювати на"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Пошук пристроїв"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Відключити"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Припинити трансляцію"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Закрити"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Відтворити"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Призупинити"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Розгорнути"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Згорнути"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Медіа-файл не вибрано"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Немає даних"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Трансляція екрана"</string>
</resources>
diff --git a/v7/mediarouter/res/values-ur-rPK/strings.xml b/v7/mediarouter/res/values-ur-rPK/strings.xml
index fd2cbb7..d874ebe 100644
--- a/v7/mediarouter/res/values-ur-rPK/strings.xml
+++ b/v7/mediarouter/res/values-ur-rPK/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"چلائیں"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"موقوف کریں"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"کاسٹ کریں"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"اس میں کاسٹ کریں"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"آلات تلاش ہو رہے ہیں"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"غیر منسلک کریں"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"کاسٹ کرنا بند کریں"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"بند کریں"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"چلائیں"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"موقوف کریں"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"پھیلائیں"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"سکیڑیں"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"کوئی میڈیا منتخب نہیں ہے"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"کوئی معلومات دستیاب نہیں"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"سکرین کاسٹ ہو رہی ہے"</string>
</resources>
diff --git a/v7/mediarouter/res/values-uz-rUZ/strings.xml b/v7/mediarouter/res/values-uz-rUZ/strings.xml
index 6c364d5..f9699f6 100644
--- a/v7/mediarouter/res/values-uz-rUZ/strings.xml
+++ b/v7/mediarouter/res/values-uz-rUZ/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Ijro qilish"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"To‘xtatib turish"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Translatsiya"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Quyidagiga translatsiya qilish:"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Qurilmalarni topish"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Ulanishni uzish"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Translatsiyani to‘xtatish"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Yopish"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Boshlash"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"To‘xtatib turish"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Yoyish"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Yig‘ish"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Multimedia tanlamagan"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Hech qanday ma’lumot yo‘q"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Ekranni translatsiya qilish"</string>
</resources>
diff --git a/v7/mediarouter/res/values-vi/strings.xml b/v7/mediarouter/res/values-vi/strings.xml
index 0a53da0..997bf89 100644
--- a/v7/mediarouter/res/values-vi/strings.xml
+++ b/v7/mediarouter/res/values-vi/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Phát"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Tạm dừng"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Truyền"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Truyền tới"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Tìm thiết bị"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Ngắt kết nối"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Dừng truyền"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Đóng"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Phát"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Tạm dừng"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Mở rộng"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Thu gọn"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Không có phương tiện nào được chọn"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Không có thông tin nào"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Đang truyền màn hình"</string>
</resources>
diff --git a/v7/mediarouter/res/values-zh-rCN/strings.xml b/v7/mediarouter/res/values-zh-rCN/strings.xml
index e9b04d7..592e630 100644
--- a/v7/mediarouter/res/values-zh-rCN/strings.xml
+++ b/v7/mediarouter/res/values-zh-rCN/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"播放"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"暂停"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"投射"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"投射到"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"正在查找设备"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"断开连接"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"停止投射"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"关闭"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"播放"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"暂停"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"展开"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"折叠"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"未选择任何媒体"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"没有任何相关信息"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"正在投射屏幕"</string>
</resources>
diff --git a/v7/mediarouter/res/values-zh-rHK/strings.xml b/v7/mediarouter/res/values-zh-rHK/strings.xml
index 66d2f55..d54c642 100644
--- a/v7/mediarouter/res/values-zh-rHK/strings.xml
+++ b/v7/mediarouter/res/values-zh-rHK/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"播放"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"暫停"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"投放"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"投放至"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"正在尋找裝置"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"中斷連線"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"停止投放"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"關閉"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"播放"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"暫停"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"展開"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"收合"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"尚未選擇媒體"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"沒有詳細資料"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"正在投放螢幕"</string>
</resources>
diff --git a/v7/mediarouter/res/values-zh-rTW/strings.xml b/v7/mediarouter/res/values-zh-rTW/strings.xml
index a6fa252..966d6b5 100644
--- a/v7/mediarouter/res/values-zh-rTW/strings.xml
+++ b/v7/mediarouter/res/values-zh-rTW/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"播放"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"暫停"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"投放"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"投放到"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"正在尋找裝置"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"中斷連線"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"停止投放"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"關閉"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"播放"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"暫停"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"展開"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"收合"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"未選取任何媒體"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"沒有可用的資訊"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"正在投放螢幕"</string>
</resources>
diff --git a/v7/mediarouter/res/values-zu/strings.xml b/v7/mediarouter/res/values-zu/strings.xml
index 78f415d..eb4b925 100644
--- a/v7/mediarouter/res/values-zu/strings.xml
+++ b/v7/mediarouter/res/values-zu/strings.xml
@@ -18,12 +18,17 @@
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_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_controller_play" msgid="5214423499524760404">"Dlala"</string>
- <string name="mr_controller_pause" msgid="8315773974194466049">"Misa isikhashana"</string>
+ <string name="mr_button_content_description" msgid="4324764887951330391">"Sakaza"</string>
+ <string name="mr_chooser_title" msgid="414301941546135990">"Sakaza ku-"</string>
+ <string name="mr_chooser_searching" msgid="6349900579507521956">"Ithola amadivayisi"</string>
+ <string name="mr_controller_disconnect" msgid="1227264889412989580">"Nqamula"</string>
+ <string name="mr_controller_stop" msgid="4570331844078181931">"Misa ukusakaza"</string>
+ <string name="mr_controller_close_description" msgid="7333862312480583260">"Vala"</string>
+ <string name="mr_controller_play" msgid="683634565969987458">"Dlala"</string>
+ <string name="mr_controller_pause" msgid="5451884435510905406">"Misa isikhashana"</string>
+ <string name="mr_controller_expand_group" msgid="8062427022744266907">"Nweba"</string>
+ <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Goqa"</string>
+ <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Ayikho imidiya ekhethiwe"</string>
+ <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Alukho ulwazi olutholakalayo"</string>
+ <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Isikrini sokusakaza"</string>
</resources>