merge in oc-release history after reset to master
diff --git a/media-compat/tests/src/android/support/v4/media/session/MediaSessionCompatTest.java b/media-compat/tests/src/android/support/v4/media/session/MediaSessionCompatTest.java
index b24f50e..0e85c1c 100644
--- a/media-compat/tests/src/android/support/v4/media/session/MediaSessionCompatTest.java
+++ b/media-compat/tests/src/android/support/v4/media/session/MediaSessionCompatTest.java
@@ -36,13 +36,11 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Parcel;
-import android.support.test.filters.FlakyTest;
 import android.support.test.filters.SmallTest;
-import android.support.test.filters.Suppress;
 import android.support.test.runner.AndroidJUnit4;
+import android.support.v4.media.PollingCheck;
 import android.support.v4.media.MediaDescriptionCompat;
 import android.support.v4.media.MediaMetadataCompat;
-import android.support.v4.media.PollingCheck;
 import android.support.v4.media.RatingCompat;
 import android.support.v4.media.VolumeProviderCompat;
 import android.view.KeyEvent;
@@ -211,8 +209,6 @@
     /**
      * Tests {@link MediaSessionCompat#setPlaybackState}.
      */
-    @Suppress
-    @FlakyTest(bugId = 35620019)
     @Test
     @SmallTest
     public void testSetPlaybackState() throws Exception {
@@ -316,8 +312,6 @@
     /**
      * Tests {@link MediaSessionCompat#setRepeatMode}.
      */
-    @Suppress
-    @FlakyTest(bugId = 35620019)
     @Test
     @SmallTest
     public void testSetRepeatMode() throws Exception {
@@ -340,8 +334,6 @@
     /**
      * Tests {@link MediaSessionCompat#setShuffleModeEnabled}.
      */
-    @Suppress
-    @FlakyTest(bugId = 35620019)
     @Test
     @SmallTest
     public void testSetShuffleModeEnabled() throws Exception {
diff --git a/v7/appcompat/src/android/support/v7/view/menu/CascadingMenuPopup.java b/v7/appcompat/src/android/support/v7/view/menu/CascadingMenuPopup.java
index b62127e..d3c2fc8 100644
--- a/v7/appcompat/src/android/support/v7/view/menu/CascadingMenuPopup.java
+++ b/v7/appcompat/src/android/support/v7/view/menu/CascadingMenuPopup.java
@@ -27,6 +27,7 @@
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.support.annotation.StyleRes;
+import android.support.v4.internal.view.SupportMenu;
 import android.support.v4.view.GravityCompat;
 import android.support.v4.view.ViewCompat;
 import android.support.v7.appcompat.R;
@@ -163,7 +164,7 @@
 
                     // Then open the selected submenu, if there is one.
                     if (item.isEnabled() && item.hasSubMenu()) {
-                        menu.performItemAction(item, 0);
+                        menu.performItemAction(item, SupportMenu.FLAG_KEEP_OPEN_ON_SUBMENU_OPENED);
                     }
                 }
             };
diff --git a/v7/mediarouter/res/values-az/strings.xml b/v7/mediarouter/res/values-az/strings.xml
index 76ffa6b..0255164 100644
--- a/v7/mediarouter/res/values-az/strings.xml
+++ b/v7/mediarouter/res/values-az/strings.xml
@@ -25,13 +25,11 @@
     <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>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"Dayandırın"</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_album_art" msgid="6422801843540543585">"Albom incəsənəti"</string>
diff --git a/v7/mediarouter/res/values-bn/strings.xml b/v7/mediarouter/res/values-bn/strings.xml
index 32f472c..56fcdd9 100644
--- a/v7/mediarouter/res/values-bn/strings.xml
+++ b/v7/mediarouter/res/values-bn/strings.xml
@@ -25,13 +25,11 @@
     <string name="mr_chooser_title" msgid="414301941546135990">"এতে কাস্ট করুন"</string>
     <string name="mr_chooser_searching" msgid="6349900579507521956">"ডিভাইসগুলিকে খোঁজা হচ্ছে"</string>
     <string name="mr_controller_disconnect" msgid="1227264889412989580">"সংযোগ বিচ্ছিন্ন করুন"</string>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"কাস্ট করা বন্ধ করুন"</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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"থামান"</string>
     <string name="mr_controller_expand_group" msgid="8062427022744266907">"প্রসারিত করুন"</string>
     <string name="mr_controller_collapse_group" msgid="7924809056904240926">"সঙ্কুচিত করুন"</string>
     <string name="mr_controller_album_art" msgid="6422801843540543585">"অ্যালবাম শৈলি"</string>
diff --git a/v7/mediarouter/res/values-ca/strings.xml b/v7/mediarouter/res/values-ca/strings.xml
index 2f33e63..a5e5883 100644
--- a/v7/mediarouter/res/values-ca/strings.xml
+++ b/v7/mediarouter/res/values-ca/strings.xml
@@ -25,13 +25,11 @@
     <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>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"Atura"</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_album_art" msgid="6422801843540543585">"Imatge de l\'àlbum"</string>
diff --git a/v7/mediarouter/res/values-es/strings.xml b/v7/mediarouter/res/values-es/strings.xml
index 2437665..34c1804 100644
--- a/v7/mediarouter/res/values-es/strings.xml
+++ b/v7/mediarouter/res/values-es/strings.xml
@@ -25,7 +25,7 @@
     <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_casting" msgid="8857886794086583226">"Dejar de enviar contenido"</string>
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"Detener envío de 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>
diff --git a/v7/mediarouter/res/values-et/strings.xml b/v7/mediarouter/res/values-et/strings.xml
index cabd370..2fc7834 100644
--- a/v7/mediarouter/res/values-et/strings.xml
+++ b/v7/mediarouter/res/values-et/strings.xml
@@ -25,13 +25,11 @@
     <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>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"Peata ülekandmine"</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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"Peata"</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_album_art" msgid="6422801843540543585">"Albumi kujundus"</string>
diff --git a/v7/mediarouter/res/values-gu/strings.xml b/v7/mediarouter/res/values-gu/strings.xml
index f72f9f0..2792842 100644
--- a/v7/mediarouter/res/values-gu/strings.xml
+++ b/v7/mediarouter/res/values-gu/strings.xml
@@ -25,13 +25,11 @@
     <string name="mr_chooser_title" msgid="414301941546135990">"આના પર કાસ્ટ કરો"</string>
     <string name="mr_chooser_searching" msgid="6349900579507521956">"ઉપકરણો શોધી રહ્યાં છીએ"</string>
     <string name="mr_controller_disconnect" msgid="1227264889412989580">"ડિસ્કનેક્ટ કરો"</string>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"કાસ્ટ કરવાનું રોકો"</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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"રોકો"</string>
     <string name="mr_controller_expand_group" msgid="8062427022744266907">"વિસ્તૃત કરો"</string>
     <string name="mr_controller_collapse_group" msgid="7924809056904240926">"સંકુચિત કરો"</string>
     <string name="mr_controller_album_art" msgid="6422801843540543585">"આલ્બમ કલા"</string>
diff --git a/v7/mediarouter/res/values-hy/strings.xml b/v7/mediarouter/res/values-hy/strings.xml
index 034b894..f7547af 100644
--- a/v7/mediarouter/res/values-hy/strings.xml
+++ b/v7/mediarouter/res/values-hy/strings.xml
@@ -25,13 +25,11 @@
     <string name="mr_chooser_title" msgid="414301941546135990">"Ընտրեք սարքը"</string>
     <string name="mr_chooser_searching" msgid="6349900579507521956">"Սարքերի որոնում"</string>
     <string name="mr_controller_disconnect" msgid="1227264889412989580">"Անջատել"</string>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"Դադարեցնել հեռարձակումը"</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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"Դադարեցնել"</string>
     <string name="mr_controller_expand_group" msgid="8062427022744266907">"Ընդարձակել"</string>
     <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Կոծկել"</string>
     <string name="mr_controller_album_art" msgid="6422801843540543585">"Ալբոմի շապիկ"</string>
diff --git a/v7/mediarouter/res/values-kk/strings.xml b/v7/mediarouter/res/values-kk/strings.xml
index d66c33a..8128074 100644
--- a/v7/mediarouter/res/values-kk/strings.xml
+++ b/v7/mediarouter/res/values-kk/strings.xml
@@ -25,13 +25,11 @@
     <string name="mr_chooser_title" msgid="414301941546135990">"Келесіге трансляциялау"</string>
     <string name="mr_chooser_searching" msgid="6349900579507521956">"Құрылғыларды табу"</string>
     <string name="mr_controller_disconnect" msgid="1227264889412989580">"Ажырату"</string>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"Трансляциялауды тоқтату"</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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"Тоқтату"</string>
     <string name="mr_controller_expand_group" msgid="8062427022744266907">"Жаю"</string>
     <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Жию"</string>
     <string name="mr_controller_album_art" msgid="6422801843540543585">"Альбом шебері"</string>
diff --git a/v7/mediarouter/res/values-km/strings.xml b/v7/mediarouter/res/values-km/strings.xml
index b844387..e9bef13 100644
--- a/v7/mediarouter/res/values-km/strings.xml
+++ b/v7/mediarouter/res/values-km/strings.xml
@@ -25,13 +25,11 @@
     <string name="mr_chooser_title" msgid="414301941546135990">"ខាសទៅ"</string>
     <string name="mr_chooser_searching" msgid="6349900579507521956">"ស្វែងរកឧបករណ៍"</string>
     <string name="mr_controller_disconnect" msgid="1227264889412989580">"ផ្ដាច់"</string>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"ឈប់ភ្ជាប់"</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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"ឈប់"</string>
     <string name="mr_controller_expand_group" msgid="8062427022744266907">"ពង្រីក"</string>
     <string name="mr_controller_collapse_group" msgid="7924809056904240926">"បង្រួម"</string>
     <string name="mr_controller_album_art" msgid="6422801843540543585">"ស្នាដៃសិល្បៈអាល់ប៊ុម"</string>
diff --git a/v7/mediarouter/res/values-kn/strings.xml b/v7/mediarouter/res/values-kn/strings.xml
index ac63274..cd0ff44 100644
--- a/v7/mediarouter/res/values-kn/strings.xml
+++ b/v7/mediarouter/res/values-kn/strings.xml
@@ -25,13 +25,11 @@
     <string name="mr_chooser_title" msgid="414301941546135990">"ಇದಕ್ಕೆ ಬಿತ್ತರಿಸಿ"</string>
     <string name="mr_chooser_searching" msgid="6349900579507521956">"ಸಾಧನಗಳನ್ನು ಹುಡುಕಲಾಗುತ್ತಿದೆ"</string>
     <string name="mr_controller_disconnect" msgid="1227264889412989580">"ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸು"</string>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"ಬಿತ್ತರಿಸುವಿಕೆ ನಿಲ್ಲಿಸಿ"</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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"ನಿಲ್ಲಿಸಿ"</string>
     <string name="mr_controller_expand_group" msgid="8062427022744266907">"ವಿಸ್ತರಿಸು"</string>
     <string name="mr_controller_collapse_group" msgid="7924809056904240926">"ಸಂಕುಚಿಸು"</string>
     <string name="mr_controller_album_art" msgid="6422801843540543585">"ಆಲ್ಬಮ್ ಕಲೆ"</string>
diff --git a/v7/mediarouter/res/values-ko/strings.xml b/v7/mediarouter/res/values-ko/strings.xml
index 2c969f7..2d3f837 100644
--- a/v7/mediarouter/res/values-ko/strings.xml
+++ b/v7/mediarouter/res/values-ko/strings.xml
@@ -25,13 +25,11 @@
     <string name="mr_chooser_title" msgid="414301941546135990">"전송할 기기"</string>
     <string name="mr_chooser_searching" msgid="6349900579507521956">"기기를 찾는 중"</string>
     <string name="mr_controller_disconnect" msgid="1227264889412989580">"연결 해제"</string>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"전송 중지"</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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"중지"</string>
     <string name="mr_controller_expand_group" msgid="8062427022744266907">"펼치기"</string>
     <string name="mr_controller_collapse_group" msgid="7924809056904240926">"접기"</string>
     <string name="mr_controller_album_art" msgid="6422801843540543585">"앨범아트"</string>
diff --git a/v7/mediarouter/res/values-lt/strings.xml b/v7/mediarouter/res/values-lt/strings.xml
index 859e3e6..6545f9a 100644
--- a/v7/mediarouter/res/values-lt/strings.xml
+++ b/v7/mediarouter/res/values-lt/strings.xml
@@ -25,13 +25,11 @@
     <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>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"Sustabdyti"</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_album_art" msgid="6422801843540543585">"Albumo viršelis"</string>
diff --git a/v7/mediarouter/res/values-lv/strings.xml b/v7/mediarouter/res/values-lv/strings.xml
index 86335c1..46b69b3 100644
--- a/v7/mediarouter/res/values-lv/strings.xml
+++ b/v7/mediarouter/res/values-lv/strings.xml
@@ -25,13 +25,11 @@
     <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>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"Apturēt 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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"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_album_art" msgid="6422801843540543585">"Albuma vāciņš"</string>
diff --git a/v7/mediarouter/res/values-ml/strings.xml b/v7/mediarouter/res/values-ml/strings.xml
index 41afa3c..c7b50be73 100644
--- a/v7/mediarouter/res/values-ml/strings.xml
+++ b/v7/mediarouter/res/values-ml/strings.xml
@@ -25,13 +25,11 @@
     <string name="mr_chooser_title" msgid="414301941546135990">"ഇതിലേക്ക് കാസ്റ്റുചെയ്യുക"</string>
     <string name="mr_chooser_searching" msgid="6349900579507521956">"ഉപകരണങ്ങൾ കണ്ടെത്തുന്നു"</string>
     <string name="mr_controller_disconnect" msgid="1227264889412989580">"വിച്ഛേദിക്കുക"</string>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"കാസ്റ്റുചെയ്യൽ നിർത്തുക"</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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"നിര്‍ത്തുക"</string>
     <string name="mr_controller_expand_group" msgid="8062427022744266907">"വികസിപ്പിക്കുക"</string>
     <string name="mr_controller_collapse_group" msgid="7924809056904240926">"ചുരുക്കുക"</string>
     <string name="mr_controller_album_art" msgid="6422801843540543585">"ആൽബം ആർട്ട്"</string>
diff --git a/v7/mediarouter/res/values-mn/strings.xml b/v7/mediarouter/res/values-mn/strings.xml
index 35a1016..debccf9 100644
--- a/v7/mediarouter/res/values-mn/strings.xml
+++ b/v7/mediarouter/res/values-mn/strings.xml
@@ -25,13 +25,11 @@
     <string name="mr_chooser_title" msgid="414301941546135990">"Дамжуулах"</string>
     <string name="mr_chooser_searching" msgid="6349900579507521956">"Төхөөрөмж хайж байна"</string>
     <string name="mr_controller_disconnect" msgid="1227264889412989580">"Салгах"</string>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"Дамжуулахыг зогсоох"</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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"Зогсоох"</string>
     <string name="mr_controller_expand_group" msgid="8062427022744266907">"Дэлгэх"</string>
     <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Хураах"</string>
     <string name="mr_controller_album_art" msgid="6422801843540543585">"Цомгийн зураг"</string>
diff --git a/v7/mediarouter/res/values-mr/strings.xml b/v7/mediarouter/res/values-mr/strings.xml
index 1afd9f2..27923d1 100644
--- a/v7/mediarouter/res/values-mr/strings.xml
+++ b/v7/mediarouter/res/values-mr/strings.xml
@@ -25,13 +25,11 @@
     <string name="mr_chooser_title" msgid="414301941546135990">"यावर कास्ट करा"</string>
     <string name="mr_chooser_searching" msgid="6349900579507521956">"डिव्हाइसेस शोधत आहे"</string>
     <string name="mr_controller_disconnect" msgid="1227264889412989580">"डिस्‍कनेक्‍ट करा"</string>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"कास्ट करणे थांबवा"</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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"थांबा"</string>
     <string name="mr_controller_expand_group" msgid="8062427022744266907">"विस्तृत करा"</string>
     <string name="mr_controller_collapse_group" msgid="7924809056904240926">"संकुचित करा"</string>
     <string name="mr_controller_album_art" msgid="6422801843540543585">"अल्बम कला"</string>
diff --git a/v7/mediarouter/res/values-ms/strings.xml b/v7/mediarouter/res/values-ms/strings.xml
index b584b90..4f305b08 100644
--- a/v7/mediarouter/res/values-ms/strings.xml
+++ b/v7/mediarouter/res/values-ms/strings.xml
@@ -25,13 +25,11 @@
     <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>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"Berhenti"</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_album_art" msgid="6422801843540543585">"Seni album"</string>
diff --git a/v7/mediarouter/res/values-ne/strings.xml b/v7/mediarouter/res/values-ne/strings.xml
index 4e2bfa5..0622ca9 100644
--- a/v7/mediarouter/res/values-ne/strings.xml
+++ b/v7/mediarouter/res/values-ne/strings.xml
@@ -25,13 +25,11 @@
     <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>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"रोक्नुहोस्"</string>
     <string name="mr_controller_expand_group" msgid="8062427022744266907">"विस्तार गर्नुहोस्"</string>
     <string name="mr_controller_collapse_group" msgid="7924809056904240926">"संक्षिप्त पार्नुहोस्"</string>
     <string name="mr_controller_album_art" msgid="6422801843540543585">"एल्बम आर्ट"</string>
diff --git a/v7/mediarouter/res/values-nl/strings.xml b/v7/mediarouter/res/values-nl/strings.xml
index 165684cb..fcb674f 100644
--- a/v7/mediarouter/res/values-nl/strings.xml
+++ b/v7/mediarouter/res/values-nl/strings.xml
@@ -25,13 +25,11 @@
     <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>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"Stoppen"</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_album_art" msgid="6422801843540543585">"Albumhoes"</string>
diff --git a/v7/mediarouter/res/values-pa/strings.xml b/v7/mediarouter/res/values-pa/strings.xml
index 33e46c3..e058e18 100644
--- a/v7/mediarouter/res/values-pa/strings.xml
+++ b/v7/mediarouter/res/values-pa/strings.xml
@@ -25,13 +25,11 @@
     <string name="mr_chooser_title" msgid="414301941546135990">"ਇਸ ਨਾਲ ਕਾਸਟ ਕਰੋ"</string>
     <string name="mr_chooser_searching" msgid="6349900579507521956">"ਡਿਵਾਈਸਾਂ ਲੱਭ ਰਿਹਾ ਹੈ"</string>
     <string name="mr_controller_disconnect" msgid="1227264889412989580">"ਡਿਸਕਨੈਕਟ ਕਰੋ"</string>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"ਕਾਸਟ ਕਰਨਾ ਬੰਦ ਕਰੋ"</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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"ਬੰਦ ਕਰੋ"</string>
     <string name="mr_controller_expand_group" msgid="8062427022744266907">"ਵਿਸਤਾਰ ਕਰੋ"</string>
     <string name="mr_controller_collapse_group" msgid="7924809056904240926">"ਬੰਦ ਕਰੋ"</string>
     <string name="mr_controller_album_art" msgid="6422801843540543585">"ਐਲਬਮ ਆਰਟ"</string>
diff --git a/v7/mediarouter/res/values-th/strings.xml b/v7/mediarouter/res/values-th/strings.xml
index c999a4f..d9be678 100644
--- a/v7/mediarouter/res/values-th/strings.xml
+++ b/v7/mediarouter/res/values-th/strings.xml
@@ -25,13 +25,11 @@
     <string name="mr_chooser_title" msgid="414301941546135990">"แคสต์ไปยัง"</string>
     <string name="mr_chooser_searching" msgid="6349900579507521956">"กำลังค้นหาอุปกรณ์"</string>
     <string name="mr_controller_disconnect" msgid="1227264889412989580">"ยกเลิกการเชื่อมต่อ"</string>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"หยุดแคสต์"</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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"หยุด"</string>
     <string name="mr_controller_expand_group" msgid="8062427022744266907">"ขยาย"</string>
     <string name="mr_controller_collapse_group" msgid="7924809056904240926">"ยุบ"</string>
     <string name="mr_controller_album_art" msgid="6422801843540543585">"ปกอัลบั้ม"</string>
diff --git a/v7/mediarouter/res/values-tl/strings.xml b/v7/mediarouter/res/values-tl/strings.xml
index e21f465..4b4922b 100644
--- a/v7/mediarouter/res/values-tl/strings.xml
+++ b/v7/mediarouter/res/values-tl/strings.xml
@@ -25,13 +25,11 @@
     <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>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"Ihinto ang pag-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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"Ihinto"</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_album_art" msgid="6422801843540543585">"Album art"</string>
diff --git a/v7/mediarouter/res/values-ur/strings.xml b/v7/mediarouter/res/values-ur/strings.xml
index b12d661..c3f08ce 100644
--- a/v7/mediarouter/res/values-ur/strings.xml
+++ b/v7/mediarouter/res/values-ur/strings.xml
@@ -25,13 +25,11 @@
     <string name="mr_chooser_title" msgid="414301941546135990">"اس میں کاسٹ کریں"</string>
     <string name="mr_chooser_searching" msgid="6349900579507521956">"آلات تلاش ہو رہے ہیں"</string>
     <string name="mr_controller_disconnect" msgid="1227264889412989580">"غیر منسلک کریں"</string>
-    <!-- no translation found for mr_controller_stop_casting (8857886794086583226) -->
-    <skip />
+    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"کاسٹ کرنا بند کریں"</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>
-    <!-- no translation found for mr_controller_stop (735874641921425123) -->
-    <skip />
+    <string name="mr_controller_stop" msgid="735874641921425123">"روکیں"</string>
     <string name="mr_controller_expand_group" msgid="8062427022744266907">"پھیلائیں"</string>
     <string name="mr_controller_collapse_group" msgid="7924809056904240926">"سکیڑیں"</string>
     <string name="mr_controller_album_art" msgid="6422801843540543585">"البم آرٹ"</string>
diff --git a/v7/preference/src/android/support/v7/preference/PreferenceInflater.java b/v7/preference/src/android/support/v7/preference/PreferenceInflater.java
index 33196de..453b4d4 100644
--- a/v7/preference/src/android/support/v7/preference/PreferenceInflater.java
+++ b/v7/preference/src/android/support/v7/preference/PreferenceInflater.java
@@ -19,7 +19,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.XmlResourceParser;
-import android.os.Build;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.util.AttributeSet;
@@ -63,12 +62,8 @@
 
     private void init(PreferenceManager preferenceManager) {
         mPreferenceManager = preferenceManager;
-        if (Build.VERSION.SDK_INT >= 14) {
-            setDefaultPackages(new String[] {"android.support.v14.preference.",
-                    "android.support.v7.preference."});
-        } else {
-            setDefaultPackages(new String[] {"android.support.v7.preference."});
-        }
+        setDefaultPackages(new String[] {"android.support.v14.preference.",
+                "android.support.v7.preference."});
     }
 
     /**
diff --git a/v7/recyclerview/src/android/support/v7/widget/GapWorker.java b/v7/recyclerview/src/android/support/v7/widget/GapWorker.java
index 91f2bd4..e6c7801 100644
--- a/v7/recyclerview/src/android/support/v7/widget/GapWorker.java
+++ b/v7/recyclerview/src/android/support/v7/widget/GapWorker.java
@@ -210,8 +210,10 @@
         int totalTaskCount = 0;
         for (int i = 0; i < viewCount; i++) {
             RecyclerView view = mRecyclerViews.get(i);
-            view.mPrefetchRegistry.collectPrefetchPositionsFromView(view, false);
-            totalTaskCount += view.mPrefetchRegistry.mCount;
+            if (view.getWindowVisibility() == View.VISIBLE) {
+                view.mPrefetchRegistry.collectPrefetchPositionsFromView(view, false);
+                totalTaskCount += view.mPrefetchRegistry.mCount;
+            }
         }
 
         // Populate task list from prefetch data...
@@ -354,18 +356,23 @@
                 return;
             }
 
-            // Query last vsync so we can predict next one. Note that drawing time not yet
+            // Query most recent vsync so we can predict next one. Note that drawing time not yet
             // valid in animation/input callbacks, so query it here to be safe.
-            long lastFrameVsyncNs = TimeUnit.MILLISECONDS.toNanos(
-                    mRecyclerViews.get(mRecyclerViews.size() - 1).getDrawingTime());
-            if (lastFrameVsyncNs == 0) {
-                // abort - couldn't get last vsync for estimating next
+            final int size = mRecyclerViews.size();
+            long latestFrameVsyncMs = 0;
+            for (int i = 0; i < size; i++) {
+                RecyclerView view = mRecyclerViews.get(i);
+                if (view.getWindowVisibility() == View.VISIBLE) {
+                    latestFrameVsyncMs = Math.max(view.getDrawingTime(), latestFrameVsyncMs);
+                }
+            }
+
+            if (latestFrameVsyncMs == 0) {
+                // abort - either no views visible, or couldn't get last vsync for estimating next
                 return;
             }
 
-            // TODO: consider rebasing deadline if frame was already dropped due to long UI work.
-            // Next frame will still wait for VSYNC, so we can still use the gap if it exists.
-            long nextFrameNs = lastFrameVsyncNs + mFrameIntervalNs;
+            long nextFrameNs = TimeUnit.MILLISECONDS.toNanos(latestFrameVsyncMs) + mFrameIntervalNs;
 
             prefetch(nextFrameNs);
 
diff --git a/v7/recyclerview/tests/src/android/support/v7/widget/MultiRecyclerViewPrefetchTest.java b/v7/recyclerview/tests/src/android/support/v7/widget/MultiRecyclerViewPrefetchTest.java
index 1147c52..3eba432 100644
--- a/v7/recyclerview/tests/src/android/support/v7/widget/MultiRecyclerViewPrefetchTest.java
+++ b/v7/recyclerview/tests/src/android/support/v7/widget/MultiRecyclerViewPrefetchTest.java
@@ -76,6 +76,12 @@
             long getNanoTime() {
                 return mMockNanoTime;
             }
+
+            @Override
+            public int getWindowVisibility() {
+                // Pretend to be visible to avoid being filtered out
+                return View.VISIBLE;
+            }
         };
 
         // shared stats + enable clearing of pool
diff --git a/v7/recyclerview/tests/src/android/support/v7/widget/RecyclerViewCacheTest.java b/v7/recyclerview/tests/src/android/support/v7/widget/RecyclerViewCacheTest.java
index 7ab616f..2ef2783 100644
--- a/v7/recyclerview/tests/src/android/support/v7/widget/RecyclerViewCacheTest.java
+++ b/v7/recyclerview/tests/src/android/support/v7/widget/RecyclerViewCacheTest.java
@@ -78,6 +78,12 @@
         long getNanoTime() {
             return mMockNanoTime;
         }
+
+        @Override
+        public int getWindowVisibility() {
+            // Pretend to be visible to avoid being filtered out
+            return View.VISIBLE;
+        }
     }
 
     @Before
@@ -737,7 +743,13 @@
         public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
             mRecyclerView.registerTimePassingMs(5);
 
-            RecyclerView rv = new RecyclerView(parent.getContext());
+            RecyclerView rv = new RecyclerView(parent.getContext()) {
+                @Override
+                public int getWindowVisibility() {
+                    // Pretend to be visible to avoid being filtered out
+                    return View.VISIBLE;
+                }
+            };
             rv.setLayoutManager(new LinearLayoutManager(parent.getContext(),
                     LinearLayoutManager.HORIZONTAL, mReverseInner));
             rv.setRecycledViewPool(mSharedPool);