Merge "MediaBrowserCompat: Make Patination API work on API 21-23" into nyc-dev am: ba5640841e am: 1e63893ad2
am: fbf0068f96

* commit 'fbf0068f960ac1a417eda6b556c8f12ebf94e0a4':

Change-Id: I35b71e06e6b20e18ec4e56cec7e9b09b92e7abf8
diff --git a/.gitignore b/.gitignore
index a72b3dc..e1876f9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,4 @@
 **/gen
 *.iml
 **/out
+buildSrc/
diff --git a/buildSrc/studioCompat.gradle b/buildSrc/studioCompat.gradle
index 140b438..73f406b 100644
--- a/buildSrc/studioCompat.gradle
+++ b/buildSrc/studioCompat.gradle
@@ -28,7 +28,7 @@
 def studioCompat = [
     enableApiModules : hasProperty('android.injected.invoked.from.ide'),
     modules : [
-        v4 : [
+        compat : [
             apiTargets : [
                 new ApiModule("donut",4),
                 new ApiModule("eclair",5),
@@ -44,15 +44,35 @@
                 new ApiModule("jellybean-mr1",17),
                 new ApiModule("jellybean-mr2",18),
                 new ApiModule("kitkat",19),
-                new ApiModule("api20",20),
                 new ApiModule("api21",21),
                 new ApiModule("api22",22),
                 new ApiModule("api23",23),
                 new ApiModule("api24", ApiModule.CURRENT)
             ],
             dependencies : [":support-annotations"],
+            folder : "compat",
+            moduleName : "support-compat"
+        ],
+        core : [
+            apiTargets : [
+                new ApiModule("donut",4),
+                new ApiModule("eclair",5),
+                new ApiModule("froyo",8),
+                new ApiModule("gingerbread",9),
+                new ApiModule("honeycomb",11),
+                new ApiModule("ics",14),
+                new ApiModule("jellybean", 16),
+                new ApiModule("jellybean-mr2",18),
+                new ApiModule("kitkat",19),
+                new ApiModule("api20",20),
+                new ApiModule("api21",21),
+                new ApiModule("api22",22),
+                new ApiModule("api23",23),
+                new ApiModule("api24", ApiModule.CURRENT)
+            ],
+            dependencies : [":support-compat"],
             folder : "v4",
-            moduleName : "support-v4"
+            moduleName : "support-core"
         ],
         v13 : [
             apiTargets : [
@@ -154,4 +174,4 @@
     }
 }
 gradle.ext.studioCompat = studioCompat
-gradle.ext.getApiModule = this.&getApiModule
\ No newline at end of file
+gradle.ext.getApiModule = this.&getApiModule
diff --git a/compat/Android.mk b/compat/Android.mk
new file mode 100644
index 0000000..2da515c
--- /dev/null
+++ b/compat/Android.mk
@@ -0,0 +1,287 @@
+# Copyright (C) 2011 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.
+
+LOCAL_PATH := $(call my-dir)
+
+# A helper sub-library that makes direct use of Donut APIs.
+include $(CLEAR_VARS)
+LOCAL_MODULE := android-support-compat-donut
+LOCAL_SDK_VERSION := 4
+LOCAL_SRC_FILES := $(call all-java-files-under, donut)
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-annotations
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+support_module_src_files := $(LOCAL_SRC_FILES)
+support_module_java_libraries := android-support-annotations
+
+# -----------------------------------------------------------------------
+
+# A helper sub-library that makes direct use of Eclair APIs.
+include $(CLEAR_VARS)
+LOCAL_MODULE := android-support-compat-eclair
+LOCAL_SDK_VERSION := 5
+LOCAL_SRC_FILES := $(call all-java-files-under, eclair)
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-compat-donut
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+support_module_src_files += $(LOCAL_SRC_FILES)
+
+# -----------------------------------------------------------------------
+
+# A helper sub-library that makes direct use of Eclair MR1 APIs.
+include $(CLEAR_VARS)
+LOCAL_MODULE := android-support-compat-eclair-mr1
+LOCAL_SDK_VERSION := 7
+LOCAL_SRC_FILES := $(call all-java-files-under, eclair-mr1)
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-compat-eclair
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+support_module_src_files += $(LOCAL_SRC_FILES)
+
+# -----------------------------------------------------------------------
+
+# A helper sub-library that makes direct use of Froyo APIs.
+include $(CLEAR_VARS)
+LOCAL_MODULE := android-support-compat-froyo
+LOCAL_SDK_VERSION := 8
+LOCAL_SRC_FILES := $(call all-java-files-under, froyo)
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-compat-eclair-mr1
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+support_module_src_files += $(LOCAL_SRC_FILES)
+
+# -----------------------------------------------------------------------
+
+# A helper sub-library that makes direct use of Gingerbread APIs.
+include $(CLEAR_VARS)
+LOCAL_MODULE := android-support-compat-gingerbread
+LOCAL_SDK_VERSION := 9
+LOCAL_SRC_FILES := $(call all-java-files-under, gingerbread)
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-compat-froyo
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+support_module_src_files += $(LOCAL_SRC_FILES)
+
+# -----------------------------------------------------------------------
+
+# A helper sub-library that makes direct use of Honeycomb APIs.
+include $(CLEAR_VARS)
+LOCAL_MODULE := android-support-compat-honeycomb
+LOCAL_SDK_VERSION := 11
+LOCAL_SRC_FILES := $(call all-java-files-under, honeycomb)
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-compat-gingerbread
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+support_module_src_files += $(LOCAL_SRC_FILES)
+
+# -----------------------------------------------------------------------
+
+# A helper sub-library that makes direct use of Honeycomb MR1 APIs.
+include $(CLEAR_VARS)
+LOCAL_MODULE := android-support-compat-honeycomb-mr1
+LOCAL_SDK_VERSION := 12
+LOCAL_SRC_FILES := $(call all-java-files-under, honeycomb_mr1)
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-compat-honeycomb
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+support_module_src_files += $(LOCAL_SRC_FILES)
+
+# -----------------------------------------------------------------------
+
+# A helper sub-library that makes direct use of Honeycomb MR2 APIs.
+include $(CLEAR_VARS)
+LOCAL_MODULE := android-support-compat-honeycomb-mr2
+LOCAL_SDK_VERSION := 13
+LOCAL_SRC_FILES := $(call all-java-files-under, honeycomb_mr2)
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-compat-honeycomb-mr1
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+support_module_src_files += $(LOCAL_SRC_FILES)
+
+# -----------------------------------------------------------------------
+
+# A helper sub-library that makes direct use of Ice Cream Sandwich APIs.
+include $(CLEAR_VARS)
+LOCAL_MODULE := android-support-compat-ics
+LOCAL_SDK_VERSION := 14
+LOCAL_SRC_FILES := $(call all-java-files-under, ics)
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-compat-honeycomb-mr2
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+support_module_src_files += $(LOCAL_SRC_FILES)
+
+# -----------------------------------------------------------------------
+
+# A helper sub-library that makes direct use of Ice Cream Sandwich MR1 APIs.
+include $(CLEAR_VARS)
+LOCAL_MODULE := android-support-compat-ics-mr1
+LOCAL_SDK_VERSION := 15
+LOCAL_SRC_FILES := $(call all-java-files-under, ics-mr1)
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-compat-ics
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+support_module_src_files += $(LOCAL_SRC_FILES)
+
+# -----------------------------------------------------------------------
+
+# A helper sub-library that makes direct use of JellyBean APIs.
+include $(CLEAR_VARS)
+LOCAL_MODULE := android-support-compat-jellybean
+LOCAL_SDK_VERSION := 16
+LOCAL_SRC_FILES := $(call all-java-files-under, jellybean)
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-compat-ics-mr1
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+support_module_src_files += $(LOCAL_SRC_FILES)
+
+# -----------------------------------------------------------------------
+
+# A helper sub-library that makes direct use of JellyBean MR1 APIs.
+include $(CLEAR_VARS)
+LOCAL_MODULE := android-support-compat-jellybean-mr1
+LOCAL_SDK_VERSION := 17
+LOCAL_SRC_FILES := $(call all-java-files-under, jellybean-mr1)
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-compat-jellybean
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+support_module_src_files += $(LOCAL_SRC_FILES)
+
+# -----------------------------------------------------------------------
+
+# A helper sub-library that makes direct use of JellyBean MR2 APIs.
+include $(CLEAR_VARS)
+LOCAL_MODULE := android-support-compat-jellybean-mr2
+LOCAL_SDK_VERSION := 18
+LOCAL_SRC_FILES := $(call all-java-files-under, jellybean-mr2)
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-compat-jellybean-mr1
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+support_module_src_files += $(LOCAL_SRC_FILES)
+
+# -----------------------------------------------------------------------
+
+# A helper sub-library that makes direct use of KitKat APIs.
+include $(CLEAR_VARS)
+LOCAL_MODULE := android-support-compat-kitkat
+LOCAL_SDK_VERSION := 19
+LOCAL_SRC_FILES := $(call all-java-files-under, kitkat)
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-compat-jellybean-mr2
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+support_module_src_files += $(LOCAL_SRC_FILES)
+
+# -----------------------------------------------------------------------
+
+# A helper sub-library that makes direct use of V20 APIs.
+include $(CLEAR_VARS)
+LOCAL_MODULE := android-support-compat-api20
+LOCAL_SDK_VERSION := 20
+LOCAL_SRC_FILES := $(call all-java-files-under, api20)
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-compat-kitkat
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+support_module_src_files += $(LOCAL_SRC_FILES)
+
+# -----------------------------------------------------------------------
+
+# A helper sub-library that makes direct use of Lollipop APIs.
+include $(CLEAR_VARS)
+LOCAL_MODULE := android-support-compat-api21
+LOCAL_SDK_VERSION := 21
+LOCAL_SRC_FILES := $(call all-java-files-under, api21)
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-compat-api20
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+support_module_src_files += $(LOCAL_SRC_FILES)
+
+# -----------------------------------------------------------------------
+
+# A helper sub-library that makes direct use of V22 APIs.
+include $(CLEAR_VARS)
+LOCAL_MODULE := android-support-compat-api22
+LOCAL_SDK_VERSION := 22
+LOCAL_SRC_FILES := $(call all-java-files-under, api22)
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-compat-api21
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+support_module_src_files += $(LOCAL_SRC_FILES)
+
+# -----------------------------------------------------------------------
+
+# A helper sub-library that makes direct use of V23 APIs.
+include $(CLEAR_VARS)
+LOCAL_MODULE := android-support-compat-api23
+LOCAL_SDK_VERSION := 23
+LOCAL_SRC_FILES := $(call all-java-files-under, api23)
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-compat-api22
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+support_module_src_files += $(LOCAL_SRC_FILES)
+
+# -----------------------------------------------------------------------
+
+# A helper sub-library that makes direct use of V24 APIs.
+include $(CLEAR_VARS)
+LOCAL_MODULE := android-support-compat-api24
+LOCAL_SDK_VERSION := $(SUPPORT_CURRENT_SDK_VERSION)
+LOCAL_SRC_FILES := $(call all-java-files-under, api24)
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-compat-api23
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+support_module_src_files += $(LOCAL_SRC_FILES)
+
+# -----------------------------------------------------------------------
+
+# Here is the final static library that apps can link against.
+include $(CLEAR_VARS)
+LOCAL_USE_AAPT2 := true
+LOCAL_MODULE := android-support-compat
+LOCAL_SDK_VERSION := 4
+LOCAL_AIDL_INCLUDES := frameworks/support/v4/java
+LOCAL_SRC_FILES := $(call all-java-files-under, java) \
+    $(call all-Iaidl-files-under, java)
+LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
+LOCAL_STATIC_JAVA_LIBRARIES += android-support-compat-api24
+LOCAL_JAR_EXCLUDE_FILES := none
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+support_module_src_files += $(LOCAL_SRC_FILES)
+support_module_aidl_includes := $(LOCAL_AIDL_INCLUDES)
+
+# API Check
+# ---------------------------------------------
+support_module := $(LOCAL_MODULE)
+support_module_api_dir := $(LOCAL_PATH)/api
+support_module_java_packages := android.support.v4.*
+include $(SUPPORT_API_CHECK)
diff --git a/compat/AndroidManifest.xml b/compat/AndroidManifest.xml
new file mode 100644
index 0000000..b2bd5bb
--- /dev/null
+++ b/compat/AndroidManifest.xml
@@ -0,0 +1,21 @@
+<?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.
+-->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          xmlns:tools="http://schemas.android.com/tools"
+          package="android.support.compat">
+    <uses-sdk android:minSdkVersion="9" tools:overrideLibrary="android.support.compat"/>
+    <application />
+</manifest>
diff --git a/compat/api/current.txt b/compat/api/current.txt
new file mode 100644
index 0000000..cd5dc10
--- /dev/null
+++ b/compat/api/current.txt
@@ -0,0 +1,1604 @@
+package android.support.v4.accessibilityservice {
+
+  public final class AccessibilityServiceInfoCompat {
+    method public static java.lang.String capabilityToString(int);
+    method public static java.lang.String feedbackTypeToString(int);
+    method public static java.lang.String flagToString(int);
+    method public static boolean getCanRetrieveWindowContent(android.accessibilityservice.AccessibilityServiceInfo);
+    method public static int getCapabilities(android.accessibilityservice.AccessibilityServiceInfo);
+    method public static java.lang.String getDescription(android.accessibilityservice.AccessibilityServiceInfo);
+    method public static java.lang.String getId(android.accessibilityservice.AccessibilityServiceInfo);
+    method public static android.content.pm.ResolveInfo getResolveInfo(android.accessibilityservice.AccessibilityServiceInfo);
+    method public static java.lang.String getSettingsActivityName(android.accessibilityservice.AccessibilityServiceInfo);
+    field public static final int CAPABILITY_CAN_FILTER_KEY_EVENTS = 8; // 0x8
+    field public static final int CAPABILITY_CAN_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 4; // 0x4
+    field public static final int CAPABILITY_CAN_REQUEST_TOUCH_EXPLORATION = 2; // 0x2
+    field public static final int CAPABILITY_CAN_RETRIEVE_WINDOW_CONTENT = 1; // 0x1
+    field public static final int DEFAULT = 1; // 0x1
+    field public static final int FEEDBACK_ALL_MASK = -1; // 0xffffffff
+    field public static final int FEEDBACK_BRAILLE = 32; // 0x20
+    field public static final int FLAG_INCLUDE_NOT_IMPORTANT_VIEWS = 2; // 0x2
+    field public static final int FLAG_REPORT_VIEW_IDS = 16; // 0x10
+    field public static final int FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 8; // 0x8
+    field public static final int FLAG_REQUEST_FILTER_KEY_EVENTS = 32; // 0x20
+    field public static final int FLAG_REQUEST_TOUCH_EXPLORATION_MODE = 4; // 0x4
+  }
+
+}
+
+package android.support.v4.app {
+
+  public class ActivityCompat extends android.support.v4.content.ContextCompat {
+    ctor public ActivityCompat();
+    method public static void finishAffinity(android.app.Activity);
+    method public static void finishAfterTransition(android.app.Activity);
+    method public android.net.Uri getReferrer(android.app.Activity);
+    method public static boolean invalidateOptionsMenu(android.app.Activity);
+    method public static void postponeEnterTransition(android.app.Activity);
+    method public static void requestPermissions(android.app.Activity, java.lang.String[], int);
+    method public static void setEnterSharedElementCallback(android.app.Activity, android.support.v4.app.SharedElementCallback);
+    method public static void setExitSharedElementCallback(android.app.Activity, android.support.v4.app.SharedElementCallback);
+    method public static boolean shouldShowRequestPermissionRationale(android.app.Activity, java.lang.String);
+    method public static void startActivity(android.app.Activity, android.content.Intent, android.os.Bundle);
+    method public static void startActivityForResult(android.app.Activity, android.content.Intent, int, android.os.Bundle);
+    method public static void startIntentSenderForResult(android.app.Activity, android.content.IntentSender, int, android.content.Intent, int, int, int, android.os.Bundle) throws android.content.IntentSender.SendIntentException;
+    method public static void startPostponedEnterTransition(android.app.Activity);
+  }
+
+  public static abstract interface ActivityCompat.OnRequestPermissionsResultCallback {
+    method public abstract void onRequestPermissionsResult(int, java.lang.String[], int[]);
+  }
+
+  public final class ActivityManagerCompat {
+    method public static boolean isLowRamDevice(android.app.ActivityManager);
+  }
+
+  public class ActivityOptionsCompat {
+    ctor protected ActivityOptionsCompat();
+    method public static android.support.v4.app.ActivityOptionsCompat makeCustomAnimation(android.content.Context, int, int);
+    method public static android.support.v4.app.ActivityOptionsCompat makeScaleUpAnimation(android.view.View, int, int, int, int);
+    method public static android.support.v4.app.ActivityOptionsCompat makeSceneTransitionAnimation(android.app.Activity, android.view.View, java.lang.String);
+    method public static android.support.v4.app.ActivityOptionsCompat makeSceneTransitionAnimation(android.app.Activity, android.support.v4.util.Pair<android.view.View, java.lang.String>...);
+    method public static android.support.v4.app.ActivityOptionsCompat makeThumbnailScaleUpAnimation(android.view.View, android.graphics.Bitmap, int, int);
+    method public android.os.Bundle toBundle();
+    method public void update(android.support.v4.app.ActivityOptionsCompat);
+  }
+
+  public final class AppOpsManagerCompat {
+    method public static int noteOp(android.content.Context, java.lang.String, int, java.lang.String);
+    method public static int noteProxyOp(android.content.Context, java.lang.String, java.lang.String);
+    method public static java.lang.String permissionToOp(java.lang.String);
+    field public static final int MODE_ALLOWED = 0; // 0x0
+    field public static final int MODE_DEFAULT = 3; // 0x3
+    field public static final int MODE_IGNORED = 1; // 0x1
+  }
+
+  public final class BundleCompat {
+    method public static android.os.IBinder getBinder(android.os.Bundle, java.lang.String);
+    method public static void putBinder(android.os.Bundle, java.lang.String, android.os.IBinder);
+  }
+
+  public final class ServiceCompat {
+    field public static final int START_STICKY = 1; // 0x1
+  }
+
+  public final class ShareCompat {
+    method public static void configureMenuItem(android.view.MenuItem, android.support.v4.app.ShareCompat.IntentBuilder);
+    method public static void configureMenuItem(android.view.Menu, int, android.support.v4.app.ShareCompat.IntentBuilder);
+    method public static android.content.ComponentName getCallingActivity(android.app.Activity);
+    method public static java.lang.String getCallingPackage(android.app.Activity);
+    field public static final java.lang.String EXTRA_CALLING_ACTIVITY = "android.support.v4.app.EXTRA_CALLING_ACTIVITY";
+    field public static final java.lang.String EXTRA_CALLING_PACKAGE = "android.support.v4.app.EXTRA_CALLING_PACKAGE";
+  }
+
+  public static class ShareCompat.IntentBuilder {
+    method public android.support.v4.app.ShareCompat.IntentBuilder addEmailBcc(java.lang.String);
+    method public android.support.v4.app.ShareCompat.IntentBuilder addEmailBcc(java.lang.String[]);
+    method public android.support.v4.app.ShareCompat.IntentBuilder addEmailCc(java.lang.String);
+    method public android.support.v4.app.ShareCompat.IntentBuilder addEmailCc(java.lang.String[]);
+    method public android.support.v4.app.ShareCompat.IntentBuilder addEmailTo(java.lang.String);
+    method public android.support.v4.app.ShareCompat.IntentBuilder addEmailTo(java.lang.String[]);
+    method public android.support.v4.app.ShareCompat.IntentBuilder addStream(android.net.Uri);
+    method public android.content.Intent createChooserIntent();
+    method public static android.support.v4.app.ShareCompat.IntentBuilder from(android.app.Activity);
+    method public android.content.Intent getIntent();
+    method public android.support.v4.app.ShareCompat.IntentBuilder setChooserTitle(java.lang.CharSequence);
+    method public android.support.v4.app.ShareCompat.IntentBuilder setChooserTitle(int);
+    method public android.support.v4.app.ShareCompat.IntentBuilder setEmailBcc(java.lang.String[]);
+    method public android.support.v4.app.ShareCompat.IntentBuilder setEmailCc(java.lang.String[]);
+    method public android.support.v4.app.ShareCompat.IntentBuilder setEmailTo(java.lang.String[]);
+    method public android.support.v4.app.ShareCompat.IntentBuilder setHtmlText(java.lang.String);
+    method public android.support.v4.app.ShareCompat.IntentBuilder setStream(android.net.Uri);
+    method public android.support.v4.app.ShareCompat.IntentBuilder setSubject(java.lang.String);
+    method public android.support.v4.app.ShareCompat.IntentBuilder setText(java.lang.CharSequence);
+    method public android.support.v4.app.ShareCompat.IntentBuilder setType(java.lang.String);
+    method public void startChooser();
+  }
+
+  public static class ShareCompat.IntentReader {
+    method public static android.support.v4.app.ShareCompat.IntentReader from(android.app.Activity);
+    method public android.content.ComponentName getCallingActivity();
+    method public android.graphics.drawable.Drawable getCallingActivityIcon();
+    method public android.graphics.drawable.Drawable getCallingApplicationIcon();
+    method public java.lang.CharSequence getCallingApplicationLabel();
+    method public java.lang.String getCallingPackage();
+    method public java.lang.String[] getEmailBcc();
+    method public java.lang.String[] getEmailCc();
+    method public java.lang.String[] getEmailTo();
+    method public java.lang.String getHtmlText();
+    method public android.net.Uri getStream();
+    method public android.net.Uri getStream(int);
+    method public int getStreamCount();
+    method public java.lang.String getSubject();
+    method public java.lang.CharSequence getText();
+    method public java.lang.String getType();
+    method public boolean isMultipleShare();
+    method public boolean isShareIntent();
+    method public boolean isSingleShare();
+  }
+
+  public abstract class SharedElementCallback {
+    ctor public SharedElementCallback();
+    method public android.os.Parcelable onCaptureSharedElementSnapshot(android.view.View, android.graphics.Matrix, android.graphics.RectF);
+    method public android.view.View onCreateSnapshotView(android.content.Context, android.os.Parcelable);
+    method public void onMapSharedElements(java.util.List<java.lang.String>, java.util.Map<java.lang.String, android.view.View>);
+    method public void onRejectSharedElements(java.util.List<android.view.View>);
+    method public void onSharedElementEnd(java.util.List<java.lang.String>, java.util.List<android.view.View>, java.util.List<android.view.View>);
+    method public void onSharedElementStart(java.util.List<java.lang.String>, java.util.List<android.view.View>, java.util.List<android.view.View>);
+  }
+
+}
+
+package android.support.v4.content {
+
+  public final class ContentResolverCompat {
+    method public static android.database.Cursor query(android.content.ContentResolver, android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, android.support.v4.os.CancellationSignal);
+  }
+
+  public class ContextCompat {
+    ctor public ContextCompat();
+    method public static int checkSelfPermission(android.content.Context, java.lang.String);
+    method public static android.content.Context createDeviceProtectedStorageContext(android.content.Context);
+    method public static java.io.File getCodeCacheDir(android.content.Context);
+    method public static final int getColor(android.content.Context, int);
+    method public static final android.content.res.ColorStateList getColorStateList(android.content.Context, int);
+    method public static java.io.File getDataDir(android.content.Context);
+    method public static final android.graphics.drawable.Drawable getDrawable(android.content.Context, int);
+    method public static java.io.File[] getExternalCacheDirs(android.content.Context);
+    method public static java.io.File[] getExternalFilesDirs(android.content.Context, java.lang.String);
+    method public static final java.io.File getNoBackupFilesDir(android.content.Context);
+    method public static java.io.File[] getObbDirs(android.content.Context);
+    method public static boolean isDeviceProtectedStorage(android.content.Context);
+    method public static boolean startActivities(android.content.Context, android.content.Intent[]);
+    method public static boolean startActivities(android.content.Context, android.content.Intent[], android.os.Bundle);
+  }
+
+  public final class IntentCompat {
+    method public static android.content.Intent makeMainActivity(android.content.ComponentName);
+    method public static android.content.Intent makeMainSelectorActivity(java.lang.String, java.lang.String);
+    method public static android.content.Intent makeRestartActivityTask(android.content.ComponentName);
+    field public static final java.lang.String ACTION_EXTERNAL_APPLICATIONS_AVAILABLE = "android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE";
+    field public static final java.lang.String ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE = "android.intent.action.EXTERNAL_APPLICATIONS_UNAVAILABLE";
+    field public static final java.lang.String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
+    field public static final java.lang.String EXTRA_CHANGED_PACKAGE_LIST = "android.intent.extra.changed_package_list";
+    field public static final java.lang.String EXTRA_CHANGED_UID_LIST = "android.intent.extra.changed_uid_list";
+    field public static final java.lang.String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
+    field public static final int FLAG_ACTIVITY_CLEAR_TASK = 32768; // 0x8000
+    field public static final int FLAG_ACTIVITY_TASK_ON_HOME = 16384; // 0x4000
+  }
+
+  public final class ParallelExecutorCompat {
+    method public static java.util.concurrent.Executor getParallelExecutor();
+  }
+
+  public final class SharedPreferencesCompat {
+  }
+
+  public static final class SharedPreferencesCompat.EditorCompat {
+    method public void apply(android.content.SharedPreferences.Editor);
+    method public static android.support.v4.content.SharedPreferencesCompat.EditorCompat getInstance();
+  }
+
+}
+
+package android.support.v4.content.pm {
+
+  public final class ActivityInfoCompat {
+    field public static final int CONFIG_UI_MODE = 512; // 0x200
+  }
+
+}
+
+package android.support.v4.content.res {
+
+  public final class ConfigurationHelper {
+    method public static int getDensityDpi(android.content.res.Resources);
+    method public static int getScreenHeightDp(android.content.res.Resources);
+    method public static int getScreenWidthDp(android.content.res.Resources);
+    method public static int getSmallestScreenWidthDp(android.content.res.Resources);
+  }
+
+  public final class ResourcesCompat {
+    method public static int getColor(android.content.res.Resources, int, android.content.res.Resources.Theme) throws android.content.res.Resources.NotFoundException;
+    method public static android.content.res.ColorStateList getColorStateList(android.content.res.Resources, int, android.content.res.Resources.Theme) throws android.content.res.Resources.NotFoundException;
+    method public static android.graphics.drawable.Drawable getDrawable(android.content.res.Resources, int, android.content.res.Resources.Theme) throws android.content.res.Resources.NotFoundException;
+    method public static android.graphics.drawable.Drawable getDrawableForDensity(android.content.res.Resources, int, int, android.content.res.Resources.Theme) throws android.content.res.Resources.NotFoundException;
+  }
+
+}
+
+package android.support.v4.database {
+
+  public final class DatabaseUtilsCompat {
+    method public static java.lang.String[] appendSelectionArgs(java.lang.String[], java.lang.String[]);
+    method public static java.lang.String concatenateWhere(java.lang.String, java.lang.String);
+  }
+
+}
+
+package android.support.v4.graphics {
+
+  public final class BitmapCompat {
+    method public static int getAllocationByteCount(android.graphics.Bitmap);
+    method public static boolean hasMipMap(android.graphics.Bitmap);
+    method public static void setHasMipMap(android.graphics.Bitmap, boolean);
+  }
+
+}
+
+package android.support.v4.graphics.drawable {
+
+  public final class DrawableCompat {
+    method public static void applyTheme(android.graphics.drawable.Drawable, android.content.res.Resources.Theme);
+    method public static boolean canApplyTheme(android.graphics.drawable.Drawable);
+    method public static int getAlpha(android.graphics.drawable.Drawable);
+    method public static android.graphics.ColorFilter getColorFilter(android.graphics.drawable.Drawable);
+    method public static int getLayoutDirection(android.graphics.drawable.Drawable);
+    method public static void inflate(android.graphics.drawable.Drawable, android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.content.res.Resources.Theme) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method public static boolean isAutoMirrored(android.graphics.drawable.Drawable);
+    method public static void jumpToCurrentState(android.graphics.drawable.Drawable);
+    method public static void setAutoMirrored(android.graphics.drawable.Drawable, boolean);
+    method public static void setHotspot(android.graphics.drawable.Drawable, float, float);
+    method public static void setHotspotBounds(android.graphics.drawable.Drawable, int, int, int, int);
+    method public static boolean setLayoutDirection(android.graphics.drawable.Drawable, int);
+    method public static void setTint(android.graphics.drawable.Drawable, int);
+    method public static void setTintList(android.graphics.drawable.Drawable, android.content.res.ColorStateList);
+    method public static void setTintMode(android.graphics.drawable.Drawable, android.graphics.PorterDuff.Mode);
+    method public static T unwrap(android.graphics.drawable.Drawable);
+    method public static android.graphics.drawable.Drawable wrap(android.graphics.drawable.Drawable);
+  }
+
+}
+
+package android.support.v4.hardware.display {
+
+  public abstract class DisplayManagerCompat {
+    method public abstract android.view.Display getDisplay(int);
+    method public abstract android.view.Display[] getDisplays();
+    method public abstract android.view.Display[] getDisplays(java.lang.String);
+    method public static android.support.v4.hardware.display.DisplayManagerCompat getInstance(android.content.Context);
+    field public static final java.lang.String DISPLAY_CATEGORY_PRESENTATION = "android.hardware.display.category.PRESENTATION";
+  }
+
+}
+
+package android.support.v4.hardware.fingerprint {
+
+  public final class FingerprintManagerCompat {
+    method public void authenticate(android.support.v4.hardware.fingerprint.FingerprintManagerCompat.CryptoObject, int, android.support.v4.os.CancellationSignal, android.support.v4.hardware.fingerprint.FingerprintManagerCompat.AuthenticationCallback, android.os.Handler);
+    method public static android.support.v4.hardware.fingerprint.FingerprintManagerCompat from(android.content.Context);
+    method public boolean hasEnrolledFingerprints();
+    method public boolean isHardwareDetected();
+  }
+
+  public static abstract class FingerprintManagerCompat.AuthenticationCallback {
+    ctor public FingerprintManagerCompat.AuthenticationCallback();
+    method public void onAuthenticationError(int, java.lang.CharSequence);
+    method public void onAuthenticationFailed();
+    method public void onAuthenticationHelp(int, java.lang.CharSequence);
+    method public void onAuthenticationSucceeded(android.support.v4.hardware.fingerprint.FingerprintManagerCompat.AuthenticationResult);
+  }
+
+  public static final class FingerprintManagerCompat.AuthenticationResult {
+    ctor public FingerprintManagerCompat.AuthenticationResult(android.support.v4.hardware.fingerprint.FingerprintManagerCompat.CryptoObject);
+    method public android.support.v4.hardware.fingerprint.FingerprintManagerCompat.CryptoObject getCryptoObject();
+  }
+
+  public static class FingerprintManagerCompat.CryptoObject {
+    ctor public FingerprintManagerCompat.CryptoObject(java.security.Signature);
+    ctor public FingerprintManagerCompat.CryptoObject(javax.crypto.Cipher);
+    ctor public FingerprintManagerCompat.CryptoObject(javax.crypto.Mac);
+    method public javax.crypto.Cipher getCipher();
+    method public javax.crypto.Mac getMac();
+    method public java.security.Signature getSignature();
+  }
+
+}
+
+package android.support.v4.net {
+
+  public final class ConnectivityManagerCompat {
+    method public static android.net.NetworkInfo getNetworkInfoFromBroadcast(android.net.ConnectivityManager, android.content.Intent);
+    method public static boolean isActiveNetworkMetered(android.net.ConnectivityManager);
+  }
+
+  public final class TrafficStatsCompat {
+    method public static void clearThreadStatsTag();
+    method public static int getThreadStatsTag();
+    method public static void incrementOperationCount(int);
+    method public static void incrementOperationCount(int, int);
+    method public static void setThreadStatsTag(int);
+    method public static void tagDatagramSocket(java.net.DatagramSocket) throws java.net.SocketException;
+    method public static void tagSocket(java.net.Socket) throws java.net.SocketException;
+    method public static void untagDatagramSocket(java.net.DatagramSocket) throws java.net.SocketException;
+    method public static void untagSocket(java.net.Socket) throws java.net.SocketException;
+  }
+
+}
+
+package android.support.v4.os {
+
+  public final class AsyncTaskCompat {
+    method public static android.os.AsyncTask<Params, Progress, Result> executeParallel(android.os.AsyncTask<Params, Progress, Result>, Params...);
+  }
+
+  public class BuildCompat {
+    method public static boolean isAtLeastN();
+  }
+
+  public final class CancellationSignal {
+    ctor public CancellationSignal();
+    method public void cancel();
+    method public java.lang.Object getCancellationSignalObject();
+    method public boolean isCanceled();
+    method public void setOnCancelListener(android.support.v4.os.CancellationSignal.OnCancelListener);
+    method public void throwIfCanceled();
+  }
+
+  public static abstract interface CancellationSignal.OnCancelListener {
+    method public abstract void onCancel();
+  }
+
+  public final class EnvironmentCompat {
+    method public static java.lang.String getStorageState(java.io.File);
+    field public static final java.lang.String MEDIA_UNKNOWN = "unknown";
+  }
+
+  public class OperationCanceledException extends java.lang.RuntimeException {
+    ctor public OperationCanceledException();
+    ctor public OperationCanceledException(java.lang.String);
+  }
+
+  public final class ParcelableCompat {
+    method public static android.os.Parcelable.Creator<T> newCreator(android.support.v4.os.ParcelableCompatCreatorCallbacks<T>);
+  }
+
+  public abstract interface ParcelableCompatCreatorCallbacks {
+    method public abstract T createFromParcel(android.os.Parcel, java.lang.ClassLoader);
+    method public abstract T[] newArray(int);
+  }
+
+  public final class TraceCompat {
+    method public static void beginSection(java.lang.String);
+    method public static void endSection();
+  }
+
+  public class UserManagerCompat {
+    method public static boolean isUserUnlocked(android.content.Context);
+  }
+
+}
+
+package android.support.v4.text {
+
+  public final class ICUCompat {
+    method public static java.lang.String maximizeAndGetScript(java.util.Locale);
+  }
+
+  public abstract interface TextDirectionHeuristicCompat {
+    method public abstract boolean isRtl(char[], int, int);
+    method public abstract boolean isRtl(java.lang.CharSequence, int, int);
+  }
+
+  public final class TextDirectionHeuristicsCompat {
+    field public static final android.support.v4.text.TextDirectionHeuristicCompat ANYRTL_LTR;
+    field public static final android.support.v4.text.TextDirectionHeuristicCompat FIRSTSTRONG_LTR;
+    field public static final android.support.v4.text.TextDirectionHeuristicCompat FIRSTSTRONG_RTL;
+    field public static final android.support.v4.text.TextDirectionHeuristicCompat LOCALE;
+    field public static final android.support.v4.text.TextDirectionHeuristicCompat LTR;
+    field public static final android.support.v4.text.TextDirectionHeuristicCompat RTL;
+  }
+
+  public final class TextUtilsCompat {
+    method public static int getLayoutDirectionFromLocale(java.util.Locale);
+    method public static java.lang.String htmlEncode(java.lang.String);
+    field public static final java.util.Locale ROOT;
+  }
+
+}
+
+package android.support.v4.util {
+
+  public class ArrayMap extends android.support.v4.util.SimpleArrayMap implements java.util.Map {
+    ctor public ArrayMap();
+    ctor public ArrayMap(int);
+    ctor public ArrayMap(android.support.v4.util.SimpleArrayMap);
+    method public boolean containsAll(java.util.Collection<?>);
+    method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
+    method public java.util.Set<K> keySet();
+    method public void putAll(java.util.Map<? extends K, ? extends V>);
+    method public boolean removeAll(java.util.Collection<?>);
+    method public boolean retainAll(java.util.Collection<?>);
+    method public java.util.Collection<V> values();
+  }
+
+  public class AtomicFile {
+    ctor public AtomicFile(java.io.File);
+    method public void delete();
+    method public void failWrite(java.io.FileOutputStream);
+    method public void finishWrite(java.io.FileOutputStream);
+    method public java.io.File getBaseFile();
+    method public java.io.FileInputStream openRead() throws java.io.FileNotFoundException;
+    method public byte[] readFully() throws java.io.IOException;
+    method public java.io.FileOutputStream startWrite() throws java.io.IOException;
+  }
+
+  public final class CircularArray {
+    ctor public CircularArray();
+    ctor public CircularArray(int);
+    method public void addFirst(E);
+    method public void addLast(E);
+    method public void clear();
+    method public E get(int);
+    method public E getFirst();
+    method public E getLast();
+    method public boolean isEmpty();
+    method public E popFirst();
+    method public E popLast();
+    method public void removeFromEnd(int);
+    method public void removeFromStart(int);
+    method public int size();
+  }
+
+  public final class CircularIntArray {
+    ctor public CircularIntArray();
+    ctor public CircularIntArray(int);
+    method public void addFirst(int);
+    method public void addLast(int);
+    method public void clear();
+    method public int get(int);
+    method public int getFirst();
+    method public int getLast();
+    method public boolean isEmpty();
+    method public int popFirst();
+    method public int popLast();
+    method public void removeFromEnd(int);
+    method public void removeFromStart(int);
+    method public int size();
+  }
+
+  public class LongSparseArray {
+    ctor public LongSparseArray();
+    ctor public LongSparseArray(int);
+    method public void append(long, E);
+    method public void clear();
+    method public android.support.v4.util.LongSparseArray<E> clone();
+    method public void delete(long);
+    method public E get(long);
+    method public E get(long, E);
+    method public int indexOfKey(long);
+    method public int indexOfValue(E);
+    method public long keyAt(int);
+    method public void put(long, E);
+    method public void remove(long);
+    method public void removeAt(int);
+    method public void setValueAt(int, E);
+    method public int size();
+    method public E valueAt(int);
+  }
+
+  public class LruCache {
+    ctor public LruCache(int);
+    method protected V create(K);
+    method public final synchronized int createCount();
+    method protected void entryRemoved(boolean, K, V, V);
+    method public final void evictAll();
+    method public final synchronized int evictionCount();
+    method public final V get(K);
+    method public final synchronized int hitCount();
+    method public final synchronized int maxSize();
+    method public final synchronized int missCount();
+    method public final V put(K, V);
+    method public final synchronized int putCount();
+    method public final V remove(K);
+    method public void resize(int);
+    method public final synchronized int size();
+    method protected int sizeOf(K, V);
+    method public final synchronized java.util.Map<K, V> snapshot();
+    method public final synchronized java.lang.String toString();
+    method public void trimToSize(int);
+  }
+
+  public class Pair {
+    ctor public Pair(F, S);
+    method public static android.support.v4.util.Pair<A, B> create(A, B);
+    field public final F first;
+    field public final S second;
+  }
+
+  public final class Pools {
+  }
+
+  public static abstract interface Pools.Pool {
+    method public abstract T acquire();
+    method public abstract boolean release(T);
+  }
+
+  public static class Pools.SimplePool implements android.support.v4.util.Pools.Pool {
+    ctor public Pools.SimplePool(int);
+    method public T acquire();
+    method public boolean release(T);
+  }
+
+  public static class Pools.SynchronizedPool extends android.support.v4.util.Pools.SimplePool {
+    ctor public Pools.SynchronizedPool(int);
+  }
+
+  public class SimpleArrayMap {
+    ctor public SimpleArrayMap();
+    ctor public SimpleArrayMap(int);
+    ctor public SimpleArrayMap(android.support.v4.util.SimpleArrayMap);
+    method public void clear();
+    method public boolean containsKey(java.lang.Object);
+    method public boolean containsValue(java.lang.Object);
+    method public void ensureCapacity(int);
+    method public V get(java.lang.Object);
+    method public int indexOfKey(java.lang.Object);
+    method public boolean isEmpty();
+    method public K keyAt(int);
+    method public V put(K, V);
+    method public void putAll(android.support.v4.util.SimpleArrayMap<? extends K, ? extends V>);
+    method public V remove(java.lang.Object);
+    method public V removeAt(int);
+    method public V setValueAt(int, V);
+    method public int size();
+    method public V valueAt(int);
+  }
+
+  public class SparseArrayCompat {
+    ctor public SparseArrayCompat();
+    ctor public SparseArrayCompat(int);
+    method public void append(int, E);
+    method public void clear();
+    method public android.support.v4.util.SparseArrayCompat<E> clone();
+    method public void delete(int);
+    method public E get(int);
+    method public E get(int, E);
+    method public int indexOfKey(int);
+    method public int indexOfValue(E);
+    method public int keyAt(int);
+    method public void put(int, E);
+    method public void remove(int);
+    method public void removeAt(int);
+    method public void removeAtRange(int, int);
+    method public void setValueAt(int, E);
+    method public int size();
+    method public E valueAt(int);
+  }
+
+}
+
+package android.support.v4.view {
+
+  public class AccessibilityDelegateCompat {
+    ctor public AccessibilityDelegateCompat();
+    method public boolean dispatchPopulateAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
+    method public android.support.v4.view.accessibility.AccessibilityNodeProviderCompat getAccessibilityNodeProvider(android.view.View);
+    method public void onInitializeAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
+    method public void onInitializeAccessibilityNodeInfo(android.view.View, android.support.v4.view.accessibility.AccessibilityNodeInfoCompat);
+    method public void onPopulateAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
+    method public boolean onRequestSendAccessibilityEvent(android.view.ViewGroup, android.view.View, android.view.accessibility.AccessibilityEvent);
+    method public boolean performAccessibilityAction(android.view.View, int, android.os.Bundle);
+    method public void sendAccessibilityEvent(android.view.View, int);
+    method public void sendAccessibilityEventUnchecked(android.view.View, android.view.accessibility.AccessibilityEvent);
+  }
+
+  public abstract class ActionProvider {
+    ctor public ActionProvider(android.content.Context);
+    method public android.content.Context getContext();
+    method public boolean hasSubMenu();
+    method public boolean isVisible();
+    method public abstract android.view.View onCreateActionView();
+    method public android.view.View onCreateActionView(android.view.MenuItem);
+    method public boolean onPerformDefaultAction();
+    method public void onPrepareSubMenu(android.view.SubMenu);
+    method public boolean overridesItemVisibility();
+    method public void refreshVisibility();
+    method public void setVisibilityListener(android.support.v4.view.ActionProvider.VisibilityListener);
+  }
+
+  public static abstract interface ActionProvider.VisibilityListener {
+    method public abstract void onActionProviderVisibilityChanged(boolean);
+  }
+
+  public final class GestureDetectorCompat {
+    ctor public GestureDetectorCompat(android.content.Context, android.view.GestureDetector.OnGestureListener);
+    ctor public GestureDetectorCompat(android.content.Context, android.view.GestureDetector.OnGestureListener, android.os.Handler);
+    method public boolean isLongpressEnabled();
+    method public boolean onTouchEvent(android.view.MotionEvent);
+    method public void setIsLongpressEnabled(boolean);
+    method public void setOnDoubleTapListener(android.view.GestureDetector.OnDoubleTapListener);
+  }
+
+  public final class GravityCompat {
+    method public static void apply(int, int, int, android.graphics.Rect, android.graphics.Rect, int);
+    method public static void apply(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect, int);
+    method public static void applyDisplay(int, android.graphics.Rect, android.graphics.Rect, int);
+    method public static int getAbsoluteGravity(int, int);
+    field public static final int END = 8388613; // 0x800005
+    field public static final int RELATIVE_HORIZONTAL_GRAVITY_MASK = 8388615; // 0x800007
+    field public static final int RELATIVE_LAYOUT_DIRECTION = 8388608; // 0x800000
+    field public static final int START = 8388611; // 0x800003
+  }
+
+  public final class InputDeviceCompat {
+    field public static final int SOURCE_ANY = -256; // 0xffffff00
+    field public static final int SOURCE_CLASS_BUTTON = 1; // 0x1
+    field public static final int SOURCE_CLASS_JOYSTICK = 16; // 0x10
+    field public static final int SOURCE_CLASS_MASK = 255; // 0xff
+    field public static final int SOURCE_CLASS_NONE = 0; // 0x0
+    field public static final int SOURCE_CLASS_POINTER = 2; // 0x2
+    field public static final int SOURCE_CLASS_POSITION = 8; // 0x8
+    field public static final int SOURCE_CLASS_TRACKBALL = 4; // 0x4
+    field public static final int SOURCE_DPAD = 513; // 0x201
+    field public static final int SOURCE_GAMEPAD = 1025; // 0x401
+    field public static final int SOURCE_HDMI = 33554433; // 0x2000001
+    field public static final int SOURCE_JOYSTICK = 16777232; // 0x1000010
+    field public static final int SOURCE_KEYBOARD = 257; // 0x101
+    field public static final int SOURCE_MOUSE = 8194; // 0x2002
+    field public static final int SOURCE_STYLUS = 16386; // 0x4002
+    field public static final int SOURCE_TOUCHPAD = 1048584; // 0x100008
+    field public static final int SOURCE_TOUCHSCREEN = 4098; // 0x1002
+    field public static final int SOURCE_TOUCH_NAVIGATION = 2097152; // 0x200000
+    field public static final int SOURCE_TRACKBALL = 65540; // 0x10004
+    field public static final int SOURCE_UNKNOWN = 0; // 0x0
+  }
+
+  public final class KeyEventCompat {
+    method public static boolean dispatch(android.view.KeyEvent, android.view.KeyEvent.Callback, java.lang.Object, java.lang.Object);
+    method public static java.lang.Object getKeyDispatcherState(android.view.View);
+    method public static boolean hasModifiers(android.view.KeyEvent, int);
+    method public static boolean hasNoModifiers(android.view.KeyEvent);
+    method public static boolean isCtrlPressed(android.view.KeyEvent);
+    method public static boolean isTracking(android.view.KeyEvent);
+    method public static boolean metaStateHasModifiers(int, int);
+    method public static boolean metaStateHasNoModifiers(int);
+    method public static int normalizeMetaState(int);
+    method public static void startTracking(android.view.KeyEvent);
+  }
+
+  public final class LayoutInflaterCompat {
+    method public static android.support.v4.view.LayoutInflaterFactory getFactory(android.view.LayoutInflater);
+    method public static void setFactory(android.view.LayoutInflater, android.support.v4.view.LayoutInflaterFactory);
+  }
+
+  public abstract interface LayoutInflaterFactory {
+    method public abstract android.view.View onCreateView(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet);
+  }
+
+  public final class MarginLayoutParamsCompat {
+    method public static int getLayoutDirection(android.view.ViewGroup.MarginLayoutParams);
+    method public static int getMarginEnd(android.view.ViewGroup.MarginLayoutParams);
+    method public static int getMarginStart(android.view.ViewGroup.MarginLayoutParams);
+    method public static boolean isMarginRelative(android.view.ViewGroup.MarginLayoutParams);
+    method public static void resolveLayoutDirection(android.view.ViewGroup.MarginLayoutParams, int);
+    method public static void setLayoutDirection(android.view.ViewGroup.MarginLayoutParams, int);
+    method public static void setMarginEnd(android.view.ViewGroup.MarginLayoutParams, int);
+    method public static void setMarginStart(android.view.ViewGroup.MarginLayoutParams, int);
+  }
+
+  public final class MenuCompat {
+    method public static deprecated void setShowAsAction(android.view.MenuItem, int);
+  }
+
+  public final class MenuItemCompat {
+    method public static boolean collapseActionView(android.view.MenuItem);
+    method public static boolean expandActionView(android.view.MenuItem);
+    method public static android.support.v4.view.ActionProvider getActionProvider(android.view.MenuItem);
+    method public static android.view.View getActionView(android.view.MenuItem);
+    method public static boolean isActionViewExpanded(android.view.MenuItem);
+    method public static android.view.MenuItem setActionProvider(android.view.MenuItem, android.support.v4.view.ActionProvider);
+    method public static android.view.MenuItem setActionView(android.view.MenuItem, android.view.View);
+    method public static android.view.MenuItem setActionView(android.view.MenuItem, int);
+    method public static android.view.MenuItem setOnActionExpandListener(android.view.MenuItem, android.support.v4.view.MenuItemCompat.OnActionExpandListener);
+    method public static void setShowAsAction(android.view.MenuItem, int);
+    field public static final int SHOW_AS_ACTION_ALWAYS = 2; // 0x2
+    field public static final int SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW = 8; // 0x8
+    field public static final int SHOW_AS_ACTION_IF_ROOM = 1; // 0x1
+    field public static final int SHOW_AS_ACTION_NEVER = 0; // 0x0
+    field public static final int SHOW_AS_ACTION_WITH_TEXT = 4; // 0x4
+  }
+
+  public static abstract interface MenuItemCompat.OnActionExpandListener {
+    method public abstract boolean onMenuItemActionCollapse(android.view.MenuItem);
+    method public abstract boolean onMenuItemActionExpand(android.view.MenuItem);
+  }
+
+  public final class MotionEventCompat {
+    method public static int findPointerIndex(android.view.MotionEvent, int);
+    method public static int getActionIndex(android.view.MotionEvent);
+    method public static int getActionMasked(android.view.MotionEvent);
+    method public static float getAxisValue(android.view.MotionEvent, int);
+    method public static float getAxisValue(android.view.MotionEvent, int, int);
+    method public static int getButtonState(android.view.MotionEvent);
+    method public static int getPointerCount(android.view.MotionEvent);
+    method public static int getPointerId(android.view.MotionEvent, int);
+    method public static int getSource(android.view.MotionEvent);
+    method public static float getX(android.view.MotionEvent, int);
+    method public static float getY(android.view.MotionEvent, int);
+    method public static boolean isFromSource(android.view.MotionEvent, int);
+    field public static final int ACTION_HOVER_ENTER = 9; // 0x9
+    field public static final int ACTION_HOVER_EXIT = 10; // 0xa
+    field public static final int ACTION_HOVER_MOVE = 7; // 0x7
+    field public static final int ACTION_MASK = 255; // 0xff
+    field public static final int ACTION_POINTER_DOWN = 5; // 0x5
+    field public static final int ACTION_POINTER_INDEX_MASK = 65280; // 0xff00
+    field public static final int ACTION_POINTER_INDEX_SHIFT = 8; // 0x8
+    field public static final int ACTION_POINTER_UP = 6; // 0x6
+    field public static final int ACTION_SCROLL = 8; // 0x8
+    field public static final int AXIS_BRAKE = 23; // 0x17
+    field public static final int AXIS_DISTANCE = 24; // 0x18
+    field public static final int AXIS_GAS = 22; // 0x16
+    field public static final int AXIS_GENERIC_1 = 32; // 0x20
+    field public static final int AXIS_GENERIC_10 = 41; // 0x29
+    field public static final int AXIS_GENERIC_11 = 42; // 0x2a
+    field public static final int AXIS_GENERIC_12 = 43; // 0x2b
+    field public static final int AXIS_GENERIC_13 = 44; // 0x2c
+    field public static final int AXIS_GENERIC_14 = 45; // 0x2d
+    field public static final int AXIS_GENERIC_15 = 46; // 0x2e
+    field public static final int AXIS_GENERIC_16 = 47; // 0x2f
+    field public static final int AXIS_GENERIC_2 = 33; // 0x21
+    field public static final int AXIS_GENERIC_3 = 34; // 0x22
+    field public static final int AXIS_GENERIC_4 = 35; // 0x23
+    field public static final int AXIS_GENERIC_5 = 36; // 0x24
+    field public static final int AXIS_GENERIC_6 = 37; // 0x25
+    field public static final int AXIS_GENERIC_7 = 38; // 0x26
+    field public static final int AXIS_GENERIC_8 = 39; // 0x27
+    field public static final int AXIS_GENERIC_9 = 40; // 0x28
+    field public static final int AXIS_HAT_X = 15; // 0xf
+    field public static final int AXIS_HAT_Y = 16; // 0x10
+    field public static final int AXIS_HSCROLL = 10; // 0xa
+    field public static final int AXIS_LTRIGGER = 17; // 0x11
+    field public static final int AXIS_ORIENTATION = 8; // 0x8
+    field public static final int AXIS_PRESSURE = 2; // 0x2
+    field public static final int AXIS_RELATIVE_X = 27; // 0x1b
+    field public static final int AXIS_RELATIVE_Y = 28; // 0x1c
+    field public static final int AXIS_RTRIGGER = 18; // 0x12
+    field public static final int AXIS_RUDDER = 20; // 0x14
+    field public static final int AXIS_RX = 12; // 0xc
+    field public static final int AXIS_RY = 13; // 0xd
+    field public static final int AXIS_RZ = 14; // 0xe
+    field public static final int AXIS_SIZE = 3; // 0x3
+    field public static final int AXIS_THROTTLE = 19; // 0x13
+    field public static final int AXIS_TILT = 25; // 0x19
+    field public static final int AXIS_TOOL_MAJOR = 6; // 0x6
+    field public static final int AXIS_TOOL_MINOR = 7; // 0x7
+    field public static final int AXIS_TOUCH_MAJOR = 4; // 0x4
+    field public static final int AXIS_TOUCH_MINOR = 5; // 0x5
+    field public static final int AXIS_VSCROLL = 9; // 0x9
+    field public static final int AXIS_WHEEL = 21; // 0x15
+    field public static final int AXIS_X = 0; // 0x0
+    field public static final int AXIS_Y = 1; // 0x1
+    field public static final int AXIS_Z = 11; // 0xb
+    field public static final int BUTTON_PRIMARY = 1; // 0x1
+  }
+
+  public abstract interface NestedScrollingChild {
+    method public abstract boolean dispatchNestedFling(float, float, boolean);
+    method public abstract boolean dispatchNestedPreFling(float, float);
+    method public abstract boolean dispatchNestedPreScroll(int, int, int[], int[]);
+    method public abstract boolean dispatchNestedScroll(int, int, int, int, int[]);
+    method public abstract boolean hasNestedScrollingParent();
+    method public abstract boolean isNestedScrollingEnabled();
+    method public abstract void setNestedScrollingEnabled(boolean);
+    method public abstract boolean startNestedScroll(int);
+    method public abstract void stopNestedScroll();
+  }
+
+  public abstract interface NestedScrollingParent {
+    method public abstract int getNestedScrollAxes();
+    method public abstract boolean onNestedFling(android.view.View, float, float, boolean);
+    method public abstract boolean onNestedPreFling(android.view.View, float, float);
+    method public abstract void onNestedPreScroll(android.view.View, int, int, int[]);
+    method public abstract void onNestedScroll(android.view.View, int, int, int, int);
+    method public abstract void onNestedScrollAccepted(android.view.View, android.view.View, int);
+    method public abstract boolean onStartNestedScroll(android.view.View, android.view.View, int);
+    method public abstract void onStopNestedScroll(android.view.View);
+  }
+
+  public abstract interface OnApplyWindowInsetsListener {
+    method public abstract android.support.v4.view.WindowInsetsCompat onApplyWindowInsets(android.view.View, android.support.v4.view.WindowInsetsCompat);
+  }
+
+  public final class PointerIconCompat {
+    method public static android.support.v4.view.PointerIconCompat createCustomIcon(android.graphics.Bitmap, float, float);
+    method public static android.support.v4.view.PointerIconCompat getSystemIcon(android.content.Context, int);
+    method public static android.support.v4.view.PointerIconCompat loadCustomIcon(android.content.res.Resources, int);
+    field public static final int STYLE_ALIAS = 1010; // 0x3f2
+    field public static final int STYLE_ALL_SCROLL = 1013; // 0x3f5
+    field public static final int STYLE_ARROW = 1000; // 0x3e8
+    field public static final int STYLE_CELL = 1006; // 0x3ee
+    field public static final int STYLE_CONTEXT_MENU = 1001; // 0x3e9
+    field public static final int STYLE_COPY = 1011; // 0x3f3
+    field public static final int STYLE_CROSSHAIR = 1007; // 0x3ef
+    field public static final int STYLE_DEFAULT = 1000; // 0x3e8
+    field public static final int STYLE_GRAB = 1020; // 0x3fc
+    field public static final int STYLE_GRABBING = 1021; // 0x3fd
+    field public static final int STYLE_HAND = 1002; // 0x3ea
+    field public static final int STYLE_HELP = 1003; // 0x3eb
+    field public static final int STYLE_HORIZONTAL_DOUBLE_ARROW = 1014; // 0x3f6
+    field public static final int STYLE_NO_DROP = 1012; // 0x3f4
+    field public static final int STYLE_NULL = 0; // 0x0
+    field public static final int STYLE_TEXT = 1008; // 0x3f0
+    field public static final int STYLE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW = 1017; // 0x3f9
+    field public static final int STYLE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW = 1016; // 0x3f8
+    field public static final int STYLE_VERTICAL_DOUBLE_ARROW = 1015; // 0x3f7
+    field public static final int STYLE_VERTICAL_TEXT = 1009; // 0x3f1
+    field public static final int STYLE_WAIT = 1004; // 0x3ec
+    field public static final int STYLE_ZOOM_IN = 1018; // 0x3fa
+    field public static final int STYLE_ZOOM_OUT = 1019; // 0x3fb
+  }
+
+  public final class ScaleGestureDetectorCompat {
+    method public static boolean isQuickScaleEnabled(java.lang.Object);
+    method public static void setQuickScaleEnabled(java.lang.Object, boolean);
+  }
+
+  public abstract interface ScrollingView {
+    method public abstract int computeHorizontalScrollExtent();
+    method public abstract int computeHorizontalScrollOffset();
+    method public abstract int computeHorizontalScrollRange();
+    method public abstract int computeVerticalScrollExtent();
+    method public abstract int computeVerticalScrollOffset();
+    method public abstract int computeVerticalScrollRange();
+  }
+
+  public abstract interface TintableBackgroundView {
+    method public abstract android.content.res.ColorStateList getSupportBackgroundTintList();
+    method public abstract android.graphics.PorterDuff.Mode getSupportBackgroundTintMode();
+    method public abstract void setSupportBackgroundTintList(android.content.res.ColorStateList);
+    method public abstract void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode);
+  }
+
+  public final class VelocityTrackerCompat {
+    method public static float getXVelocity(android.view.VelocityTracker, int);
+    method public static float getYVelocity(android.view.VelocityTracker, int);
+  }
+
+  public class ViewCompat {
+    ctor protected ViewCompat();
+    method public static android.support.v4.view.ViewPropertyAnimatorCompat animate(android.view.View);
+    method public static boolean canScrollHorizontally(android.view.View, int);
+    method public static boolean canScrollVertically(android.view.View, int);
+    method public static int combineMeasuredStates(int, int);
+    method public static android.support.v4.view.WindowInsetsCompat dispatchApplyWindowInsets(android.view.View, android.support.v4.view.WindowInsetsCompat);
+    method public static void dispatchFinishTemporaryDetach(android.view.View);
+    method public static boolean dispatchNestedFling(android.view.View, float, float, boolean);
+    method public static boolean dispatchNestedPreFling(android.view.View, float, float);
+    method public static boolean dispatchNestedPreScroll(android.view.View, int, int, int[], int[]);
+    method public static boolean dispatchNestedScroll(android.view.View, int, int, int, int, int[]);
+    method public static void dispatchStartTemporaryDetach(android.view.View);
+    method public static int getAccessibilityLiveRegion(android.view.View);
+    method public static android.support.v4.view.accessibility.AccessibilityNodeProviderCompat getAccessibilityNodeProvider(android.view.View);
+    method public static float getAlpha(android.view.View);
+    method public static android.content.res.ColorStateList getBackgroundTintList(android.view.View);
+    method public static android.graphics.PorterDuff.Mode getBackgroundTintMode(android.view.View);
+    method public static android.graphics.Rect getClipBounds(android.view.View);
+    method public static float getElevation(android.view.View);
+    method public static boolean getFitsSystemWindows(android.view.View);
+    method public static int getImportantForAccessibility(android.view.View);
+    method public static int getLabelFor(android.view.View);
+    method public static int getLayerType(android.view.View);
+    method public static int getLayoutDirection(android.view.View);
+    method public static android.graphics.Matrix getMatrix(android.view.View);
+    method public static int getMeasuredHeightAndState(android.view.View);
+    method public static int getMeasuredState(android.view.View);
+    method public static int getMeasuredWidthAndState(android.view.View);
+    method public static int getMinimumHeight(android.view.View);
+    method public static int getMinimumWidth(android.view.View);
+    method public static int getOverScrollMode(android.view.View);
+    method public static int getPaddingEnd(android.view.View);
+    method public static int getPaddingStart(android.view.View);
+    method public static android.view.ViewParent getParentForAccessibility(android.view.View);
+    method public static float getPivotX(android.view.View);
+    method public static float getPivotY(android.view.View);
+    method public static float getRotation(android.view.View);
+    method public static float getRotationX(android.view.View);
+    method public static float getRotationY(android.view.View);
+    method public static float getScaleX(android.view.View);
+    method public static float getScaleY(android.view.View);
+    method public static int getScrollIndicators(android.view.View);
+    method public static java.lang.String getTransitionName(android.view.View);
+    method public static float getTranslationX(android.view.View);
+    method public static float getTranslationY(android.view.View);
+    method public static float getTranslationZ(android.view.View);
+    method public static int getWindowSystemUiVisibility(android.view.View);
+    method public static float getX(android.view.View);
+    method public static float getY(android.view.View);
+    method public static float getZ(android.view.View);
+    method public static boolean hasAccessibilityDelegate(android.view.View);
+    method public static boolean hasNestedScrollingParent(android.view.View);
+    method public static boolean hasOnClickListeners(android.view.View);
+    method public static boolean hasOverlappingRendering(android.view.View);
+    method public static boolean hasPointerCapture(android.view.View);
+    method public static boolean hasTransientState(android.view.View);
+    method public static boolean isAttachedToWindow(android.view.View);
+    method public static boolean isInLayout(android.view.View);
+    method public static boolean isLaidOut(android.view.View);
+    method public static boolean isLayoutDirectionResolved(android.view.View);
+    method public static boolean isNestedScrollingEnabled(android.view.View);
+    method public static boolean isOpaque(android.view.View);
+    method public static boolean isPaddingRelative(android.view.View);
+    method public static void jumpDrawablesToCurrentState(android.view.View);
+    method public static void offsetLeftAndRight(android.view.View, int);
+    method public static void offsetTopAndBottom(android.view.View, int);
+    method public static android.support.v4.view.WindowInsetsCompat onApplyWindowInsets(android.view.View, android.support.v4.view.WindowInsetsCompat);
+    method public static void onInitializeAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
+    method public static void onInitializeAccessibilityNodeInfo(android.view.View, android.support.v4.view.accessibility.AccessibilityNodeInfoCompat);
+    method public static void onPopulateAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
+    method public static boolean performAccessibilityAction(android.view.View, int, android.os.Bundle);
+    method public static void postInvalidateOnAnimation(android.view.View);
+    method public static void postInvalidateOnAnimation(android.view.View, int, int, int, int);
+    method public static void postOnAnimation(android.view.View, java.lang.Runnable);
+    method public static void postOnAnimationDelayed(android.view.View, java.lang.Runnable, long);
+    method public static void releasePointerCapture(android.view.View);
+    method public static void requestApplyInsets(android.view.View);
+    method public static int resolveSizeAndState(int, int, int);
+    method public static void setAccessibilityDelegate(android.view.View, android.support.v4.view.AccessibilityDelegateCompat);
+    method public static void setAccessibilityLiveRegion(android.view.View, int);
+    method public static void setActivated(android.view.View, boolean);
+    method public static void setAlpha(android.view.View, float);
+    method public static void setBackgroundTintList(android.view.View, android.content.res.ColorStateList);
+    method public static void setBackgroundTintMode(android.view.View, android.graphics.PorterDuff.Mode);
+    method public static void setChildrenDrawingOrderEnabled(android.view.ViewGroup, boolean);
+    method public static void setClipBounds(android.view.View, android.graphics.Rect);
+    method public static void setElevation(android.view.View, float);
+    method public static void setFitsSystemWindows(android.view.View, boolean);
+    method public static void setHasTransientState(android.view.View, boolean);
+    method public static void setImportantForAccessibility(android.view.View, int);
+    method public static void setLabelFor(android.view.View, int);
+    method public static void setLayerPaint(android.view.View, android.graphics.Paint);
+    method public static void setLayerType(android.view.View, int, android.graphics.Paint);
+    method public static void setLayoutDirection(android.view.View, int);
+    method public static void setNestedScrollingEnabled(android.view.View, boolean);
+    method public static void setOnApplyWindowInsetsListener(android.view.View, android.support.v4.view.OnApplyWindowInsetsListener);
+    method public static void setOverScrollMode(android.view.View, int);
+    method public static void setPaddingRelative(android.view.View, int, int, int, int);
+    method public static void setPivotX(android.view.View, float);
+    method public static void setPivotY(android.view.View, float);
+    method public static void setPointerCapture(android.view.View);
+    method public static void setPointerIcon(android.view.View, android.support.v4.view.PointerIconCompat);
+    method public static void setRotation(android.view.View, float);
+    method public static void setRotationX(android.view.View, float);
+    method public static void setRotationY(android.view.View, float);
+    method public static void setSaveFromParentEnabled(android.view.View, boolean);
+    method public static void setScaleX(android.view.View, float);
+    method public static void setScaleY(android.view.View, float);
+    method public static void setScrollIndicators(android.view.View, int);
+    method public static void setScrollIndicators(android.view.View, int, int);
+    method public static void setTransitionName(android.view.View, java.lang.String);
+    method public static void setTranslationX(android.view.View, float);
+    method public static void setTranslationY(android.view.View, float);
+    method public static void setTranslationZ(android.view.View, float);
+    method public static void setX(android.view.View, float);
+    method public static void setY(android.view.View, float);
+    method public static void setZ(android.view.View, float);
+    method public static boolean startNestedScroll(android.view.View, int);
+    method public static void stopNestedScroll(android.view.View);
+    field public static final int ACCESSIBILITY_LIVE_REGION_ASSERTIVE = 2; // 0x2
+    field public static final int ACCESSIBILITY_LIVE_REGION_NONE = 0; // 0x0
+    field public static final int ACCESSIBILITY_LIVE_REGION_POLITE = 1; // 0x1
+    field public static final int IMPORTANT_FOR_ACCESSIBILITY_AUTO = 0; // 0x0
+    field public static final int IMPORTANT_FOR_ACCESSIBILITY_NO = 2; // 0x2
+    field public static final int IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS = 4; // 0x4
+    field public static final int IMPORTANT_FOR_ACCESSIBILITY_YES = 1; // 0x1
+    field public static final int LAYER_TYPE_HARDWARE = 2; // 0x2
+    field public static final int LAYER_TYPE_NONE = 0; // 0x0
+    field public static final int LAYER_TYPE_SOFTWARE = 1; // 0x1
+    field public static final int LAYOUT_DIRECTION_INHERIT = 2; // 0x2
+    field public static final int LAYOUT_DIRECTION_LOCALE = 3; // 0x3
+    field public static final int LAYOUT_DIRECTION_LTR = 0; // 0x0
+    field public static final int LAYOUT_DIRECTION_RTL = 1; // 0x1
+    field public static final int MEASURED_HEIGHT_STATE_SHIFT = 16; // 0x10
+    field public static final int MEASURED_SIZE_MASK = 16777215; // 0xffffff
+    field public static final int MEASURED_STATE_MASK = -16777216; // 0xff000000
+    field public static final int MEASURED_STATE_TOO_SMALL = 16777216; // 0x1000000
+    field public static final int OVER_SCROLL_ALWAYS = 0; // 0x0
+    field public static final int OVER_SCROLL_IF_CONTENT_SCROLLS = 1; // 0x1
+    field public static final int OVER_SCROLL_NEVER = 2; // 0x2
+    field public static final int SCROLL_AXIS_HORIZONTAL = 1; // 0x1
+    field public static final int SCROLL_AXIS_NONE = 0; // 0x0
+    field public static final int SCROLL_AXIS_VERTICAL = 2; // 0x2
+    field public static final int SCROLL_INDICATOR_BOTTOM = 2; // 0x2
+    field public static final int SCROLL_INDICATOR_END = 32; // 0x20
+    field public static final int SCROLL_INDICATOR_LEFT = 4; // 0x4
+    field public static final int SCROLL_INDICATOR_RIGHT = 8; // 0x8
+    field public static final int SCROLL_INDICATOR_START = 16; // 0x10
+    field public static final int SCROLL_INDICATOR_TOP = 1; // 0x1
+  }
+
+  public final class ViewConfigurationCompat {
+    method public static int getScaledPagingTouchSlop(android.view.ViewConfiguration);
+    method public static boolean hasPermanentMenuKey(android.view.ViewConfiguration);
+  }
+
+  public final class ViewGroupCompat {
+    method public static int getLayoutMode(android.view.ViewGroup);
+    method public static int getNestedScrollAxes(android.view.ViewGroup);
+    method public static boolean isTransitionGroup(android.view.ViewGroup);
+    method public static boolean onRequestSendAccessibilityEvent(android.view.ViewGroup, android.view.View, android.view.accessibility.AccessibilityEvent);
+    method public static void setLayoutMode(android.view.ViewGroup, int);
+    method public static void setMotionEventSplittingEnabled(android.view.ViewGroup, boolean);
+    method public static void setTransitionGroup(android.view.ViewGroup, boolean);
+    field public static final int LAYOUT_MODE_CLIP_BOUNDS = 0; // 0x0
+    field public static final int LAYOUT_MODE_OPTICAL_BOUNDS = 1; // 0x1
+  }
+
+  public final class ViewParentCompat {
+    method public static void notifySubtreeAccessibilityStateChanged(android.view.ViewParent, android.view.View, android.view.View, int);
+    method public static boolean onNestedFling(android.view.ViewParent, android.view.View, float, float, boolean);
+    method public static boolean onNestedPreFling(android.view.ViewParent, android.view.View, float, float);
+    method public static void onNestedPreScroll(android.view.ViewParent, android.view.View, int, int, int[]);
+    method public static void onNestedScroll(android.view.ViewParent, android.view.View, int, int, int, int);
+    method public static void onNestedScrollAccepted(android.view.ViewParent, android.view.View, android.view.View, int);
+    method public static boolean onStartNestedScroll(android.view.ViewParent, android.view.View, android.view.View, int);
+    method public static void onStopNestedScroll(android.view.ViewParent, android.view.View);
+    method public static boolean requestSendAccessibilityEvent(android.view.ViewParent, android.view.View, android.view.accessibility.AccessibilityEvent);
+  }
+
+  public final class ViewPropertyAnimatorCompat {
+    method public android.support.v4.view.ViewPropertyAnimatorCompat alpha(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat alphaBy(float);
+    method public void cancel();
+    method public long getDuration();
+    method public android.view.animation.Interpolator getInterpolator();
+    method public long getStartDelay();
+    method public android.support.v4.view.ViewPropertyAnimatorCompat rotation(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat rotationBy(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat rotationX(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat rotationXBy(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat rotationY(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat rotationYBy(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat scaleX(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat scaleXBy(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat scaleY(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat scaleYBy(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat setDuration(long);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat setInterpolator(android.view.animation.Interpolator);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat setListener(android.support.v4.view.ViewPropertyAnimatorListener);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat setStartDelay(long);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat setUpdateListener(android.support.v4.view.ViewPropertyAnimatorUpdateListener);
+    method public void start();
+    method public android.support.v4.view.ViewPropertyAnimatorCompat translationX(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat translationXBy(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat translationY(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat translationYBy(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat translationZ(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat translationZBy(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat withEndAction(java.lang.Runnable);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat withLayer();
+    method public android.support.v4.view.ViewPropertyAnimatorCompat withStartAction(java.lang.Runnable);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat x(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat xBy(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat y(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat yBy(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat z(float);
+    method public android.support.v4.view.ViewPropertyAnimatorCompat zBy(float);
+  }
+
+  public abstract interface ViewPropertyAnimatorListener {
+    method public abstract void onAnimationCancel(android.view.View);
+    method public abstract void onAnimationEnd(android.view.View);
+    method public abstract void onAnimationStart(android.view.View);
+  }
+
+  public class ViewPropertyAnimatorListenerAdapter implements android.support.v4.view.ViewPropertyAnimatorListener {
+    ctor public ViewPropertyAnimatorListenerAdapter();
+    method public void onAnimationCancel(android.view.View);
+    method public void onAnimationEnd(android.view.View);
+    method public void onAnimationStart(android.view.View);
+  }
+
+  public abstract interface ViewPropertyAnimatorUpdateListener {
+    method public abstract void onAnimationUpdate(android.view.View);
+  }
+
+  public final class WindowCompat {
+    field public static final int FEATURE_ACTION_BAR = 8; // 0x8
+    field public static final int FEATURE_ACTION_BAR_OVERLAY = 9; // 0x9
+    field public static final int FEATURE_ACTION_MODE_OVERLAY = 10; // 0xa
+  }
+
+  public class WindowInsetsCompat {
+    method public android.support.v4.view.WindowInsetsCompat consumeStableInsets();
+    method public android.support.v4.view.WindowInsetsCompat consumeSystemWindowInsets();
+    method public int getStableInsetBottom();
+    method public int getStableInsetLeft();
+    method public int getStableInsetRight();
+    method public int getStableInsetTop();
+    method public int getSystemWindowInsetBottom();
+    method public int getSystemWindowInsetLeft();
+    method public int getSystemWindowInsetRight();
+    method public int getSystemWindowInsetTop();
+    method public boolean hasInsets();
+    method public boolean hasStableInsets();
+    method public boolean hasSystemWindowInsets();
+    method public boolean isConsumed();
+    method public boolean isRound();
+    method public android.support.v4.view.WindowInsetsCompat replaceSystemWindowInsets(int, int, int, int);
+    method public android.support.v4.view.WindowInsetsCompat replaceSystemWindowInsets(android.graphics.Rect);
+  }
+
+}
+
+package android.support.v4.view.accessibility {
+
+  public final class AccessibilityEventCompat {
+    method public static void appendRecord(android.view.accessibility.AccessibilityEvent, android.support.v4.view.accessibility.AccessibilityRecordCompat);
+    method public static android.support.v4.view.accessibility.AccessibilityRecordCompat asRecord(android.view.accessibility.AccessibilityEvent);
+    method public static int getContentChangeTypes(android.view.accessibility.AccessibilityEvent);
+    method public static android.support.v4.view.accessibility.AccessibilityRecordCompat getRecord(android.view.accessibility.AccessibilityEvent, int);
+    method public static int getRecordCount(android.view.accessibility.AccessibilityEvent);
+    method public static void setContentChangeTypes(android.view.accessibility.AccessibilityEvent, int);
+    field public static final int CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION = 4; // 0x4
+    field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
+    field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
+    field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
+    field public static final int TYPES_ALL_MASK = -1; // 0xffffffff
+    field public static final int TYPE_ANNOUNCEMENT = 16384; // 0x4000
+    field public static final int TYPE_GESTURE_DETECTION_END = 524288; // 0x80000
+    field public static final int TYPE_GESTURE_DETECTION_START = 262144; // 0x40000
+    field public static final int TYPE_TOUCH_EXPLORATION_GESTURE_END = 1024; // 0x400
+    field public static final int TYPE_TOUCH_EXPLORATION_GESTURE_START = 512; // 0x200
+    field public static final int TYPE_TOUCH_INTERACTION_END = 2097152; // 0x200000
+    field public static final int TYPE_TOUCH_INTERACTION_START = 1048576; // 0x100000
+    field public static final int TYPE_VIEW_ACCESSIBILITY_FOCUSED = 32768; // 0x8000
+    field public static final int TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED = 65536; // 0x10000
+    field public static final int TYPE_VIEW_HOVER_ENTER = 128; // 0x80
+    field public static final int TYPE_VIEW_HOVER_EXIT = 256; // 0x100
+    field public static final int TYPE_VIEW_SCROLLED = 4096; // 0x1000
+    field public static final int TYPE_VIEW_TEXT_SELECTION_CHANGED = 8192; // 0x2000
+    field public static final int TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY = 131072; // 0x20000
+    field public static final int TYPE_WINDOW_CONTENT_CHANGED = 2048; // 0x800
+  }
+
+  public final class AccessibilityManagerCompat {
+    method public static boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager, android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat);
+    method public static java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getEnabledAccessibilityServiceList(android.view.accessibility.AccessibilityManager, int);
+    method public static java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getInstalledAccessibilityServiceList(android.view.accessibility.AccessibilityManager);
+    method public static boolean isTouchExplorationEnabled(android.view.accessibility.AccessibilityManager);
+    method public static boolean removeAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager, android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat);
+  }
+
+  public static abstract class AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat {
+    ctor public AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat();
+    method public abstract void onAccessibilityStateChanged(boolean);
+  }
+
+  public class AccessibilityNodeInfoCompat {
+    ctor public AccessibilityNodeInfoCompat(java.lang.Object);
+    method public void addAction(int);
+    method public void addAction(android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat);
+    method public void addChild(android.view.View);
+    method public void addChild(android.view.View, int);
+    method public boolean canOpenPopup();
+    method public java.util.List<android.support.v4.view.accessibility.AccessibilityNodeInfoCompat> findAccessibilityNodeInfosByText(java.lang.String);
+    method public java.util.List<android.support.v4.view.accessibility.AccessibilityNodeInfoCompat> findAccessibilityNodeInfosByViewId(java.lang.String);
+    method public android.support.v4.view.accessibility.AccessibilityNodeInfoCompat findFocus(int);
+    method public android.support.v4.view.accessibility.AccessibilityNodeInfoCompat focusSearch(int);
+    method public java.util.List<android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat> getActionList();
+    method public int getActions();
+    method public void getBoundsInParent(android.graphics.Rect);
+    method public void getBoundsInScreen(android.graphics.Rect);
+    method public android.support.v4.view.accessibility.AccessibilityNodeInfoCompat getChild(int);
+    method public int getChildCount();
+    method public java.lang.CharSequence getClassName();
+    method public android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat getCollectionInfo();
+    method public android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat getCollectionItemInfo();
+    method public java.lang.CharSequence getContentDescription();
+    method public java.lang.CharSequence getError();
+    method public android.os.Bundle getExtras();
+    method public java.lang.Object getInfo();
+    method public int getInputType();
+    method public android.support.v4.view.accessibility.AccessibilityNodeInfoCompat getLabelFor();
+    method public android.support.v4.view.accessibility.AccessibilityNodeInfoCompat getLabeledBy();
+    method public int getLiveRegion();
+    method public int getMaxTextLength();
+    method public int getMovementGranularities();
+    method public java.lang.CharSequence getPackageName();
+    method public android.support.v4.view.accessibility.AccessibilityNodeInfoCompat getParent();
+    method public android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat getRangeInfo();
+    method public java.lang.CharSequence getRoleDescription();
+    method public java.lang.CharSequence getText();
+    method public int getTextSelectionEnd();
+    method public int getTextSelectionStart();
+    method public android.support.v4.view.accessibility.AccessibilityNodeInfoCompat getTraversalAfter();
+    method public android.support.v4.view.accessibility.AccessibilityNodeInfoCompat getTraversalBefore();
+    method public java.lang.String getViewIdResourceName();
+    method public android.support.v4.view.accessibility.AccessibilityWindowInfoCompat getWindow();
+    method public int getWindowId();
+    method public boolean hasImage();
+    method public boolean isAccessibilityFocused();
+    method public boolean isCheckable();
+    method public boolean isChecked();
+    method public boolean isClickable();
+    method public boolean isContentInvalid();
+    method public boolean isDismissable();
+    method public boolean isEditable();
+    method public boolean isEnabled();
+    method public boolean isFocusable();
+    method public boolean isFocused();
+    method public boolean isLongClickable();
+    method public boolean isMultiLine();
+    method public boolean isPassword();
+    method public boolean isScrollable();
+    method public boolean isSelected();
+    method public boolean isVisibleToUser();
+    method public static android.support.v4.view.accessibility.AccessibilityNodeInfoCompat obtain(android.view.View);
+    method public static android.support.v4.view.accessibility.AccessibilityNodeInfoCompat obtain(android.view.View, int);
+    method public static android.support.v4.view.accessibility.AccessibilityNodeInfoCompat obtain();
+    method public static android.support.v4.view.accessibility.AccessibilityNodeInfoCompat obtain(android.support.v4.view.accessibility.AccessibilityNodeInfoCompat);
+    method public boolean performAction(int);
+    method public boolean performAction(int, android.os.Bundle);
+    method public void recycle();
+    method public boolean refresh();
+    method public boolean removeAction(android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat);
+    method public boolean removeChild(android.view.View);
+    method public boolean removeChild(android.view.View, int);
+    method public void setAccessibilityFocused(boolean);
+    method public void setBoundsInParent(android.graphics.Rect);
+    method public void setBoundsInScreen(android.graphics.Rect);
+    method public void setCanOpenPopup(boolean);
+    method public void setCheckable(boolean);
+    method public void setChecked(boolean);
+    method public void setClassName(java.lang.CharSequence);
+    method public void setClickable(boolean);
+    method public void setCollectionInfo(java.lang.Object);
+    method public void setCollectionItemInfo(java.lang.Object);
+    method public void setContentDescription(java.lang.CharSequence);
+    method public void setContentInvalid(boolean);
+    method public void setDismissable(boolean);
+    method public void setEditable(boolean);
+    method public void setEnabled(boolean);
+    method public void setError(java.lang.CharSequence);
+    method public void setFocusable(boolean);
+    method public void setFocused(boolean);
+    method public void setHasImage(boolean);
+    method public void setInputType(int);
+    method public void setLabelFor(android.view.View);
+    method public void setLabelFor(android.view.View, int);
+    method public void setLabeledBy(android.view.View);
+    method public void setLabeledBy(android.view.View, int);
+    method public void setLiveRegion(int);
+    method public void setLongClickable(boolean);
+    method public void setMaxTextLength(int);
+    method public void setMovementGranularities(int);
+    method public void setMultiLine(boolean);
+    method public void setPackageName(java.lang.CharSequence);
+    method public void setParent(android.view.View);
+    method public void setParent(android.view.View, int);
+    method public void setPassword(boolean);
+    method public void setRangeInfo(android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat);
+    method public void setRoleDescription(java.lang.CharSequence);
+    method public void setScrollable(boolean);
+    method public void setSelected(boolean);
+    method public void setSource(android.view.View);
+    method public void setSource(android.view.View, int);
+    method public void setText(java.lang.CharSequence);
+    method public void setTextSelection(int, int);
+    method public void setTraversalAfter(android.view.View);
+    method public void setTraversalAfter(android.view.View, int);
+    method public void setTraversalBefore(android.view.View);
+    method public void setTraversalBefore(android.view.View, int);
+    method public void setViewIdResourceName(java.lang.String);
+    method public void setVisibleToUser(boolean);
+    field public static final int ACTION_ACCESSIBILITY_FOCUS = 64; // 0x40
+    field public static final java.lang.String ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN = "ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN";
+    field public static final java.lang.String ACTION_ARGUMENT_HTML_ELEMENT_STRING = "ACTION_ARGUMENT_HTML_ELEMENT_STRING";
+    field public static final java.lang.String ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT = "ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT";
+    field public static final java.lang.String ACTION_ARGUMENT_SELECTION_END_INT = "ACTION_ARGUMENT_SELECTION_END_INT";
+    field public static final java.lang.String ACTION_ARGUMENT_SELECTION_START_INT = "ACTION_ARGUMENT_SELECTION_START_INT";
+    field public static final java.lang.String ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE = "ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE";
+    field public static final int ACTION_CLEAR_ACCESSIBILITY_FOCUS = 128; // 0x80
+    field public static final int ACTION_CLEAR_FOCUS = 2; // 0x2
+    field public static final int ACTION_CLEAR_SELECTION = 8; // 0x8
+    field public static final int ACTION_CLICK = 16; // 0x10
+    field public static final int ACTION_COLLAPSE = 524288; // 0x80000
+    field public static final int ACTION_COPY = 16384; // 0x4000
+    field public static final int ACTION_CUT = 65536; // 0x10000
+    field public static final int ACTION_DISMISS = 1048576; // 0x100000
+    field public static final int ACTION_EXPAND = 262144; // 0x40000
+    field public static final int ACTION_FOCUS = 1; // 0x1
+    field public static final int ACTION_LONG_CLICK = 32; // 0x20
+    field public static final int ACTION_NEXT_AT_MOVEMENT_GRANULARITY = 256; // 0x100
+    field public static final int ACTION_NEXT_HTML_ELEMENT = 1024; // 0x400
+    field public static final int ACTION_PASTE = 32768; // 0x8000
+    field public static final int ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY = 512; // 0x200
+    field public static final int ACTION_PREVIOUS_HTML_ELEMENT = 2048; // 0x800
+    field public static final int ACTION_SCROLL_BACKWARD = 8192; // 0x2000
+    field public static final int ACTION_SCROLL_FORWARD = 4096; // 0x1000
+    field public static final int ACTION_SELECT = 4; // 0x4
+    field public static final int ACTION_SET_SELECTION = 131072; // 0x20000
+    field public static final int ACTION_SET_TEXT = 2097152; // 0x200000
+    field public static final int FOCUS_ACCESSIBILITY = 2; // 0x2
+    field public static final int FOCUS_INPUT = 1; // 0x1
+    field public static final int MOVEMENT_GRANULARITY_CHARACTER = 1; // 0x1
+    field public static final int MOVEMENT_GRANULARITY_LINE = 4; // 0x4
+    field public static final int MOVEMENT_GRANULARITY_PAGE = 16; // 0x10
+    field public static final int MOVEMENT_GRANULARITY_PARAGRAPH = 8; // 0x8
+    field public static final int MOVEMENT_GRANULARITY_WORD = 2; // 0x2
+  }
+
+  public static class AccessibilityNodeInfoCompat.AccessibilityActionCompat {
+    ctor public AccessibilityNodeInfoCompat.AccessibilityActionCompat(int, java.lang.CharSequence);
+    method public int getId();
+    method public java.lang.CharSequence getLabel();
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_ACCESSIBILITY_FOCUS;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_CLEAR_ACCESSIBILITY_FOCUS;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_CLEAR_FOCUS;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_CLEAR_SELECTION;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_CLICK;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_COLLAPSE;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_COPY;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_CUT;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_DISMISS;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_EXPAND;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_FOCUS;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_LONG_CLICK;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_NEXT_AT_MOVEMENT_GRANULARITY;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_NEXT_HTML_ELEMENT;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PASTE;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PREVIOUS_HTML_ELEMENT;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_SCROLL_BACKWARD;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_SCROLL_FORWARD;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_SELECT;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_SET_SELECTION;
+    field public static final android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_SET_TEXT;
+  }
+
+  public static class AccessibilityNodeInfoCompat.CollectionInfoCompat {
+    method public int getColumnCount();
+    method public int getRowCount();
+    method public boolean isHierarchical();
+    method public static android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat obtain(int, int, boolean, int);
+    field public static final int SELECTION_MODE_MULTIPLE = 2; // 0x2
+    field public static final int SELECTION_MODE_NONE = 0; // 0x0
+    field public static final int SELECTION_MODE_SINGLE = 1; // 0x1
+  }
+
+  public static class AccessibilityNodeInfoCompat.CollectionItemInfoCompat {
+    method public int getColumnIndex();
+    method public int getColumnSpan();
+    method public int getRowIndex();
+    method public int getRowSpan();
+    method public boolean isHeading();
+    method public boolean isSelected();
+    method public static android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat obtain(int, int, int, int, boolean, boolean);
+  }
+
+  public static class AccessibilityNodeInfoCompat.RangeInfoCompat {
+    method public float getCurrent();
+    method public float getMax();
+    method public float getMin();
+    method public int getType();
+    field public static final int RANGE_TYPE_FLOAT = 1; // 0x1
+    field public static final int RANGE_TYPE_INT = 0; // 0x0
+    field public static final int RANGE_TYPE_PERCENT = 2; // 0x2
+  }
+
+  public class AccessibilityNodeProviderCompat {
+    ctor public AccessibilityNodeProviderCompat();
+    ctor public AccessibilityNodeProviderCompat(java.lang.Object);
+    method public android.support.v4.view.accessibility.AccessibilityNodeInfoCompat createAccessibilityNodeInfo(int);
+    method public java.util.List<android.support.v4.view.accessibility.AccessibilityNodeInfoCompat> findAccessibilityNodeInfosByText(java.lang.String, int);
+    method public android.support.v4.view.accessibility.AccessibilityNodeInfoCompat findFocus(int);
+    method public java.lang.Object getProvider();
+    method public boolean performAction(int, int, android.os.Bundle);
+  }
+
+  public class AccessibilityRecordCompat {
+    ctor public deprecated AccessibilityRecordCompat(java.lang.Object);
+    method public int getAddedCount();
+    method public java.lang.CharSequence getBeforeText();
+    method public java.lang.CharSequence getClassName();
+    method public java.lang.CharSequence getContentDescription();
+    method public int getCurrentItemIndex();
+    method public int getFromIndex();
+    method public deprecated java.lang.Object getImpl();
+    method public int getItemCount();
+    method public int getMaxScrollX();
+    method public int getMaxScrollY();
+    method public android.os.Parcelable getParcelableData();
+    method public int getRemovedCount();
+    method public int getScrollX();
+    method public int getScrollY();
+    method public android.support.v4.view.accessibility.AccessibilityNodeInfoCompat getSource();
+    method public java.util.List<java.lang.CharSequence> getText();
+    method public int getToIndex();
+    method public int getWindowId();
+    method public boolean isChecked();
+    method public boolean isEnabled();
+    method public boolean isFullScreen();
+    method public boolean isPassword();
+    method public boolean isScrollable();
+    method public static android.support.v4.view.accessibility.AccessibilityRecordCompat obtain(android.support.v4.view.accessibility.AccessibilityRecordCompat);
+    method public static android.support.v4.view.accessibility.AccessibilityRecordCompat obtain();
+    method public void recycle();
+    method public void setAddedCount(int);
+    method public void setBeforeText(java.lang.CharSequence);
+    method public void setChecked(boolean);
+    method public void setClassName(java.lang.CharSequence);
+    method public void setContentDescription(java.lang.CharSequence);
+    method public void setCurrentItemIndex(int);
+    method public void setEnabled(boolean);
+    method public void setFromIndex(int);
+    method public void setFullScreen(boolean);
+    method public void setItemCount(int);
+    method public void setMaxScrollX(int);
+    method public void setMaxScrollY(int);
+    method public void setParcelableData(android.os.Parcelable);
+    method public void setPassword(boolean);
+    method public void setRemovedCount(int);
+    method public void setScrollX(int);
+    method public void setScrollY(int);
+    method public void setScrollable(boolean);
+    method public void setSource(android.view.View);
+    method public void setSource(android.view.View, int);
+    method public void setToIndex(int);
+  }
+
+  public class AccessibilityWindowInfoCompat {
+    method public void getBoundsInScreen(android.graphics.Rect);
+    method public android.support.v4.view.accessibility.AccessibilityWindowInfoCompat getChild(int);
+    method public int getChildCount();
+    method public int getId();
+    method public int getLayer();
+    method public android.support.v4.view.accessibility.AccessibilityWindowInfoCompat getParent();
+    method public android.support.v4.view.accessibility.AccessibilityNodeInfoCompat getRoot();
+    method public int getType();
+    method public boolean isAccessibilityFocused();
+    method public boolean isActive();
+    method public boolean isFocused();
+    method public static android.support.v4.view.accessibility.AccessibilityWindowInfoCompat obtain();
+    method public static android.support.v4.view.accessibility.AccessibilityWindowInfoCompat obtain(android.support.v4.view.accessibility.AccessibilityWindowInfoCompat);
+    method public void recycle();
+    field public static final int TYPE_ACCESSIBILITY_OVERLAY = 4; // 0x4
+    field public static final int TYPE_APPLICATION = 1; // 0x1
+    field public static final int TYPE_INPUT_METHOD = 2; // 0x2
+    field public static final int TYPE_SYSTEM = 3; // 0x3
+  }
+
+}
+
+package android.support.v4.view.animation {
+
+  public final class PathInterpolatorCompat {
+    method public static android.view.animation.Interpolator create(android.graphics.Path);
+    method public static android.view.animation.Interpolator create(float, float);
+    method public static android.view.animation.Interpolator create(float, float, float, float);
+  }
+
+}
+
+package android.support.v4.widget {
+
+  public final class CompoundButtonCompat {
+    method public static android.graphics.drawable.Drawable getButtonDrawable(android.widget.CompoundButton);
+    method public static android.content.res.ColorStateList getButtonTintList(android.widget.CompoundButton);
+    method public static android.graphics.PorterDuff.Mode getButtonTintMode(android.widget.CompoundButton);
+    method public static void setButtonTintList(android.widget.CompoundButton, android.content.res.ColorStateList);
+    method public static void setButtonTintMode(android.widget.CompoundButton, android.graphics.PorterDuff.Mode);
+  }
+
+  public final class EdgeEffectCompat {
+    ctor public EdgeEffectCompat(android.content.Context);
+    method public boolean draw(android.graphics.Canvas);
+    method public void finish();
+    method public boolean isFinished();
+    method public boolean onAbsorb(int);
+    method public deprecated boolean onPull(float);
+    method public boolean onPull(float, float);
+    method public boolean onRelease();
+    method public void setSize(int, int);
+  }
+
+  public final class ListPopupWindowCompat {
+    method public static android.view.View.OnTouchListener createDragToOpenListener(java.lang.Object, android.view.View);
+  }
+
+  public final class ListViewCompat {
+    method public static void scrollListBy(android.widget.ListView, int);
+  }
+
+  public final class PopupMenuCompat {
+    method public static android.view.View.OnTouchListener getDragToOpenListener(java.lang.Object);
+  }
+
+  public final class PopupWindowCompat {
+    method public static boolean getOverlapAnchor(android.widget.PopupWindow);
+    method public static int getWindowLayoutType(android.widget.PopupWindow);
+    method public static void setOverlapAnchor(android.widget.PopupWindow, boolean);
+    method public static void setWindowLayoutType(android.widget.PopupWindow, int);
+    method public static void showAsDropDown(android.widget.PopupWindow, android.view.View, int, int, int);
+  }
+
+  public final class ScrollerCompat {
+    method public void abortAnimation();
+    method public boolean computeScrollOffset();
+    method public static android.support.v4.widget.ScrollerCompat create(android.content.Context);
+    method public static android.support.v4.widget.ScrollerCompat create(android.content.Context, android.view.animation.Interpolator);
+    method public void fling(int, int, int, int, int, int, int, int);
+    method public void fling(int, int, int, int, int, int, int, int, int, int);
+    method public float getCurrVelocity();
+    method public int getCurrX();
+    method public int getCurrY();
+    method public int getFinalX();
+    method public int getFinalY();
+    method public boolean isFinished();
+    method public boolean isOverScrolled();
+    method public void notifyHorizontalEdgeReached(int, int, int);
+    method public void notifyVerticalEdgeReached(int, int, int);
+    method public boolean springBack(int, int, int, int, int, int);
+    method public void startScroll(int, int, int, int);
+    method public void startScroll(int, int, int, int, int);
+  }
+
+  public final class SearchViewCompat {
+    method public static java.lang.CharSequence getQuery(android.view.View);
+    method public static boolean isIconified(android.view.View);
+    method public static boolean isQueryRefinementEnabled(android.view.View);
+    method public static boolean isSubmitButtonEnabled(android.view.View);
+    method public static android.view.View newSearchView(android.content.Context);
+    method public static void setIconified(android.view.View, boolean);
+    method public static void setImeOptions(android.view.View, int);
+    method public static void setInputType(android.view.View, int);
+    method public static void setMaxWidth(android.view.View, int);
+    method public static void setOnCloseListener(android.view.View, android.support.v4.widget.SearchViewCompat.OnCloseListenerCompat);
+    method public static void setOnQueryTextListener(android.view.View, android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat);
+    method public static void setQuery(android.view.View, java.lang.CharSequence, boolean);
+    method public static void setQueryHint(android.view.View, java.lang.CharSequence);
+    method public static void setQueryRefinementEnabled(android.view.View, boolean);
+    method public static void setSearchableInfo(android.view.View, android.content.ComponentName);
+    method public static void setSubmitButtonEnabled(android.view.View, boolean);
+  }
+
+  public static abstract class SearchViewCompat.OnCloseListenerCompat {
+    ctor public SearchViewCompat.OnCloseListenerCompat();
+    method public boolean onClose();
+  }
+
+  public static abstract class SearchViewCompat.OnQueryTextListenerCompat {
+    ctor public SearchViewCompat.OnQueryTextListenerCompat();
+    method public boolean onQueryTextChange(java.lang.String);
+    method public boolean onQueryTextSubmit(java.lang.String);
+  }
+
+  public final class TextViewCompat {
+    method public static int getMaxLines(android.widget.TextView);
+    method public static int getMinLines(android.widget.TextView);
+    method public static void setCompoundDrawablesRelative(android.widget.TextView, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable);
+    method public static void setCompoundDrawablesRelativeWithIntrinsicBounds(android.widget.TextView, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable);
+    method public static void setCompoundDrawablesRelativeWithIntrinsicBounds(android.widget.TextView, int, int, int, int);
+    method public static void setTextAppearance(android.widget.TextView, int);
+  }
+
+  public abstract interface TintableCompoundButton {
+    method public abstract android.content.res.ColorStateList getSupportButtonTintList();
+    method public abstract android.graphics.PorterDuff.Mode getSupportButtonTintMode();
+    method public abstract void setSupportButtonTintList(android.content.res.ColorStateList);
+    method public abstract void setSupportButtonTintMode(android.graphics.PorterDuff.Mode);
+  }
+
+}
+
diff --git a/compat/api/removed.txt b/compat/api/removed.txt
new file mode 100644
index 0000000..98f8c44
--- /dev/null
+++ b/compat/api/removed.txt
@@ -0,0 +1,18 @@
+package android.support.v4.content {
+
+  public class ContextCompat {
+    method public static deprecated android.content.Context createDeviceEncryptedStorageContext(android.content.Context);
+    method public static deprecated boolean isDeviceEncryptedStorage(android.content.Context);
+  }
+
+}
+
+package android.support.v4.os {
+
+  public class UserManagerCompat {
+    method public static deprecated boolean isUserRunningAndLocked(android.content.Context);
+    method public static deprecated boolean isUserRunningAndUnlocked(android.content.Context);
+  }
+
+}
+
diff --git a/v4/api21/android/support/v4/app/ActivityCompat21.java b/compat/api21/android/support/v4/app/ActivityCompat21.java
similarity index 100%
rename from v4/api21/android/support/v4/app/ActivityCompat21.java
rename to compat/api21/android/support/v4/app/ActivityCompat21.java
diff --git a/v4/api21/android/support/v4/app/ActivityOptionsCompat21.java b/compat/api21/android/support/v4/app/ActivityOptionsCompat21.java
similarity index 100%
rename from v4/api21/android/support/v4/app/ActivityOptionsCompat21.java
rename to compat/api21/android/support/v4/app/ActivityOptionsCompat21.java
diff --git a/v4/api21/android/support/v4/content/ContextCompatApi21.java b/compat/api21/android/support/v4/content/ContextCompatApi21.java
similarity index 100%
rename from v4/api21/android/support/v4/content/ContextCompatApi21.java
rename to compat/api21/android/support/v4/content/ContextCompatApi21.java
diff --git a/v4/api21/android/support/v4/content/res/ResourcesCompatApi21.java b/compat/api21/android/support/v4/content/res/ResourcesCompatApi21.java
similarity index 100%
rename from v4/api21/android/support/v4/content/res/ResourcesCompatApi21.java
rename to compat/api21/android/support/v4/content/res/ResourcesCompatApi21.java
diff --git a/v4/api21/android/support/v4/graphics/drawable/DrawableCompatLollipop.java b/compat/api21/android/support/v4/graphics/drawable/DrawableCompatLollipop.java
similarity index 100%
rename from v4/api21/android/support/v4/graphics/drawable/DrawableCompatLollipop.java
rename to compat/api21/android/support/v4/graphics/drawable/DrawableCompatLollipop.java
diff --git a/v4/api21/android/support/v4/graphics/drawable/DrawableWrapperLollipop.java b/compat/api21/android/support/v4/graphics/drawable/DrawableWrapperLollipop.java
similarity index 100%
rename from v4/api21/android/support/v4/graphics/drawable/DrawableWrapperLollipop.java
rename to compat/api21/android/support/v4/graphics/drawable/DrawableWrapperLollipop.java
diff --git a/v4/api21/android/support/v4/view/LayoutInflaterCompatLollipop.java b/compat/api21/android/support/v4/view/LayoutInflaterCompatLollipop.java
similarity index 100%
rename from v4/api21/android/support/v4/view/LayoutInflaterCompatLollipop.java
rename to compat/api21/android/support/v4/view/LayoutInflaterCompatLollipop.java
diff --git a/v4/api21/android/support/v4/view/ViewCompatLollipop.java b/compat/api21/android/support/v4/view/ViewCompatLollipop.java
similarity index 100%
rename from v4/api21/android/support/v4/view/ViewCompatLollipop.java
rename to compat/api21/android/support/v4/view/ViewCompatLollipop.java
diff --git a/v4/api21/android/support/v4/view/ViewGroupCompatLollipop.java b/compat/api21/android/support/v4/view/ViewGroupCompatLollipop.java
similarity index 100%
rename from v4/api21/android/support/v4/view/ViewGroupCompatLollipop.java
rename to compat/api21/android/support/v4/view/ViewGroupCompatLollipop.java
diff --git a/v4/api21/android/support/v4/view/ViewParentCompatLollipop.java b/compat/api21/android/support/v4/view/ViewParentCompatLollipop.java
similarity index 100%
rename from v4/api21/android/support/v4/view/ViewParentCompatLollipop.java
rename to compat/api21/android/support/v4/view/ViewParentCompatLollipop.java
diff --git a/v4/api21/android/support/v4/view/ViewPropertyAnimatorCompatLollipop.java b/compat/api21/android/support/v4/view/ViewPropertyAnimatorCompatLollipop.java
similarity index 100%
rename from v4/api21/android/support/v4/view/ViewPropertyAnimatorCompatLollipop.java
rename to compat/api21/android/support/v4/view/ViewPropertyAnimatorCompatLollipop.java
diff --git a/v4/api21/android/support/v4/view/WindowInsetsCompatApi21.java b/compat/api21/android/support/v4/view/WindowInsetsCompatApi21.java
similarity index 100%
rename from v4/api21/android/support/v4/view/WindowInsetsCompatApi21.java
rename to compat/api21/android/support/v4/view/WindowInsetsCompatApi21.java
diff --git a/v4/api21/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatApi21.java b/compat/api21/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatApi21.java
similarity index 100%
rename from v4/api21/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatApi21.java
rename to compat/api21/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatApi21.java
diff --git a/v4/api21/android/support/v4/view/accessibility/AccessibilityWindowInfoCompatApi21.java b/compat/api21/android/support/v4/view/accessibility/AccessibilityWindowInfoCompatApi21.java
similarity index 100%
rename from v4/api21/android/support/v4/view/accessibility/AccessibilityWindowInfoCompatApi21.java
rename to compat/api21/android/support/v4/view/accessibility/AccessibilityWindowInfoCompatApi21.java
diff --git a/v4/api21/android/support/v4/view/animation/PathInterpolatorCompatApi21.java b/compat/api21/android/support/v4/view/animation/PathInterpolatorCompatApi21.java
similarity index 100%
rename from v4/api21/android/support/v4/view/animation/PathInterpolatorCompatApi21.java
rename to compat/api21/android/support/v4/view/animation/PathInterpolatorCompatApi21.java
diff --git a/v4/api21/android/support/v4/widget/CompoundButtonCompatLollipop.java b/compat/api21/android/support/v4/widget/CompoundButtonCompatLollipop.java
similarity index 100%
rename from v4/api21/android/support/v4/widget/CompoundButtonCompatLollipop.java
rename to compat/api21/android/support/v4/widget/CompoundButtonCompatLollipop.java
diff --git a/v4/api21/android/support/v4/widget/EdgeEffectCompatLollipop.java b/compat/api21/android/support/v4/widget/EdgeEffectCompatLollipop.java
similarity index 100%
rename from v4/api21/android/support/v4/widget/EdgeEffectCompatLollipop.java
rename to compat/api21/android/support/v4/widget/EdgeEffectCompatLollipop.java
diff --git a/v4/api21/android/support/v4/widget/PopupWindowCompatApi21.java b/compat/api21/android/support/v4/widget/PopupWindowCompatApi21.java
similarity index 100%
rename from v4/api21/android/support/v4/widget/PopupWindowCompatApi21.java
rename to compat/api21/android/support/v4/widget/PopupWindowCompatApi21.java
diff --git a/v4/api22/android/support/v4/app/ActivityCompat22.java b/compat/api22/android/support/v4/app/ActivityCompat22.java
similarity index 100%
rename from v4/api22/android/support/v4/app/ActivityCompat22.java
rename to compat/api22/android/support/v4/app/ActivityCompat22.java
diff --git a/v4/api22/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatApi22.java b/compat/api22/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatApi22.java
similarity index 100%
rename from v4/api22/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatApi22.java
rename to compat/api22/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatApi22.java
diff --git a/v4/api23/android/support/v4/app/ActivityCompat23.java b/compat/api23/android/support/v4/app/ActivityCompat23.java
similarity index 100%
rename from v4/api23/android/support/v4/app/ActivityCompat23.java
rename to compat/api23/android/support/v4/app/ActivityCompat23.java
diff --git a/v4/api23/android/support/v4/app/AppOpsManagerCompat23.java b/compat/api23/android/support/v4/app/AppOpsManagerCompat23.java
similarity index 100%
rename from v4/api23/android/support/v4/app/AppOpsManagerCompat23.java
rename to compat/api23/android/support/v4/app/AppOpsManagerCompat23.java
diff --git a/v4/api23/android/support/v4/content/ContextCompatApi23.java b/compat/api23/android/support/v4/content/ContextCompatApi23.java
similarity index 100%
rename from v4/api23/android/support/v4/content/ContextCompatApi23.java
rename to compat/api23/android/support/v4/content/ContextCompatApi23.java
diff --git a/v4/api23/android/support/v4/content/res/ResourcesCompatApi23.java b/compat/api23/android/support/v4/content/res/ResourcesCompatApi23.java
similarity index 100%
rename from v4/api23/android/support/v4/content/res/ResourcesCompatApi23.java
rename to compat/api23/android/support/v4/content/res/ResourcesCompatApi23.java
diff --git a/v4/api23/android/support/v4/graphics/drawable/DrawableCompatApi23.java b/compat/api23/android/support/v4/graphics/drawable/DrawableCompatApi23.java
similarity index 100%
rename from v4/api23/android/support/v4/graphics/drawable/DrawableCompatApi23.java
rename to compat/api23/android/support/v4/graphics/drawable/DrawableCompatApi23.java
diff --git a/v4/api23/android/support/v4/hardware/fingerprint/FingerprintManagerCompatApi23.java b/compat/api23/android/support/v4/hardware/fingerprint/FingerprintManagerCompatApi23.java
similarity index 100%
rename from v4/api23/android/support/v4/hardware/fingerprint/FingerprintManagerCompatApi23.java
rename to compat/api23/android/support/v4/hardware/fingerprint/FingerprintManagerCompatApi23.java
diff --git a/v4/api23/android/support/v4/text/ICUCompatApi23.java b/compat/api23/android/support/v4/text/ICUCompatApi23.java
similarity index 100%
rename from v4/api23/android/support/v4/text/ICUCompatApi23.java
rename to compat/api23/android/support/v4/text/ICUCompatApi23.java
diff --git a/v4/api23/android/support/v4/view/ViewCompatMarshmallow.java b/compat/api23/android/support/v4/view/ViewCompatMarshmallow.java
similarity index 100%
rename from v4/api23/android/support/v4/view/ViewCompatMarshmallow.java
rename to compat/api23/android/support/v4/view/ViewCompatMarshmallow.java
diff --git a/v4/api23/android/support/v4/widget/CompoundButtonCompatApi23.java b/compat/api23/android/support/v4/widget/CompoundButtonCompatApi23.java
similarity index 100%
rename from v4/api23/android/support/v4/widget/CompoundButtonCompatApi23.java
rename to compat/api23/android/support/v4/widget/CompoundButtonCompatApi23.java
diff --git a/v4/api23/android/support/v4/widget/PopupWindowCompatApi23.java b/compat/api23/android/support/v4/widget/PopupWindowCompatApi23.java
similarity index 100%
rename from v4/api23/android/support/v4/widget/PopupWindowCompatApi23.java
rename to compat/api23/android/support/v4/widget/PopupWindowCompatApi23.java
diff --git a/v4/api23/android/support/v4/widget/TextViewCompatApi23.java b/compat/api23/android/support/v4/widget/TextViewCompatApi23.java
similarity index 100%
rename from v4/api23/android/support/v4/widget/TextViewCompatApi23.java
rename to compat/api23/android/support/v4/widget/TextViewCompatApi23.java
diff --git a/v4/api24/android/support/v4/content/ContextCompatApi24.java b/compat/api24/android/support/v4/content/ContextCompatApi24.java
similarity index 100%
rename from v4/api24/android/support/v4/content/ContextCompatApi24.java
rename to compat/api24/android/support/v4/content/ContextCompatApi24.java
diff --git a/v4/api24/android/support/v4/net/TrafficStatsCompatApi24.java b/compat/api24/android/support/v4/net/TrafficStatsCompatApi24.java
similarity index 100%
rename from v4/api24/android/support/v4/net/TrafficStatsCompatApi24.java
rename to compat/api24/android/support/v4/net/TrafficStatsCompatApi24.java
diff --git a/v4/api24/android/support/v4/os/UserManagerCompatApi24.java b/compat/api24/android/support/v4/os/UserManagerCompatApi24.java
similarity index 100%
rename from v4/api24/android/support/v4/os/UserManagerCompatApi24.java
rename to compat/api24/android/support/v4/os/UserManagerCompatApi24.java
diff --git a/v4/api24/android/support/v4/view/PointerIconCompatApi24.java b/compat/api24/android/support/v4/view/PointerIconCompatApi24.java
similarity index 100%
rename from v4/api24/android/support/v4/view/PointerIconCompatApi24.java
rename to compat/api24/android/support/v4/view/PointerIconCompatApi24.java
diff --git a/v4/api24/android/support/v4/view/ViewCompatApi24.java b/compat/api24/android/support/v4/view/ViewCompatApi24.java
similarity index 100%
rename from v4/api24/android/support/v4/view/ViewCompatApi24.java
rename to compat/api24/android/support/v4/view/ViewCompatApi24.java
diff --git a/compat/build.gradle b/compat/build.gradle
new file mode 100644
index 0000000..ba84b8e
--- /dev/null
+++ b/compat/build.gradle
@@ -0,0 +1,133 @@
+apply plugin: 'com.android.library'
+archivesBaseName = 'support-compat'
+
+
+createApiSourceSets(project, gradle.ext.studioCompat.modules.compat.apiTargets)
+dependencies {
+    androidTestCompile ('com.android.support.test:runner:0.4.1') {
+        exclude module: 'support-annotations'
+    }
+    androidTestCompile ('com.android.support.test.espresso:espresso-core:2.2.1') {
+        exclude module: 'support-annotations'
+    }
+    androidTestCompile 'org.mockito:mockito-core:1.9.5'
+    androidTestCompile 'com.google.dexmaker:dexmaker:1.2'
+    androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2'
+    testCompile 'junit:junit:4.12'
+}
+
+sourceCompatibility = JavaVersion.VERSION_1_7
+targetCompatibility = JavaVersion.VERSION_1_7
+setApiModuleDependencies(project, dependencies, gradle.ext.studioCompat.modules.compat.dependencies)
+
+android {
+    compileSdkVersion 9
+
+    defaultConfig {
+        minSdkVersion 9
+        // TODO: get target from branch
+        //targetSdkVersion 19
+
+        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+    }
+
+    sourceSets {
+        main.manifest.srcFile 'AndroidManifest.xml'
+        main.java.srcDirs = ['java']
+        main.aidl.srcDirs = ['java']
+
+        androidTest.setRoot('tests')
+        androidTest.java.srcDir 'tests/java'
+        androidTest.res.srcDir 'tests/res'
+        androidTest.manifest.srcFile 'tests/AndroidManifest.xml'
+    }
+
+    lintOptions {
+        // TODO: fix errors and reenable.
+        abortOnError false
+    }
+
+    compileOptions {
+        sourceCompatibility JavaVersion.VERSION_1_7
+        targetCompatibility JavaVersion.VERSION_1_7
+    }
+
+    testOptions {
+        unitTests.returnDefaultValues = true
+        compileSdkVersion project.ext.currentSdk
+    }
+}
+
+android.libraryVariants.all { variant ->
+    def name = variant.buildType.name
+
+    if (name.equals(com.android.builder.core.BuilderConstants.DEBUG)) {
+        return; // Skip debug builds.
+    }
+    def suffix = name.capitalize()
+
+    def jarTask = project.tasks.create(name: "jar${suffix}", type: Jar){
+        dependsOn variant.javaCompile
+        from variant.javaCompile.destinationDir
+        from 'LICENSE.txt'
+    }
+    def javadocTask = project.tasks.create(name: "javadoc${suffix}", type: Javadoc) {
+        source android.sourceSets.main.java
+        classpath = files(variant.javaCompile.classpath.files) + files(
+                "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar")
+    }
+
+    def javadocJarTask = project.tasks.create(name: "javadocJar${suffix}", type: Jar) {
+        classifier = 'javadoc'
+        from 'build/docs/javadoc'
+    }
+
+    def sourcesJarTask = project.tasks.create(name: "sourceJar${suffix}", type: Jar) {
+        classifier = 'sources'
+        from android.sourceSets.main.java.srcDirs
+        exclude('android/content/pm/**')
+        exclude('android/service/media/**')
+    }
+
+    project.ext.allSS.each { ss ->
+        javadocTask.source ss.java
+        sourcesJarTask.from ss.java.srcDirs
+    }
+
+    artifacts.add('archives', javadocJarTask);
+    artifacts.add('archives', sourcesJarTask);
+}
+
+uploadArchives {
+    repositories {
+        mavenDeployer {
+            repository(url: uri(rootProject.ext.supportRepoOut)) {
+            }
+
+            pom.project {
+                name 'Android Support Library compat'
+                description "The Support Library is a static library that you can add to your Android application in order to use APIs that are either not available for older platform versions or utility APIs that aren't a part of the framework APIs. Compatible on devices running API 4 or later."
+                url 'http://developer.android.com/tools/extras/support-library.html'
+                inceptionYear '2011'
+
+                licenses {
+                    license {
+                        name 'The Apache Software License, Version 2.0'
+                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+                        distribution 'repo'
+                    }
+                }
+
+                scm {
+                    url "http://source.android.com"
+                    connection "scm:git:https://android.googlesource.com/platform/frameworks/support"
+                }
+                developers {
+                    developer {
+                        name 'The Android Open Source Project'
+                    }
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/v4/donut/android/support/v4/animation/AnimatorListenerCompat.java b/compat/donut/android/support/v4/animation/AnimatorListenerCompat.java
similarity index 100%
rename from v4/donut/android/support/v4/animation/AnimatorListenerCompat.java
rename to compat/donut/android/support/v4/animation/AnimatorListenerCompat.java
diff --git a/v4/donut/android/support/v4/animation/AnimatorProvider.java b/compat/donut/android/support/v4/animation/AnimatorProvider.java
similarity index 100%
rename from v4/donut/android/support/v4/animation/AnimatorProvider.java
rename to compat/donut/android/support/v4/animation/AnimatorProvider.java
diff --git a/v4/donut/android/support/v4/animation/AnimatorUpdateListenerCompat.java b/compat/donut/android/support/v4/animation/AnimatorUpdateListenerCompat.java
similarity index 100%
rename from v4/donut/android/support/v4/animation/AnimatorUpdateListenerCompat.java
rename to compat/donut/android/support/v4/animation/AnimatorUpdateListenerCompat.java
diff --git a/v4/donut/android/support/v4/animation/DonutAnimatorCompatProvider.java b/compat/donut/android/support/v4/animation/DonutAnimatorCompatProvider.java
similarity index 100%
rename from v4/donut/android/support/v4/animation/DonutAnimatorCompatProvider.java
rename to compat/donut/android/support/v4/animation/DonutAnimatorCompatProvider.java
diff --git a/v4/donut/android/support/v4/animation/ValueAnimatorCompat.java b/compat/donut/android/support/v4/animation/ValueAnimatorCompat.java
similarity index 100%
rename from v4/donut/android/support/v4/animation/ValueAnimatorCompat.java
rename to compat/donut/android/support/v4/animation/ValueAnimatorCompat.java
diff --git a/v4/donut/android/support/v4/app/BundleCompatDonut.java b/compat/donut/android/support/v4/app/BundleCompatDonut.java
similarity index 100%
rename from v4/donut/android/support/v4/app/BundleCompatDonut.java
rename to compat/donut/android/support/v4/app/BundleCompatDonut.java
diff --git a/v4/donut/android/support/v4/content/res/ConfigurationHelperDonut.java b/compat/donut/android/support/v4/content/res/ConfigurationHelperDonut.java
similarity index 100%
rename from v4/donut/android/support/v4/content/res/ConfigurationHelperDonut.java
rename to compat/donut/android/support/v4/content/res/ConfigurationHelperDonut.java
diff --git a/v4/donut/android/support/v4/graphics/drawable/DrawableCompatBase.java b/compat/donut/android/support/v4/graphics/drawable/DrawableCompatBase.java
similarity index 100%
rename from v4/donut/android/support/v4/graphics/drawable/DrawableCompatBase.java
rename to compat/donut/android/support/v4/graphics/drawable/DrawableCompatBase.java
diff --git a/v4/donut/android/support/v4/graphics/drawable/DrawableWrapper.java b/compat/donut/android/support/v4/graphics/drawable/DrawableWrapper.java
similarity index 100%
rename from v4/donut/android/support/v4/graphics/drawable/DrawableWrapper.java
rename to compat/donut/android/support/v4/graphics/drawable/DrawableWrapper.java
diff --git a/v4/donut/android/support/v4/graphics/drawable/DrawableWrapperDonut.java b/compat/donut/android/support/v4/graphics/drawable/DrawableWrapperDonut.java
similarity index 100%
rename from v4/donut/android/support/v4/graphics/drawable/DrawableWrapperDonut.java
rename to compat/donut/android/support/v4/graphics/drawable/DrawableWrapperDonut.java
diff --git a/v4/donut/android/support/v4/graphics/drawable/TintAwareDrawable.java b/compat/donut/android/support/v4/graphics/drawable/TintAwareDrawable.java
similarity index 100%
rename from v4/donut/android/support/v4/graphics/drawable/TintAwareDrawable.java
rename to compat/donut/android/support/v4/graphics/drawable/TintAwareDrawable.java
diff --git a/v4/donut/android/support/v4/os/BuildCompat.java b/compat/donut/android/support/v4/os/BuildCompat.java
similarity index 100%
rename from v4/donut/android/support/v4/os/BuildCompat.java
rename to compat/donut/android/support/v4/os/BuildCompat.java
diff --git a/v4/donut/android/support/v4/view/LayoutInflaterCompatBase.java b/compat/donut/android/support/v4/view/LayoutInflaterCompatBase.java
similarity index 100%
rename from v4/donut/android/support/v4/view/LayoutInflaterCompatBase.java
rename to compat/donut/android/support/v4/view/LayoutInflaterCompatBase.java
diff --git a/v4/donut/android/support/v4/view/LayoutInflaterFactory.java b/compat/donut/android/support/v4/view/LayoutInflaterFactory.java
similarity index 100%
rename from v4/donut/android/support/v4/view/LayoutInflaterFactory.java
rename to compat/donut/android/support/v4/view/LayoutInflaterFactory.java
diff --git a/v4/donut/android/support/v4/view/OnApplyWindowInsetsListener.java b/compat/donut/android/support/v4/view/OnApplyWindowInsetsListener.java
similarity index 100%
rename from v4/donut/android/support/v4/view/OnApplyWindowInsetsListener.java
rename to compat/donut/android/support/v4/view/OnApplyWindowInsetsListener.java
diff --git a/v4/donut/android/support/v4/view/TintableBackgroundView.java b/compat/donut/android/support/v4/view/TintableBackgroundView.java
similarity index 100%
rename from v4/donut/android/support/v4/view/TintableBackgroundView.java
rename to compat/donut/android/support/v4/view/TintableBackgroundView.java
diff --git a/v4/donut/android/support/v4/view/ViewCompatBase.java b/compat/donut/android/support/v4/view/ViewCompatBase.java
similarity index 100%
rename from v4/donut/android/support/v4/view/ViewCompatBase.java
rename to compat/donut/android/support/v4/view/ViewCompatBase.java
diff --git a/v4/donut/android/support/v4/view/WindowInsetsCompat.java b/compat/donut/android/support/v4/view/WindowInsetsCompat.java
similarity index 100%
rename from v4/donut/android/support/v4/view/WindowInsetsCompat.java
rename to compat/donut/android/support/v4/view/WindowInsetsCompat.java
diff --git a/v4/donut/android/support/v4/view/animation/PathInterpolatorCompatBase.java b/compat/donut/android/support/v4/view/animation/PathInterpolatorCompatBase.java
similarity index 100%
rename from v4/donut/android/support/v4/view/animation/PathInterpolatorCompatBase.java
rename to compat/donut/android/support/v4/view/animation/PathInterpolatorCompatBase.java
diff --git a/v4/donut/android/support/v4/view/animation/PathInterpolatorDonut.java b/compat/donut/android/support/v4/view/animation/PathInterpolatorDonut.java
similarity index 100%
rename from v4/donut/android/support/v4/view/animation/PathInterpolatorDonut.java
rename to compat/donut/android/support/v4/view/animation/PathInterpolatorDonut.java
diff --git a/v4/donut/android/support/v4/widget/CompoundButtonCompatDonut.java b/compat/donut/android/support/v4/widget/CompoundButtonCompatDonut.java
similarity index 100%
rename from v4/donut/android/support/v4/widget/CompoundButtonCompatDonut.java
rename to compat/donut/android/support/v4/widget/CompoundButtonCompatDonut.java
diff --git a/v4/donut/android/support/v4/widget/ListViewCompatDonut.java b/compat/donut/android/support/v4/widget/ListViewCompatDonut.java
similarity index 100%
rename from v4/donut/android/support/v4/widget/ListViewCompatDonut.java
rename to compat/donut/android/support/v4/widget/ListViewCompatDonut.java
diff --git a/v4/donut/android/support/v4/widget/TintableCompoundButton.java b/compat/donut/android/support/v4/widget/TintableCompoundButton.java
similarity index 100%
rename from v4/donut/android/support/v4/widget/TintableCompoundButton.java
rename to compat/donut/android/support/v4/widget/TintableCompoundButton.java
diff --git a/v4/eclair-mr1/android/support/v4/view/ViewCompatEclairMr1.java b/compat/eclair-mr1/android/support/v4/view/ViewCompatEclairMr1.java
similarity index 100%
rename from v4/eclair-mr1/android/support/v4/view/ViewCompatEclairMr1.java
rename to compat/eclair-mr1/android/support/v4/view/ViewCompatEclairMr1.java
diff --git a/v4/eclair/android/support/v4/app/ActivityCompatEclair.java b/compat/eclair/android/support/v4/app/ActivityCompatEclair.java
similarity index 100%
rename from v4/eclair/android/support/v4/app/ActivityCompatEclair.java
rename to compat/eclair/android/support/v4/app/ActivityCompatEclair.java
diff --git a/v4/eclair/android/support/v4/graphics/drawable/DrawableCompatEclair.java b/compat/eclair/android/support/v4/graphics/drawable/DrawableCompatEclair.java
similarity index 100%
rename from v4/eclair/android/support/v4/graphics/drawable/DrawableCompatEclair.java
rename to compat/eclair/android/support/v4/graphics/drawable/DrawableCompatEclair.java
diff --git a/v4/eclair/android/support/v4/graphics/drawable/DrawableWrapperEclair.java b/compat/eclair/android/support/v4/graphics/drawable/DrawableWrapperEclair.java
similarity index 100%
rename from v4/eclair/android/support/v4/graphics/drawable/DrawableWrapperEclair.java
rename to compat/eclair/android/support/v4/graphics/drawable/DrawableWrapperEclair.java
diff --git a/v4/eclair/android/support/v4/view/KeyEventCompatEclair.java b/compat/eclair/android/support/v4/view/KeyEventCompatEclair.java
similarity index 100%
rename from v4/eclair/android/support/v4/view/KeyEventCompatEclair.java
rename to compat/eclair/android/support/v4/view/KeyEventCompatEclair.java
diff --git a/v4/eclair/android/support/v4/view/MotionEventCompatEclair.java b/compat/eclair/android/support/v4/view/MotionEventCompatEclair.java
similarity index 100%
rename from v4/eclair/android/support/v4/view/MotionEventCompatEclair.java
rename to compat/eclair/android/support/v4/view/MotionEventCompatEclair.java
diff --git a/v4/froyo/android/support/v4/content/ContextCompatFroyo.java b/compat/froyo/android/support/v4/content/ContextCompatFroyo.java
similarity index 100%
rename from v4/froyo/android/support/v4/content/ContextCompatFroyo.java
rename to compat/froyo/android/support/v4/content/ContextCompatFroyo.java
diff --git a/v4/froyo/android/support/v4/view/ViewConfigurationCompatFroyo.java b/compat/froyo/android/support/v4/view/ViewConfigurationCompatFroyo.java
similarity index 100%
rename from v4/froyo/android/support/v4/view/ViewConfigurationCompatFroyo.java
rename to compat/froyo/android/support/v4/view/ViewConfigurationCompatFroyo.java
diff --git a/v4/gingerbread/android/support/v4/content/EditorCompatGingerbread.java b/compat/gingerbread/android/support/v4/content/EditorCompatGingerbread.java
similarity index 100%
rename from v4/gingerbread/android/support/v4/content/EditorCompatGingerbread.java
rename to compat/gingerbread/android/support/v4/content/EditorCompatGingerbread.java
diff --git a/v4/gingerbread/android/support/v4/net/ConnectivityManagerCompatGingerbread.java b/compat/gingerbread/android/support/v4/net/ConnectivityManagerCompatGingerbread.java
similarity index 100%
rename from v4/gingerbread/android/support/v4/net/ConnectivityManagerCompatGingerbread.java
rename to compat/gingerbread/android/support/v4/net/ConnectivityManagerCompatGingerbread.java
diff --git a/v4/gingerbread/android/support/v4/view/MotionEventCompatGingerbread.java b/compat/gingerbread/android/support/v4/view/MotionEventCompatGingerbread.java
similarity index 100%
rename from v4/gingerbread/android/support/v4/view/MotionEventCompatGingerbread.java
rename to compat/gingerbread/android/support/v4/view/MotionEventCompatGingerbread.java
diff --git a/v4/gingerbread/android/support/v4/view/ViewCompatGingerbread.java b/compat/gingerbread/android/support/v4/view/ViewCompatGingerbread.java
similarity index 100%
rename from v4/gingerbread/android/support/v4/view/ViewCompatGingerbread.java
rename to compat/gingerbread/android/support/v4/view/ViewCompatGingerbread.java
diff --git a/v4/gingerbread/android/support/v4/widget/PopupWindowCompatGingerbread.java b/compat/gingerbread/android/support/v4/widget/PopupWindowCompatGingerbread.java
similarity index 100%
rename from v4/gingerbread/android/support/v4/widget/PopupWindowCompatGingerbread.java
rename to compat/gingerbread/android/support/v4/widget/PopupWindowCompatGingerbread.java
diff --git a/v4/gingerbread/android/support/v4/widget/ScrollerCompatGingerbread.java b/compat/gingerbread/android/support/v4/widget/ScrollerCompatGingerbread.java
similarity index 100%
rename from v4/gingerbread/android/support/v4/widget/ScrollerCompatGingerbread.java
rename to compat/gingerbread/android/support/v4/widget/ScrollerCompatGingerbread.java
diff --git a/v4/honeycomb/android/support/v4/app/ActivityCompatHoneycomb.java b/compat/honeycomb/android/support/v4/app/ActivityCompatHoneycomb.java
similarity index 100%
rename from v4/honeycomb/android/support/v4/app/ActivityCompatHoneycomb.java
rename to compat/honeycomb/android/support/v4/app/ActivityCompatHoneycomb.java
diff --git a/v4/honeycomb/android/support/v4/content/ContextCompatHoneycomb.java b/compat/honeycomb/android/support/v4/content/ContextCompatHoneycomb.java
similarity index 100%
rename from v4/honeycomb/android/support/v4/content/ContextCompatHoneycomb.java
rename to compat/honeycomb/android/support/v4/content/ContextCompatHoneycomb.java
diff --git a/v4/honeycomb/android/support/v4/content/ExecutorCompatHoneycomb.java b/compat/honeycomb/android/support/v4/content/ExecutorCompatHoneycomb.java
similarity index 100%
rename from v4/honeycomb/android/support/v4/content/ExecutorCompatHoneycomb.java
rename to compat/honeycomb/android/support/v4/content/ExecutorCompatHoneycomb.java
diff --git a/v4/honeycomb/android/support/v4/content/IntentCompatHoneycomb.java b/compat/honeycomb/android/support/v4/content/IntentCompatHoneycomb.java
similarity index 100%
rename from v4/honeycomb/android/support/v4/content/IntentCompatHoneycomb.java
rename to compat/honeycomb/android/support/v4/content/IntentCompatHoneycomb.java
diff --git a/v4/honeycomb/android/support/v4/graphics/drawable/DrawableCompatHoneycomb.java b/compat/honeycomb/android/support/v4/graphics/drawable/DrawableCompatHoneycomb.java
similarity index 100%
rename from v4/honeycomb/android/support/v4/graphics/drawable/DrawableCompatHoneycomb.java
rename to compat/honeycomb/android/support/v4/graphics/drawable/DrawableCompatHoneycomb.java
diff --git a/v4/honeycomb/android/support/v4/graphics/drawable/DrawableWrapperHoneycomb.java b/compat/honeycomb/android/support/v4/graphics/drawable/DrawableWrapperHoneycomb.java
similarity index 100%
rename from v4/honeycomb/android/support/v4/graphics/drawable/DrawableWrapperHoneycomb.java
rename to compat/honeycomb/android/support/v4/graphics/drawable/DrawableWrapperHoneycomb.java
diff --git a/v4/honeycomb/android/support/v4/os/AsyncTaskCompatHoneycomb.java b/compat/honeycomb/android/support/v4/os/AsyncTaskCompatHoneycomb.java
similarity index 100%
rename from v4/honeycomb/android/support/v4/os/AsyncTaskCompatHoneycomb.java
rename to compat/honeycomb/android/support/v4/os/AsyncTaskCompatHoneycomb.java
diff --git a/v4/honeycomb/android/support/v4/view/KeyEventCompatHoneycomb.java b/compat/honeycomb/android/support/v4/view/KeyEventCompatHoneycomb.java
similarity index 100%
rename from v4/honeycomb/android/support/v4/view/KeyEventCompatHoneycomb.java
rename to compat/honeycomb/android/support/v4/view/KeyEventCompatHoneycomb.java
diff --git a/v4/honeycomb/android/support/v4/view/LayoutInflaterCompatHC.java b/compat/honeycomb/android/support/v4/view/LayoutInflaterCompatHC.java
similarity index 100%
rename from v4/honeycomb/android/support/v4/view/LayoutInflaterCompatHC.java
rename to compat/honeycomb/android/support/v4/view/LayoutInflaterCompatHC.java
diff --git a/v4/honeycomb/android/support/v4/view/MenuItemCompatHoneycomb.java b/compat/honeycomb/android/support/v4/view/MenuItemCompatHoneycomb.java
similarity index 100%
rename from v4/honeycomb/android/support/v4/view/MenuItemCompatHoneycomb.java
rename to compat/honeycomb/android/support/v4/view/MenuItemCompatHoneycomb.java
diff --git a/v4/honeycomb/android/support/v4/view/VelocityTrackerCompatHoneycomb.java b/compat/honeycomb/android/support/v4/view/VelocityTrackerCompatHoneycomb.java
similarity index 100%
rename from v4/honeycomb/android/support/v4/view/VelocityTrackerCompatHoneycomb.java
rename to compat/honeycomb/android/support/v4/view/VelocityTrackerCompatHoneycomb.java
diff --git a/v4/honeycomb/android/support/v4/view/ViewCompatHC.java b/compat/honeycomb/android/support/v4/view/ViewCompatHC.java
similarity index 100%
rename from v4/honeycomb/android/support/v4/view/ViewCompatHC.java
rename to compat/honeycomb/android/support/v4/view/ViewCompatHC.java
diff --git a/v4/honeycomb/android/support/v4/view/ViewGroupCompatHC.java b/compat/honeycomb/android/support/v4/view/ViewGroupCompatHC.java
similarity index 100%
rename from v4/honeycomb/android/support/v4/view/ViewGroupCompatHC.java
rename to compat/honeycomb/android/support/v4/view/ViewGroupCompatHC.java
diff --git a/v4/honeycomb/android/support/v4/widget/SearchViewCompatHoneycomb.java b/compat/honeycomb/android/support/v4/widget/SearchViewCompatHoneycomb.java
similarity index 100%
rename from v4/honeycomb/android/support/v4/widget/SearchViewCompatHoneycomb.java
rename to compat/honeycomb/android/support/v4/widget/SearchViewCompatHoneycomb.java
diff --git a/v4/honeycomb_mr1/android/support/v4/animation/HoneycombMr1AnimatorCompatProvider.java b/compat/honeycomb_mr1/android/support/v4/animation/HoneycombMr1AnimatorCompatProvider.java
similarity index 100%
rename from v4/honeycomb_mr1/android/support/v4/animation/HoneycombMr1AnimatorCompatProvider.java
rename to compat/honeycomb_mr1/android/support/v4/animation/HoneycombMr1AnimatorCompatProvider.java
diff --git a/v4/honeycomb_mr1/android/support/v4/graphics/BitmapCompatHoneycombMr1.java b/compat/honeycomb_mr1/android/support/v4/graphics/BitmapCompatHoneycombMr1.java
similarity index 100%
rename from v4/honeycomb_mr1/android/support/v4/graphics/BitmapCompatHoneycombMr1.java
rename to compat/honeycomb_mr1/android/support/v4/graphics/BitmapCompatHoneycombMr1.java
diff --git a/v4/honeycomb_mr1/android/support/v4/view/MotionEventCompatHoneycombMr1.java b/compat/honeycomb_mr1/android/support/v4/view/MotionEventCompatHoneycombMr1.java
similarity index 100%
rename from v4/honeycomb_mr1/android/support/v4/view/MotionEventCompatHoneycombMr1.java
rename to compat/honeycomb_mr1/android/support/v4/view/MotionEventCompatHoneycombMr1.java
diff --git a/v4/honeycomb_mr2/android/support/v4/content/res/ConfigurationHelperHoneycombMr2.java b/compat/honeycomb_mr2/android/support/v4/content/res/ConfigurationHelperHoneycombMr2.java
similarity index 100%
rename from v4/honeycomb_mr2/android/support/v4/content/res/ConfigurationHelperHoneycombMr2.java
rename to compat/honeycomb_mr2/android/support/v4/content/res/ConfigurationHelperHoneycombMr2.java
diff --git a/v4/honeycomb_mr2/android/support/v4/net/ConnectivityManagerCompatHoneycombMR2.java b/compat/honeycomb_mr2/android/support/v4/net/ConnectivityManagerCompatHoneycombMR2.java
similarity index 100%
rename from v4/honeycomb_mr2/android/support/v4/net/ConnectivityManagerCompatHoneycombMR2.java
rename to compat/honeycomb_mr2/android/support/v4/net/ConnectivityManagerCompatHoneycombMR2.java
diff --git a/v4/honeycomb_mr2/android/support/v4/os/ParcelableCompatCreatorCallbacks.java b/compat/honeycomb_mr2/android/support/v4/os/ParcelableCompatCreatorCallbacks.java
similarity index 100%
rename from v4/honeycomb_mr2/android/support/v4/os/ParcelableCompatCreatorCallbacks.java
rename to compat/honeycomb_mr2/android/support/v4/os/ParcelableCompatCreatorCallbacks.java
diff --git a/v4/honeycomb_mr2/android/support/v4/os/ParcelableCompatHoneycombMR2.java b/compat/honeycomb_mr2/android/support/v4/os/ParcelableCompatHoneycombMR2.java
similarity index 100%
rename from v4/honeycomb_mr2/android/support/v4/os/ParcelableCompatHoneycombMR2.java
rename to compat/honeycomb_mr2/android/support/v4/os/ParcelableCompatHoneycombMR2.java
diff --git a/v4/ics-mr1/android/support/v4/content/IntentCompatIcsMr1.java b/compat/ics-mr1/android/support/v4/content/IntentCompatIcsMr1.java
similarity index 100%
rename from v4/ics-mr1/android/support/v4/content/IntentCompatIcsMr1.java
rename to compat/ics-mr1/android/support/v4/content/IntentCompatIcsMr1.java
diff --git a/v4/ics-mr1/android/support/v4/content/res/ResourcesCompatIcsMr1.java b/compat/ics-mr1/android/support/v4/content/res/ResourcesCompatIcsMr1.java
similarity index 100%
rename from v4/ics-mr1/android/support/v4/content/res/ResourcesCompatIcsMr1.java
rename to compat/ics-mr1/android/support/v4/content/res/ResourcesCompatIcsMr1.java
diff --git a/v4/ics-mr1/android/support/v4/view/ViewCompatICSMr1.java b/compat/ics-mr1/android/support/v4/view/ViewCompatICSMr1.java
similarity index 100%
rename from v4/ics-mr1/android/support/v4/view/ViewCompatICSMr1.java
rename to compat/ics-mr1/android/support/v4/view/ViewCompatICSMr1.java
diff --git a/v4/ics-mr1/android/support/v4/view/accessibility/AccessibilityRecordCompatIcsMr1.java b/compat/ics-mr1/android/support/v4/view/accessibility/AccessibilityRecordCompatIcsMr1.java
similarity index 100%
rename from v4/ics-mr1/android/support/v4/view/accessibility/AccessibilityRecordCompatIcsMr1.java
rename to compat/ics-mr1/android/support/v4/view/accessibility/AccessibilityRecordCompatIcsMr1.java
diff --git a/v4/ics/android/support/v4/accessibilityservice/AccessibilityServiceInfoCompatIcs.java b/compat/ics/android/support/v4/accessibilityservice/AccessibilityServiceInfoCompatIcs.java
similarity index 100%
rename from v4/ics/android/support/v4/accessibilityservice/AccessibilityServiceInfoCompatIcs.java
rename to compat/ics/android/support/v4/accessibilityservice/AccessibilityServiceInfoCompatIcs.java
diff --git a/v4/ics/android/support/v4/app/ShareCompatICS.java b/compat/ics/android/support/v4/app/ShareCompatICS.java
similarity index 100%
rename from v4/ics/android/support/v4/app/ShareCompatICS.java
rename to compat/ics/android/support/v4/app/ShareCompatICS.java
diff --git a/v4/ics/android/support/v4/net/DatagramSocketWrapper.java b/compat/ics/android/support/v4/net/DatagramSocketWrapper.java
similarity index 100%
rename from v4/ics/android/support/v4/net/DatagramSocketWrapper.java
rename to compat/ics/android/support/v4/net/DatagramSocketWrapper.java
diff --git a/v4/ics/android/support/v4/net/TrafficStatsCompatIcs.java b/compat/ics/android/support/v4/net/TrafficStatsCompatIcs.java
similarity index 100%
rename from v4/ics/android/support/v4/net/TrafficStatsCompatIcs.java
rename to compat/ics/android/support/v4/net/TrafficStatsCompatIcs.java
diff --git a/v4/ics/android/support/v4/text/ICUCompatIcs.java b/compat/ics/android/support/v4/text/ICUCompatIcs.java
similarity index 100%
rename from v4/ics/android/support/v4/text/ICUCompatIcs.java
rename to compat/ics/android/support/v4/text/ICUCompatIcs.java
diff --git a/v4/ics/android/support/v4/view/AccessibilityDelegateCompatIcs.java b/compat/ics/android/support/v4/view/AccessibilityDelegateCompatIcs.java
similarity index 100%
rename from v4/ics/android/support/v4/view/AccessibilityDelegateCompatIcs.java
rename to compat/ics/android/support/v4/view/AccessibilityDelegateCompatIcs.java
diff --git a/v4/ics/android/support/v4/view/MenuItemCompatIcs.java b/compat/ics/android/support/v4/view/MenuItemCompatIcs.java
similarity index 100%
rename from v4/ics/android/support/v4/view/MenuItemCompatIcs.java
rename to compat/ics/android/support/v4/view/MenuItemCompatIcs.java
diff --git a/v4/ics/android/support/v4/view/MotionEventCompatICS.java b/compat/ics/android/support/v4/view/MotionEventCompatICS.java
similarity index 100%
rename from v4/ics/android/support/v4/view/MotionEventCompatICS.java
rename to compat/ics/android/support/v4/view/MotionEventCompatICS.java
diff --git a/v4/ics/android/support/v4/view/ViewCompatICS.java b/compat/ics/android/support/v4/view/ViewCompatICS.java
similarity index 100%
rename from v4/ics/android/support/v4/view/ViewCompatICS.java
rename to compat/ics/android/support/v4/view/ViewCompatICS.java
diff --git a/v4/ics/android/support/v4/view/ViewConfigurationCompatICS.java b/compat/ics/android/support/v4/view/ViewConfigurationCompatICS.java
similarity index 100%
rename from v4/ics/android/support/v4/view/ViewConfigurationCompatICS.java
rename to compat/ics/android/support/v4/view/ViewConfigurationCompatICS.java
diff --git a/v4/ics/android/support/v4/view/ViewGroupCompatIcs.java b/compat/ics/android/support/v4/view/ViewGroupCompatIcs.java
similarity index 100%
rename from v4/ics/android/support/v4/view/ViewGroupCompatIcs.java
rename to compat/ics/android/support/v4/view/ViewGroupCompatIcs.java
diff --git a/v4/ics/android/support/v4/view/ViewParentCompatICS.java b/compat/ics/android/support/v4/view/ViewParentCompatICS.java
similarity index 100%
rename from v4/ics/android/support/v4/view/ViewParentCompatICS.java
rename to compat/ics/android/support/v4/view/ViewParentCompatICS.java
diff --git a/v4/ics/android/support/v4/view/ViewPropertyAnimatorCompatICS.java b/compat/ics/android/support/v4/view/ViewPropertyAnimatorCompatICS.java
similarity index 100%
rename from v4/ics/android/support/v4/view/ViewPropertyAnimatorCompatICS.java
rename to compat/ics/android/support/v4/view/ViewPropertyAnimatorCompatICS.java
diff --git a/v4/ics/android/support/v4/view/ViewPropertyAnimatorListener.java b/compat/ics/android/support/v4/view/ViewPropertyAnimatorListener.java
similarity index 100%
rename from v4/ics/android/support/v4/view/ViewPropertyAnimatorListener.java
rename to compat/ics/android/support/v4/view/ViewPropertyAnimatorListener.java
diff --git a/v4/java/android/support/v4/view/ViewPropertyAnimatorListenerAdapter.java b/compat/ics/android/support/v4/view/ViewPropertyAnimatorListenerAdapter.java
similarity index 100%
rename from v4/java/android/support/v4/view/ViewPropertyAnimatorListenerAdapter.java
rename to compat/ics/android/support/v4/view/ViewPropertyAnimatorListenerAdapter.java
diff --git a/v4/ics/android/support/v4/view/ViewPropertyAnimatorUpdateListener.java b/compat/ics/android/support/v4/view/ViewPropertyAnimatorUpdateListener.java
similarity index 100%
rename from v4/ics/android/support/v4/view/ViewPropertyAnimatorUpdateListener.java
rename to compat/ics/android/support/v4/view/ViewPropertyAnimatorUpdateListener.java
diff --git a/v4/ics/android/support/v4/view/accessibility/AccessibilityEventCompatIcs.java b/compat/ics/android/support/v4/view/accessibility/AccessibilityEventCompatIcs.java
similarity index 100%
rename from v4/ics/android/support/v4/view/accessibility/AccessibilityEventCompatIcs.java
rename to compat/ics/android/support/v4/view/accessibility/AccessibilityEventCompatIcs.java
diff --git a/v4/ics/android/support/v4/view/accessibility/AccessibilityManagerCompatIcs.java b/compat/ics/android/support/v4/view/accessibility/AccessibilityManagerCompatIcs.java
similarity index 100%
rename from v4/ics/android/support/v4/view/accessibility/AccessibilityManagerCompatIcs.java
rename to compat/ics/android/support/v4/view/accessibility/AccessibilityManagerCompatIcs.java
diff --git a/v4/ics/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatIcs.java b/compat/ics/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatIcs.java
similarity index 95%
rename from v4/ics/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatIcs.java
rename to compat/ics/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatIcs.java
index 367f995..a3428f4 100644
--- a/v4/ics/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatIcs.java
+++ b/compat/ics/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatIcs.java
@@ -17,16 +17,17 @@
 package android.support.v4.view.accessibility;
 
 import android.graphics.Rect;
+import android.text.TextUtils;
 import android.view.View;
 import android.view.accessibility.AccessibilityNodeInfo;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
  * ICS specific AccessibilityNodeInfo API implementation.
  */
 class AccessibilityNodeInfoCompatIcs {
-
     public static Object obtain() {
         return AccessibilityNodeInfo.obtain();
     }
@@ -97,6 +98,13 @@
         return ((AccessibilityNodeInfo) info).getWindowId();
     }
 
+    public static boolean hasImage(Object info) {
+        CharSequence className = getClassName(info);
+        return (!TextUtils.isEmpty(className) &&
+                (className.equals("android.widget.ImageButton") ||
+                 className.equals("android.widget.ImageView")));
+    }
+
     public static boolean isCheckable(Object info) {
         return ((AccessibilityNodeInfo) info).isCheckable();
     }
@@ -216,4 +224,5 @@
     public static void recycle(Object info) {
         ((AccessibilityNodeInfo) info).recycle();
     }
+
 }
diff --git a/v4/ics/android/support/v4/view/accessibility/AccessibilityRecordCompatIcs.java b/compat/ics/android/support/v4/view/accessibility/AccessibilityRecordCompatIcs.java
similarity index 100%
rename from v4/ics/android/support/v4/view/accessibility/AccessibilityRecordCompatIcs.java
rename to compat/ics/android/support/v4/view/accessibility/AccessibilityRecordCompatIcs.java
diff --git a/v4/ics/android/support/v4/widget/EdgeEffectCompatIcs.java b/compat/ics/android/support/v4/widget/EdgeEffectCompatIcs.java
similarity index 100%
rename from v4/ics/android/support/v4/widget/EdgeEffectCompatIcs.java
rename to compat/ics/android/support/v4/widget/EdgeEffectCompatIcs.java
diff --git a/v4/ics/android/support/v4/widget/ScrollerCompatIcs.java b/compat/ics/android/support/v4/widget/ScrollerCompatIcs.java
similarity index 100%
rename from v4/ics/android/support/v4/widget/ScrollerCompatIcs.java
rename to compat/ics/android/support/v4/widget/ScrollerCompatIcs.java
diff --git a/v4/ics/android/support/v4/widget/SearchViewCompatIcs.java b/compat/ics/android/support/v4/widget/SearchViewCompatIcs.java
similarity index 100%
rename from v4/ics/android/support/v4/widget/SearchViewCompatIcs.java
rename to compat/ics/android/support/v4/widget/SearchViewCompatIcs.java
diff --git a/v4/java/android/support/v4/accessibilityservice/AccessibilityServiceInfoCompat.java b/compat/java/android/support/v4/accessibilityservice/AccessibilityServiceInfoCompat.java
similarity index 100%
rename from v4/java/android/support/v4/accessibilityservice/AccessibilityServiceInfoCompat.java
rename to compat/java/android/support/v4/accessibilityservice/AccessibilityServiceInfoCompat.java
diff --git a/v4/java/android/support/v4/accessibilityservice/package.html b/compat/java/android/support/v4/accessibilityservice/package.html
similarity index 100%
rename from v4/java/android/support/v4/accessibilityservice/package.html
rename to compat/java/android/support/v4/accessibilityservice/package.html
diff --git a/v4/java/android/support/v4/animation/AnimatorCompatHelper.java b/compat/java/android/support/v4/animation/AnimatorCompatHelper.java
similarity index 100%
rename from v4/java/android/support/v4/animation/AnimatorCompatHelper.java
rename to compat/java/android/support/v4/animation/AnimatorCompatHelper.java
diff --git a/v4/java/android/support/v4/app/ActivityCompat.java b/compat/java/android/support/v4/app/ActivityCompat.java
similarity index 100%
rename from v4/java/android/support/v4/app/ActivityCompat.java
rename to compat/java/android/support/v4/app/ActivityCompat.java
diff --git a/v4/java/android/support/v4/app/ActivityManagerCompat.java b/compat/java/android/support/v4/app/ActivityManagerCompat.java
similarity index 100%
rename from v4/java/android/support/v4/app/ActivityManagerCompat.java
rename to compat/java/android/support/v4/app/ActivityManagerCompat.java
diff --git a/v4/java/android/support/v4/app/ActivityOptionsCompat.java b/compat/java/android/support/v4/app/ActivityOptionsCompat.java
similarity index 100%
rename from v4/java/android/support/v4/app/ActivityOptionsCompat.java
rename to compat/java/android/support/v4/app/ActivityOptionsCompat.java
diff --git a/v4/java/android/support/v4/app/AppOpsManagerCompat.java b/compat/java/android/support/v4/app/AppOpsManagerCompat.java
similarity index 100%
rename from v4/java/android/support/v4/app/AppOpsManagerCompat.java
rename to compat/java/android/support/v4/app/AppOpsManagerCompat.java
diff --git a/v4/java/android/support/v4/app/BundleCompat.java b/compat/java/android/support/v4/app/BundleCompat.java
similarity index 100%
rename from v4/java/android/support/v4/app/BundleCompat.java
rename to compat/java/android/support/v4/app/BundleCompat.java
diff --git a/v4/java/android/support/v4/app/ServiceCompat.java b/compat/java/android/support/v4/app/ServiceCompat.java
similarity index 100%
rename from v4/java/android/support/v4/app/ServiceCompat.java
rename to compat/java/android/support/v4/app/ServiceCompat.java
diff --git a/v4/java/android/support/v4/app/ShareCompat.java b/compat/java/android/support/v4/app/ShareCompat.java
similarity index 100%
rename from v4/java/android/support/v4/app/ShareCompat.java
rename to compat/java/android/support/v4/app/ShareCompat.java
diff --git a/v4/java/android/support/v4/app/SharedElementCallback.java b/compat/java/android/support/v4/app/SharedElementCallback.java
similarity index 100%
rename from v4/java/android/support/v4/app/SharedElementCallback.java
rename to compat/java/android/support/v4/app/SharedElementCallback.java
diff --git a/compat/java/android/support/v4/app/package.html b/compat/java/android/support/v4/app/package.html
new file mode 100755
index 0000000..02d1b79
--- /dev/null
+++ b/compat/java/android/support/v4/app/package.html
@@ -0,0 +1,8 @@
+<body>
+
+Support android.app classes to assist with development of applications for
+android API level 4 or later.  The main features here are backwards-compatible
+versions of {@link android.support.v4.app.FragmentManager} and
+{@link android.support.v4.app.LoaderManager}.
+
+</body>
diff --git a/v4/java/android/support/v4/content/ContentResolverCompat.java b/compat/java/android/support/v4/content/ContentResolverCompat.java
similarity index 100%
rename from v4/java/android/support/v4/content/ContentResolverCompat.java
rename to compat/java/android/support/v4/content/ContentResolverCompat.java
diff --git a/v4/java/android/support/v4/content/ContextCompat.java b/compat/java/android/support/v4/content/ContextCompat.java
similarity index 100%
rename from v4/java/android/support/v4/content/ContextCompat.java
rename to compat/java/android/support/v4/content/ContextCompat.java
diff --git a/v4/java/android/support/v4/content/IntentCompat.java b/compat/java/android/support/v4/content/IntentCompat.java
similarity index 100%
rename from v4/java/android/support/v4/content/IntentCompat.java
rename to compat/java/android/support/v4/content/IntentCompat.java
diff --git a/v4/java/android/support/v4/content/ModernAsyncTask.java b/compat/java/android/support/v4/content/ModernAsyncTask.java
similarity index 100%
rename from v4/java/android/support/v4/content/ModernAsyncTask.java
rename to compat/java/android/support/v4/content/ModernAsyncTask.java
diff --git a/v4/java/android/support/v4/content/ParallelExecutorCompat.java b/compat/java/android/support/v4/content/ParallelExecutorCompat.java
similarity index 100%
rename from v4/java/android/support/v4/content/ParallelExecutorCompat.java
rename to compat/java/android/support/v4/content/ParallelExecutorCompat.java
diff --git a/v4/java/android/support/v4/content/SharedPreferencesCompat.java b/compat/java/android/support/v4/content/SharedPreferencesCompat.java
similarity index 100%
rename from v4/java/android/support/v4/content/SharedPreferencesCompat.java
rename to compat/java/android/support/v4/content/SharedPreferencesCompat.java
diff --git a/compat/java/android/support/v4/content/package.html b/compat/java/android/support/v4/content/package.html
new file mode 100755
index 0000000..33bf4b5
--- /dev/null
+++ b/compat/java/android/support/v4/content/package.html
@@ -0,0 +1,10 @@
+<body>
+
+Support android.content classes to assist with development of applications for
+android API level 4 or later.  The main features here are
+{@link android.support.v4.content.Loader} and related classes and
+{@link android.support.v4.content.LocalBroadcastManager} to
+provide a cleaner implementation of broadcasts that don't need to go outside
+of an app.
+
+</body>
diff --git a/v4/java/android/support/v4/content/pm/ActivityInfoCompat.java b/compat/java/android/support/v4/content/pm/ActivityInfoCompat.java
similarity index 100%
rename from v4/java/android/support/v4/content/pm/ActivityInfoCompat.java
rename to compat/java/android/support/v4/content/pm/ActivityInfoCompat.java
diff --git a/v4/java/android/support/v4/content/pm/package.html b/compat/java/android/support/v4/content/pm/package.html
similarity index 100%
rename from v4/java/android/support/v4/content/pm/package.html
rename to compat/java/android/support/v4/content/pm/package.html
diff --git a/v4/java/android/support/v4/content/res/ConfigurationHelper.java b/compat/java/android/support/v4/content/res/ConfigurationHelper.java
similarity index 100%
rename from v4/java/android/support/v4/content/res/ConfigurationHelper.java
rename to compat/java/android/support/v4/content/res/ConfigurationHelper.java
diff --git a/v4/java/android/support/v4/content/res/ResourcesCompat.java b/compat/java/android/support/v4/content/res/ResourcesCompat.java
similarity index 100%
rename from v4/java/android/support/v4/content/res/ResourcesCompat.java
rename to compat/java/android/support/v4/content/res/ResourcesCompat.java
diff --git a/v4/java/android/support/v4/database/DatabaseUtilsCompat.java b/compat/java/android/support/v4/database/DatabaseUtilsCompat.java
similarity index 100%
rename from v4/java/android/support/v4/database/DatabaseUtilsCompat.java
rename to compat/java/android/support/v4/database/DatabaseUtilsCompat.java
diff --git a/v4/java/android/support/v4/database/package.html b/compat/java/android/support/v4/database/package.html
similarity index 100%
rename from v4/java/android/support/v4/database/package.html
rename to compat/java/android/support/v4/database/package.html
diff --git a/v4/java/android/support/v4/graphics/BitmapCompat.java b/compat/java/android/support/v4/graphics/BitmapCompat.java
similarity index 100%
rename from v4/java/android/support/v4/graphics/BitmapCompat.java
rename to compat/java/android/support/v4/graphics/BitmapCompat.java
diff --git a/v4/java/android/support/v4/graphics/drawable/DrawableCompat.java b/compat/java/android/support/v4/graphics/drawable/DrawableCompat.java
similarity index 100%
rename from v4/java/android/support/v4/graphics/drawable/DrawableCompat.java
rename to compat/java/android/support/v4/graphics/drawable/DrawableCompat.java
diff --git a/v4/java/android/support/v4/hardware/display/DisplayManagerCompat.java b/compat/java/android/support/v4/hardware/display/DisplayManagerCompat.java
similarity index 100%
rename from v4/java/android/support/v4/hardware/display/DisplayManagerCompat.java
rename to compat/java/android/support/v4/hardware/display/DisplayManagerCompat.java
diff --git a/v4/java/android/support/v4/hardware/fingerprint/FingerprintManagerCompat.java b/compat/java/android/support/v4/hardware/fingerprint/FingerprintManagerCompat.java
similarity index 100%
rename from v4/java/android/support/v4/hardware/fingerprint/FingerprintManagerCompat.java
rename to compat/java/android/support/v4/hardware/fingerprint/FingerprintManagerCompat.java
diff --git a/v4/java/android/support/v4/internal/view/SupportMenu.java b/compat/java/android/support/v4/internal/view/SupportMenu.java
similarity index 100%
rename from v4/java/android/support/v4/internal/view/SupportMenu.java
rename to compat/java/android/support/v4/internal/view/SupportMenu.java
diff --git a/v4/java/android/support/v4/internal/view/SupportMenuItem.java b/compat/java/android/support/v4/internal/view/SupportMenuItem.java
similarity index 100%
rename from v4/java/android/support/v4/internal/view/SupportMenuItem.java
rename to compat/java/android/support/v4/internal/view/SupportMenuItem.java
diff --git a/v4/java/android/support/v4/internal/view/SupportSubMenu.java b/compat/java/android/support/v4/internal/view/SupportSubMenu.java
similarity index 100%
rename from v4/java/android/support/v4/internal/view/SupportSubMenu.java
rename to compat/java/android/support/v4/internal/view/SupportSubMenu.java
diff --git a/v4/java/android/support/v4/net/ConnectivityManagerCompat.java b/compat/java/android/support/v4/net/ConnectivityManagerCompat.java
similarity index 100%
rename from v4/java/android/support/v4/net/ConnectivityManagerCompat.java
rename to compat/java/android/support/v4/net/ConnectivityManagerCompat.java
diff --git a/v4/java/android/support/v4/net/TrafficStatsCompat.java b/compat/java/android/support/v4/net/TrafficStatsCompat.java
similarity index 100%
rename from v4/java/android/support/v4/net/TrafficStatsCompat.java
rename to compat/java/android/support/v4/net/TrafficStatsCompat.java
diff --git a/v4/java/android/support/v4/os/AsyncTaskCompat.java b/compat/java/android/support/v4/os/AsyncTaskCompat.java
similarity index 100%
rename from v4/java/android/support/v4/os/AsyncTaskCompat.java
rename to compat/java/android/support/v4/os/AsyncTaskCompat.java
diff --git a/v4/java/android/support/v4/os/CancellationSignal.java b/compat/java/android/support/v4/os/CancellationSignal.java
similarity index 100%
rename from v4/java/android/support/v4/os/CancellationSignal.java
rename to compat/java/android/support/v4/os/CancellationSignal.java
diff --git a/v4/java/android/support/v4/os/EnvironmentCompat.java b/compat/java/android/support/v4/os/EnvironmentCompat.java
similarity index 100%
rename from v4/java/android/support/v4/os/EnvironmentCompat.java
rename to compat/java/android/support/v4/os/EnvironmentCompat.java
diff --git a/v4/java/android/support/v4/os/OperationCanceledException.java b/compat/java/android/support/v4/os/OperationCanceledException.java
similarity index 100%
rename from v4/java/android/support/v4/os/OperationCanceledException.java
rename to compat/java/android/support/v4/os/OperationCanceledException.java
diff --git a/v4/java/android/support/v4/os/ParcelableCompat.java b/compat/java/android/support/v4/os/ParcelableCompat.java
similarity index 100%
rename from v4/java/android/support/v4/os/ParcelableCompat.java
rename to compat/java/android/support/v4/os/ParcelableCompat.java
diff --git a/v4/java/android/support/v4/os/TraceCompat.java b/compat/java/android/support/v4/os/TraceCompat.java
similarity index 100%
rename from v4/java/android/support/v4/os/TraceCompat.java
rename to compat/java/android/support/v4/os/TraceCompat.java
diff --git a/v4/java/android/support/v4/os/UserManagerCompat.java b/compat/java/android/support/v4/os/UserManagerCompat.java
similarity index 100%
rename from v4/java/android/support/v4/os/UserManagerCompat.java
rename to compat/java/android/support/v4/os/UserManagerCompat.java
diff --git a/compat/java/android/support/v4/os/package.html b/compat/java/android/support/v4/os/package.html
new file mode 100755
index 0000000..929c967
--- /dev/null
+++ b/compat/java/android/support/v4/os/package.html
@@ -0,0 +1,6 @@
+<body>
+
+Support android.os classes to assist with development of applications for
+android API level 4 or later.
+
+</body>
diff --git a/v4/java/android/support/v4/text/ICUCompat.java b/compat/java/android/support/v4/text/ICUCompat.java
similarity index 100%
rename from v4/java/android/support/v4/text/ICUCompat.java
rename to compat/java/android/support/v4/text/ICUCompat.java
diff --git a/v4/java/android/support/v4/text/TextDirectionHeuristicCompat.java b/compat/java/android/support/v4/text/TextDirectionHeuristicCompat.java
similarity index 100%
rename from v4/java/android/support/v4/text/TextDirectionHeuristicCompat.java
rename to compat/java/android/support/v4/text/TextDirectionHeuristicCompat.java
diff --git a/v4/java/android/support/v4/text/TextDirectionHeuristicsCompat.java b/compat/java/android/support/v4/text/TextDirectionHeuristicsCompat.java
similarity index 100%
rename from v4/java/android/support/v4/text/TextDirectionHeuristicsCompat.java
rename to compat/java/android/support/v4/text/TextDirectionHeuristicsCompat.java
diff --git a/v4/java/android/support/v4/text/TextUtilsCompat.java b/compat/java/android/support/v4/text/TextUtilsCompat.java
similarity index 100%
rename from v4/java/android/support/v4/text/TextUtilsCompat.java
rename to compat/java/android/support/v4/text/TextUtilsCompat.java
diff --git a/v4/java/android/support/v4/util/ArrayMap.java b/compat/java/android/support/v4/util/ArrayMap.java
similarity index 100%
rename from v4/java/android/support/v4/util/ArrayMap.java
rename to compat/java/android/support/v4/util/ArrayMap.java
diff --git a/v4/java/android/support/v4/util/AtomicFile.java b/compat/java/android/support/v4/util/AtomicFile.java
similarity index 100%
rename from v4/java/android/support/v4/util/AtomicFile.java
rename to compat/java/android/support/v4/util/AtomicFile.java
diff --git a/v4/java/android/support/v4/util/CircularArray.java b/compat/java/android/support/v4/util/CircularArray.java
similarity index 100%
rename from v4/java/android/support/v4/util/CircularArray.java
rename to compat/java/android/support/v4/util/CircularArray.java
diff --git a/v4/java/android/support/v4/util/CircularIntArray.java b/compat/java/android/support/v4/util/CircularIntArray.java
similarity index 100%
rename from v4/java/android/support/v4/util/CircularIntArray.java
rename to compat/java/android/support/v4/util/CircularIntArray.java
diff --git a/v4/java/android/support/v4/util/ContainerHelpers.java b/compat/java/android/support/v4/util/ContainerHelpers.java
similarity index 100%
rename from v4/java/android/support/v4/util/ContainerHelpers.java
rename to compat/java/android/support/v4/util/ContainerHelpers.java
diff --git a/v4/java/android/support/v4/util/DebugUtils.java b/compat/java/android/support/v4/util/DebugUtils.java
similarity index 100%
rename from v4/java/android/support/v4/util/DebugUtils.java
rename to compat/java/android/support/v4/util/DebugUtils.java
diff --git a/v4/java/android/support/v4/util/LogWriter.java b/compat/java/android/support/v4/util/LogWriter.java
similarity index 100%
rename from v4/java/android/support/v4/util/LogWriter.java
rename to compat/java/android/support/v4/util/LogWriter.java
diff --git a/v4/java/android/support/v4/util/LongSparseArray.java b/compat/java/android/support/v4/util/LongSparseArray.java
similarity index 100%
rename from v4/java/android/support/v4/util/LongSparseArray.java
rename to compat/java/android/support/v4/util/LongSparseArray.java
diff --git a/v4/java/android/support/v4/util/LruCache.java b/compat/java/android/support/v4/util/LruCache.java
similarity index 100%
rename from v4/java/android/support/v4/util/LruCache.java
rename to compat/java/android/support/v4/util/LruCache.java
diff --git a/v4/java/android/support/v4/util/MapCollections.java b/compat/java/android/support/v4/util/MapCollections.java
similarity index 100%
rename from v4/java/android/support/v4/util/MapCollections.java
rename to compat/java/android/support/v4/util/MapCollections.java
diff --git a/v4/java/android/support/v4/util/Pair.java b/compat/java/android/support/v4/util/Pair.java
similarity index 100%
rename from v4/java/android/support/v4/util/Pair.java
rename to compat/java/android/support/v4/util/Pair.java
diff --git a/v4/java/android/support/v4/util/Pools.java b/compat/java/android/support/v4/util/Pools.java
similarity index 100%
rename from v4/java/android/support/v4/util/Pools.java
rename to compat/java/android/support/v4/util/Pools.java
diff --git a/v4/java/android/support/v4/util/SimpleArrayMap.java b/compat/java/android/support/v4/util/SimpleArrayMap.java
similarity index 100%
rename from v4/java/android/support/v4/util/SimpleArrayMap.java
rename to compat/java/android/support/v4/util/SimpleArrayMap.java
diff --git a/v4/java/android/support/v4/util/SparseArrayCompat.java b/compat/java/android/support/v4/util/SparseArrayCompat.java
similarity index 100%
rename from v4/java/android/support/v4/util/SparseArrayCompat.java
rename to compat/java/android/support/v4/util/SparseArrayCompat.java
diff --git a/v4/java/android/support/v4/util/TimeUtils.java b/compat/java/android/support/v4/util/TimeUtils.java
similarity index 100%
rename from v4/java/android/support/v4/util/TimeUtils.java
rename to compat/java/android/support/v4/util/TimeUtils.java
diff --git a/v4/java/android/support/v4/util/package.html b/compat/java/android/support/v4/util/package.html
old mode 100755
new mode 100644
similarity index 100%
rename from v4/java/android/support/v4/util/package.html
rename to compat/java/android/support/v4/util/package.html
diff --git a/v4/java/android/support/v4/view/AccessibilityDelegateCompat.java b/compat/java/android/support/v4/view/AccessibilityDelegateCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/AccessibilityDelegateCompat.java
rename to compat/java/android/support/v4/view/AccessibilityDelegateCompat.java
diff --git a/v4/java/android/support/v4/view/ActionProvider.java b/compat/java/android/support/v4/view/ActionProvider.java
similarity index 100%
rename from v4/java/android/support/v4/view/ActionProvider.java
rename to compat/java/android/support/v4/view/ActionProvider.java
diff --git a/v4/java/android/support/v4/view/GestureDetectorCompat.java b/compat/java/android/support/v4/view/GestureDetectorCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/GestureDetectorCompat.java
rename to compat/java/android/support/v4/view/GestureDetectorCompat.java
diff --git a/v4/java/android/support/v4/view/GravityCompat.java b/compat/java/android/support/v4/view/GravityCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/GravityCompat.java
rename to compat/java/android/support/v4/view/GravityCompat.java
diff --git a/v4/java/android/support/v4/view/InputDeviceCompat.java b/compat/java/android/support/v4/view/InputDeviceCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/InputDeviceCompat.java
rename to compat/java/android/support/v4/view/InputDeviceCompat.java
diff --git a/v4/java/android/support/v4/view/KeyEventCompat.java b/compat/java/android/support/v4/view/KeyEventCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/KeyEventCompat.java
rename to compat/java/android/support/v4/view/KeyEventCompat.java
diff --git a/v4/java/android/support/v4/view/LayoutInflaterCompat.java b/compat/java/android/support/v4/view/LayoutInflaterCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/LayoutInflaterCompat.java
rename to compat/java/android/support/v4/view/LayoutInflaterCompat.java
diff --git a/v4/java/android/support/v4/view/MarginLayoutParamsCompat.java b/compat/java/android/support/v4/view/MarginLayoutParamsCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/MarginLayoutParamsCompat.java
rename to compat/java/android/support/v4/view/MarginLayoutParamsCompat.java
diff --git a/v4/java/android/support/v4/view/MenuCompat.java b/compat/java/android/support/v4/view/MenuCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/MenuCompat.java
rename to compat/java/android/support/v4/view/MenuCompat.java
diff --git a/v4/java/android/support/v4/view/MenuItemCompat.java b/compat/java/android/support/v4/view/MenuItemCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/MenuItemCompat.java
rename to compat/java/android/support/v4/view/MenuItemCompat.java
diff --git a/v4/java/android/support/v4/view/MotionEventCompat.java b/compat/java/android/support/v4/view/MotionEventCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/MotionEventCompat.java
rename to compat/java/android/support/v4/view/MotionEventCompat.java
diff --git a/v4/java/android/support/v4/view/NestedScrollingChild.java b/compat/java/android/support/v4/view/NestedScrollingChild.java
similarity index 100%
rename from v4/java/android/support/v4/view/NestedScrollingChild.java
rename to compat/java/android/support/v4/view/NestedScrollingChild.java
diff --git a/v4/java/android/support/v4/view/NestedScrollingParent.java b/compat/java/android/support/v4/view/NestedScrollingParent.java
similarity index 100%
rename from v4/java/android/support/v4/view/NestedScrollingParent.java
rename to compat/java/android/support/v4/view/NestedScrollingParent.java
diff --git a/v4/java/android/support/v4/view/PointerIconCompat.java b/compat/java/android/support/v4/view/PointerIconCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/PointerIconCompat.java
rename to compat/java/android/support/v4/view/PointerIconCompat.java
diff --git a/v4/java/android/support/v4/view/ScaleGestureDetectorCompat.java b/compat/java/android/support/v4/view/ScaleGestureDetectorCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/ScaleGestureDetectorCompat.java
rename to compat/java/android/support/v4/view/ScaleGestureDetectorCompat.java
diff --git a/v4/java/android/support/v4/view/ScrollingView.java b/compat/java/android/support/v4/view/ScrollingView.java
similarity index 100%
rename from v4/java/android/support/v4/view/ScrollingView.java
rename to compat/java/android/support/v4/view/ScrollingView.java
diff --git a/v4/java/android/support/v4/view/VelocityTrackerCompat.java b/compat/java/android/support/v4/view/VelocityTrackerCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/VelocityTrackerCompat.java
rename to compat/java/android/support/v4/view/VelocityTrackerCompat.java
diff --git a/v4/java/android/support/v4/view/ViewCompat.java b/compat/java/android/support/v4/view/ViewCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/ViewCompat.java
rename to compat/java/android/support/v4/view/ViewCompat.java
diff --git a/v4/java/android/support/v4/view/ViewConfigurationCompat.java b/compat/java/android/support/v4/view/ViewConfigurationCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/ViewConfigurationCompat.java
rename to compat/java/android/support/v4/view/ViewConfigurationCompat.java
diff --git a/v4/java/android/support/v4/view/ViewGroupCompat.java b/compat/java/android/support/v4/view/ViewGroupCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/ViewGroupCompat.java
rename to compat/java/android/support/v4/view/ViewGroupCompat.java
diff --git a/v4/java/android/support/v4/view/ViewParentCompat.java b/compat/java/android/support/v4/view/ViewParentCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/ViewParentCompat.java
rename to compat/java/android/support/v4/view/ViewParentCompat.java
diff --git a/v4/java/android/support/v4/view/ViewPropertyAnimatorCompat.java b/compat/java/android/support/v4/view/ViewPropertyAnimatorCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/ViewPropertyAnimatorCompat.java
rename to compat/java/android/support/v4/view/ViewPropertyAnimatorCompat.java
diff --git a/v4/java/android/support/v4/view/WindowCompat.java b/compat/java/android/support/v4/view/WindowCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/WindowCompat.java
rename to compat/java/android/support/v4/view/WindowCompat.java
diff --git a/v4/java/android/support/v4/view/accessibility/AccessibilityEventCompat.java b/compat/java/android/support/v4/view/accessibility/AccessibilityEventCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/accessibility/AccessibilityEventCompat.java
rename to compat/java/android/support/v4/view/accessibility/AccessibilityEventCompat.java
diff --git a/v4/java/android/support/v4/view/accessibility/AccessibilityManagerCompat.java b/compat/java/android/support/v4/view/accessibility/AccessibilityManagerCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/accessibility/AccessibilityManagerCompat.java
rename to compat/java/android/support/v4/view/accessibility/AccessibilityManagerCompat.java
diff --git a/v4/java/android/support/v4/view/accessibility/AccessibilityNodeInfoCompat.java b/compat/java/android/support/v4/view/accessibility/AccessibilityNodeInfoCompat.java
similarity index 98%
rename from v4/java/android/support/v4/view/accessibility/AccessibilityNodeInfoCompat.java
rename to compat/java/android/support/v4/view/accessibility/AccessibilityNodeInfoCompat.java
index b894ad8..858ebde 100644
--- a/v4/java/android/support/v4/view/accessibility/AccessibilityNodeInfoCompat.java
+++ b/compat/java/android/support/v4/view/accessibility/AccessibilityNodeInfoCompat.java
@@ -520,6 +520,8 @@
         public void setBoundsInParent(Object info, Rect bounds);
         public void getBoundsInScreen(Object info, Rect outBounds);
         public void setBoundsInScreen(Object info, Rect bounds);
+        public boolean hasImage(Object info);
+        public void setHasImage(Object info, boolean hasImage);
         public boolean isCheckable(Object info);
         public void setCheckable(Object info, boolean checkable);
         public boolean isChecked(Object info);
@@ -748,6 +750,16 @@
         }
 
         @Override
+        public boolean hasImage(Object info) {
+            return false;
+        }
+
+        @Override
+        public void setHasImage(Object info, boolean hasImage) {
+
+        }
+
+        @Override
         public boolean isCheckable(Object info) {
             return false;
         }
@@ -1316,6 +1328,11 @@
         }
 
         @Override
+        public boolean hasImage(Object info) {
+            return AccessibilityNodeInfoCompatIcs.hasImage(info);
+        }
+
+        @Override
         public boolean isCheckable(Object info) {
             return AccessibilityNodeInfoCompatIcs.isCheckable(info);
         }
@@ -1381,6 +1398,10 @@
         }
 
         @Override
+        public void setHasImage(Object info, boolean hasImage) {
+        }
+
+        @Override
         public void setCheckable(Object info, boolean checkable) {
             AccessibilityNodeInfoCompatIcs.setCheckable(info, checkable);
         }
@@ -1747,6 +1768,16 @@
         }
 
         @Override
+        public boolean hasImage(Object info) {
+            return AccessibilityNodeInfoCompatKitKat.hasImage(info);
+        }
+
+        @Override
+        public void setHasImage(Object info, boolean hasImage) {
+            AccessibilityNodeInfoCompatKitKat.setHasImage(info, hasImage);
+        }
+
+        @Override
         public boolean isDismissable(Object info) {
             return AccessibilityNodeInfoCompatKitKat.isDismissable(info);
         }
@@ -2735,6 +2766,38 @@
     }
 
     /**
+     * Gets whether this node is has an image.
+     *
+     * If the platform support this trait natively, it will always return the
+     * value from the node.
+     * If it's not supported natively and the platform is KitKat or higher,
+     * it will return the value that was explicitely set.
+     * If the platform is pre-KitKat or the value has not been explicitely set,
+     * the value will be derived based on whether the classname is a framework
+     * class that is derived from android.widget.ImageView.
+     *
+     * @return True if the node has an image.
+     */
+    public boolean hasImage() {
+        return IMPL.hasImage(mInfo);
+    }
+
+    /**
+     * Sets whether this node has an image.
+     * <p>
+     * <strong>Note:</strong> Cannot be called from an
+     * {@link android.accessibilityservice.AccessibilityService}. This class is
+     * made immutable before being delivered to an AccessibilityService.
+     * </p>
+     *
+     * @param hasImage True if the node has an image.
+     * @throws IllegalStateException If called from an AccessibilityService.
+     */
+    public void setHasImage(boolean hasImage) {
+        IMPL.setHasImage(mInfo, hasImage);
+    }
+
+    /**
      * Gets whether this node is checkable.
      *
      * @return True if the node is checkable.
@@ -3872,6 +3935,7 @@
         builder.append("; contentDescription: ").append(getContentDescription());
         builder.append("; viewId: ").append(getViewIdResourceName());
 
+        builder.append("; hasImage: ").append(hasImage());
         builder.append("; checkable: ").append(isCheckable());
         builder.append("; checked: ").append(isChecked());
         builder.append("; focusable: ").append(isFocusable());
diff --git a/v4/java/android/support/v4/view/accessibility/AccessibilityNodeProviderCompat.java b/compat/java/android/support/v4/view/accessibility/AccessibilityNodeProviderCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/accessibility/AccessibilityNodeProviderCompat.java
rename to compat/java/android/support/v4/view/accessibility/AccessibilityNodeProviderCompat.java
diff --git a/v4/java/android/support/v4/view/accessibility/AccessibilityRecordCompat.java b/compat/java/android/support/v4/view/accessibility/AccessibilityRecordCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/accessibility/AccessibilityRecordCompat.java
rename to compat/java/android/support/v4/view/accessibility/AccessibilityRecordCompat.java
diff --git a/v4/java/android/support/v4/view/accessibility/AccessibilityWindowInfoCompat.java b/compat/java/android/support/v4/view/accessibility/AccessibilityWindowInfoCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/accessibility/AccessibilityWindowInfoCompat.java
rename to compat/java/android/support/v4/view/accessibility/AccessibilityWindowInfoCompat.java
diff --git a/v4/java/android/support/v4/view/accessibility/package.html b/compat/java/android/support/v4/view/accessibility/package.html
similarity index 100%
rename from v4/java/android/support/v4/view/accessibility/package.html
rename to compat/java/android/support/v4/view/accessibility/package.html
diff --git a/v4/java/android/support/v4/view/animation/PathInterpolatorCompat.java b/compat/java/android/support/v4/view/animation/PathInterpolatorCompat.java
similarity index 100%
rename from v4/java/android/support/v4/view/animation/PathInterpolatorCompat.java
rename to compat/java/android/support/v4/view/animation/PathInterpolatorCompat.java
diff --git a/compat/java/android/support/v4/view/package.html b/compat/java/android/support/v4/view/package.html
new file mode 100755
index 0000000..d80ef70
--- /dev/null
+++ b/compat/java/android/support/v4/view/package.html
@@ -0,0 +1,11 @@
+<body>
+
+Support android.util classes to assist with development of applications for
+android API level 4 or later.  The main features here are a variety of classes
+for handling backwards compatibility with views (for example
+{@link android.support.v4.view.MotionEventCompat} allows retrieving multi-touch
+data if available), and a new
+{@link android.support.v4.view.ViewPager} widget (which at some point should be moved over
+to the widget package).
+
+</body>
diff --git a/v4/java/android/support/v4/widget/CompoundButtonCompat.java b/compat/java/android/support/v4/widget/CompoundButtonCompat.java
similarity index 100%
rename from v4/java/android/support/v4/widget/CompoundButtonCompat.java
rename to compat/java/android/support/v4/widget/CompoundButtonCompat.java
diff --git a/v4/java/android/support/v4/widget/EdgeEffectCompat.java b/compat/java/android/support/v4/widget/EdgeEffectCompat.java
similarity index 100%
rename from v4/java/android/support/v4/widget/EdgeEffectCompat.java
rename to compat/java/android/support/v4/widget/EdgeEffectCompat.java
diff --git a/v4/java/android/support/v4/widget/ListPopupWindowCompat.java b/compat/java/android/support/v4/widget/ListPopupWindowCompat.java
similarity index 100%
rename from v4/java/android/support/v4/widget/ListPopupWindowCompat.java
rename to compat/java/android/support/v4/widget/ListPopupWindowCompat.java
diff --git a/v4/java/android/support/v4/widget/ListViewCompat.java b/compat/java/android/support/v4/widget/ListViewCompat.java
similarity index 100%
rename from v4/java/android/support/v4/widget/ListViewCompat.java
rename to compat/java/android/support/v4/widget/ListViewCompat.java
diff --git a/v4/java/android/support/v4/widget/PopupMenuCompat.java b/compat/java/android/support/v4/widget/PopupMenuCompat.java
similarity index 100%
rename from v4/java/android/support/v4/widget/PopupMenuCompat.java
rename to compat/java/android/support/v4/widget/PopupMenuCompat.java
diff --git a/v4/java/android/support/v4/widget/PopupWindowCompat.java b/compat/java/android/support/v4/widget/PopupWindowCompat.java
similarity index 100%
rename from v4/java/android/support/v4/widget/PopupWindowCompat.java
rename to compat/java/android/support/v4/widget/PopupWindowCompat.java
diff --git a/v4/java/android/support/v4/widget/ScrollerCompat.java b/compat/java/android/support/v4/widget/ScrollerCompat.java
similarity index 100%
rename from v4/java/android/support/v4/widget/ScrollerCompat.java
rename to compat/java/android/support/v4/widget/ScrollerCompat.java
diff --git a/v4/java/android/support/v4/widget/SearchViewCompat.java b/compat/java/android/support/v4/widget/SearchViewCompat.java
similarity index 100%
rename from v4/java/android/support/v4/widget/SearchViewCompat.java
rename to compat/java/android/support/v4/widget/SearchViewCompat.java
diff --git a/v4/java/android/support/v4/widget/TextViewCompat.java b/compat/java/android/support/v4/widget/TextViewCompat.java
similarity index 100%
rename from v4/java/android/support/v4/widget/TextViewCompat.java
rename to compat/java/android/support/v4/widget/TextViewCompat.java
diff --git a/v4/java/android/support/v4/widget/TextViewCompatDonut.java b/compat/java/android/support/v4/widget/TextViewCompatDonut.java
similarity index 100%
rename from v4/java/android/support/v4/widget/TextViewCompatDonut.java
rename to compat/java/android/support/v4/widget/TextViewCompatDonut.java
diff --git a/compat/java/android/support/v4/widget/package.html b/compat/java/android/support/v4/widget/package.html
new file mode 100755
index 0000000..e2c636d
--- /dev/null
+++ b/compat/java/android/support/v4/widget/package.html
@@ -0,0 +1,8 @@
+<body>
+
+Support android.widget classes to assist with development of applications for
+android API level 4 or later.  This includes a complete modern implementation
+of {@link android.support.v4.widget.CursorAdapter} and related classes, which
+is needed for use with {@link android.support.v4.content.CursorLoader}.
+
+</body>
diff --git a/v4/jellybean-mr1/android/support/v4/content/res/ConfigurationHelperJellybeanMr1.java b/compat/jellybean-mr1/android/support/v4/content/res/ConfigurationHelperJellybeanMr1.java
similarity index 100%
rename from v4/jellybean-mr1/android/support/v4/content/res/ConfigurationHelperJellybeanMr1.java
rename to compat/jellybean-mr1/android/support/v4/content/res/ConfigurationHelperJellybeanMr1.java
diff --git a/v4/jellybean-mr1/android/support/v4/graphics/drawable/DrawableCompatJellybeanMr1.java b/compat/jellybean-mr1/android/support/v4/graphics/drawable/DrawableCompatJellybeanMr1.java
similarity index 100%
rename from v4/jellybean-mr1/android/support/v4/graphics/drawable/DrawableCompatJellybeanMr1.java
rename to compat/jellybean-mr1/android/support/v4/graphics/drawable/DrawableCompatJellybeanMr1.java
diff --git a/v4/jellybean-mr1/android/support/v4/hardware/display/DisplayManagerJellybeanMr1.java b/compat/jellybean-mr1/android/support/v4/hardware/display/DisplayManagerJellybeanMr1.java
similarity index 100%
rename from v4/jellybean-mr1/android/support/v4/hardware/display/DisplayManagerJellybeanMr1.java
rename to compat/jellybean-mr1/android/support/v4/hardware/display/DisplayManagerJellybeanMr1.java
diff --git a/v4/jellybean-mr1/android/support/v4/text/TextUtilsCompatJellybeanMr1.java b/compat/jellybean-mr1/android/support/v4/text/TextUtilsCompatJellybeanMr1.java
similarity index 100%
rename from v4/jellybean-mr1/android/support/v4/text/TextUtilsCompatJellybeanMr1.java
rename to compat/jellybean-mr1/android/support/v4/text/TextUtilsCompatJellybeanMr1.java
diff --git a/v4/jellybean-mr1/android/support/v4/view/GravityCompatJellybeanMr1.java b/compat/jellybean-mr1/android/support/v4/view/GravityCompatJellybeanMr1.java
similarity index 100%
rename from v4/jellybean-mr1/android/support/v4/view/GravityCompatJellybeanMr1.java
rename to compat/jellybean-mr1/android/support/v4/view/GravityCompatJellybeanMr1.java
diff --git a/v4/jellybean-mr1/android/support/v4/view/MarginLayoutParamsCompatJellybeanMr1.java b/compat/jellybean-mr1/android/support/v4/view/MarginLayoutParamsCompatJellybeanMr1.java
similarity index 100%
rename from v4/jellybean-mr1/android/support/v4/view/MarginLayoutParamsCompatJellybeanMr1.java
rename to compat/jellybean-mr1/android/support/v4/view/MarginLayoutParamsCompatJellybeanMr1.java
diff --git a/v4/jellybean-mr1/android/support/v4/view/ViewCompatJellybeanMr1.java b/compat/jellybean-mr1/android/support/v4/view/ViewCompatJellybeanMr1.java
similarity index 100%
rename from v4/jellybean-mr1/android/support/v4/view/ViewCompatJellybeanMr1.java
rename to compat/jellybean-mr1/android/support/v4/view/ViewCompatJellybeanMr1.java
diff --git a/v4/jellybean-mr1/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatJellybeanMr1.java b/compat/jellybean-mr1/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatJellybeanMr1.java
similarity index 100%
rename from v4/jellybean-mr1/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatJellybeanMr1.java
rename to compat/jellybean-mr1/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatJellybeanMr1.java
diff --git a/v4/jellybean-mr1/android/support/v4/widget/TextViewCompatJbMr1.java b/compat/jellybean-mr1/android/support/v4/widget/TextViewCompatJbMr1.java
similarity index 100%
rename from v4/jellybean-mr1/android/support/v4/widget/TextViewCompatJbMr1.java
rename to compat/jellybean-mr1/android/support/v4/widget/TextViewCompatJbMr1.java
diff --git a/v4/jellybean-mr2/android/support/v4/accessibilityservice/AccessibilityServiceInfoCompatJellyBeanMr2.java b/compat/jellybean-mr2/android/support/v4/accessibilityservice/AccessibilityServiceInfoCompatJellyBeanMr2.java
similarity index 100%
rename from v4/jellybean-mr2/android/support/v4/accessibilityservice/AccessibilityServiceInfoCompatJellyBeanMr2.java
rename to compat/jellybean-mr2/android/support/v4/accessibilityservice/AccessibilityServiceInfoCompatJellyBeanMr2.java
diff --git a/v4/jellybean-mr2/android/support/v4/app/BundleCompatJellybeanMR2.java b/compat/jellybean-mr2/android/support/v4/app/BundleCompatJellybeanMR2.java
similarity index 100%
rename from v4/jellybean-mr2/android/support/v4/app/BundleCompatJellybeanMR2.java
rename to compat/jellybean-mr2/android/support/v4/app/BundleCompatJellybeanMR2.java
diff --git a/v4/jellybean-mr2/android/support/v4/graphics/BitmapCompatJellybeanMR2.java b/compat/jellybean-mr2/android/support/v4/graphics/BitmapCompatJellybeanMR2.java
similarity index 100%
rename from v4/jellybean-mr2/android/support/v4/graphics/BitmapCompatJellybeanMR2.java
rename to compat/jellybean-mr2/android/support/v4/graphics/BitmapCompatJellybeanMR2.java
diff --git a/v4/jellybean-mr2/android/support/v4/os/TraceJellybeanMR2.java b/compat/jellybean-mr2/android/support/v4/os/TraceJellybeanMR2.java
similarity index 100%
rename from v4/jellybean-mr2/android/support/v4/os/TraceJellybeanMR2.java
rename to compat/jellybean-mr2/android/support/v4/os/TraceJellybeanMR2.java
diff --git a/v4/jellybean-mr2/android/support/v4/view/ViewCompatJellybeanMr2.java b/compat/jellybean-mr2/android/support/v4/view/ViewCompatJellybeanMr2.java
similarity index 100%
rename from v4/jellybean-mr2/android/support/v4/view/ViewCompatJellybeanMr2.java
rename to compat/jellybean-mr2/android/support/v4/view/ViewCompatJellybeanMr2.java
diff --git a/v4/jellybean-mr2/android/support/v4/view/ViewGroupCompatJellybeanMR2.java b/compat/jellybean-mr2/android/support/v4/view/ViewGroupCompatJellybeanMR2.java
similarity index 100%
rename from v4/jellybean-mr2/android/support/v4/view/ViewGroupCompatJellybeanMR2.java
rename to compat/jellybean-mr2/android/support/v4/view/ViewGroupCompatJellybeanMR2.java
diff --git a/v4/jellybean-mr2/android/support/v4/view/ViewPropertyAnimatorCompatJellybeanMr2.java b/compat/jellybean-mr2/android/support/v4/view/ViewPropertyAnimatorCompatJellybeanMr2.java
similarity index 100%
rename from v4/jellybean-mr2/android/support/v4/view/ViewPropertyAnimatorCompatJellybeanMr2.java
rename to compat/jellybean-mr2/android/support/v4/view/ViewPropertyAnimatorCompatJellybeanMr2.java
diff --git a/v4/jellybean-mr2/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatJellybeanMr2.java b/compat/jellybean-mr2/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatJellybeanMr2.java
similarity index 100%
rename from v4/jellybean-mr2/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatJellybeanMr2.java
rename to compat/jellybean-mr2/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatJellybeanMr2.java
diff --git a/v4/jellybean-mr2/android/support/v4/widget/TextViewCompatJbMr2.java b/compat/jellybean-mr2/android/support/v4/widget/TextViewCompatJbMr2.java
similarity index 100%
rename from v4/jellybean-mr2/android/support/v4/widget/TextViewCompatJbMr2.java
rename to compat/jellybean-mr2/android/support/v4/widget/TextViewCompatJbMr2.java
diff --git a/v4/jellybean/android/support/v4/app/ActivityCompatJB.java b/compat/jellybean/android/support/v4/app/ActivityCompatJB.java
similarity index 100%
rename from v4/jellybean/android/support/v4/app/ActivityCompatJB.java
rename to compat/jellybean/android/support/v4/app/ActivityCompatJB.java
diff --git a/v4/jellybean/android/support/v4/app/ActivityOptionsCompatJB.java b/compat/jellybean/android/support/v4/app/ActivityOptionsCompatJB.java
similarity index 100%
rename from v4/jellybean/android/support/v4/app/ActivityOptionsCompatJB.java
rename to compat/jellybean/android/support/v4/app/ActivityOptionsCompatJB.java
diff --git a/v4/jellybean/android/support/v4/app/ShareCompatJB.java b/compat/jellybean/android/support/v4/app/ShareCompatJB.java
similarity index 100%
rename from v4/jellybean/android/support/v4/app/ShareCompatJB.java
rename to compat/jellybean/android/support/v4/app/ShareCompatJB.java
diff --git a/v4/jellybean/android/support/v4/content/ContentResolverCompatJellybean.java b/compat/jellybean/android/support/v4/content/ContentResolverCompatJellybean.java
similarity index 100%
rename from v4/jellybean/android/support/v4/content/ContentResolverCompatJellybean.java
rename to compat/jellybean/android/support/v4/content/ContentResolverCompatJellybean.java
diff --git a/v4/jellybean/android/support/v4/content/ContextCompatJellybean.java b/compat/jellybean/android/support/v4/content/ContextCompatJellybean.java
similarity index 100%
rename from v4/jellybean/android/support/v4/content/ContextCompatJellybean.java
rename to compat/jellybean/android/support/v4/content/ContextCompatJellybean.java
diff --git a/v4/jellybean/android/support/v4/net/ConnectivityManagerCompatJellyBean.java b/compat/jellybean/android/support/v4/net/ConnectivityManagerCompatJellyBean.java
similarity index 100%
rename from v4/jellybean/android/support/v4/net/ConnectivityManagerCompatJellyBean.java
rename to compat/jellybean/android/support/v4/net/ConnectivityManagerCompatJellyBean.java
diff --git a/v4/jellybean/android/support/v4/os/CancellationSignalCompatJellybean.java b/compat/jellybean/android/support/v4/os/CancellationSignalCompatJellybean.java
similarity index 100%
rename from v4/jellybean/android/support/v4/os/CancellationSignalCompatJellybean.java
rename to compat/jellybean/android/support/v4/os/CancellationSignalCompatJellybean.java
diff --git a/v4/jellybean/android/support/v4/view/AccessibilityDelegateCompatJellyBean.java b/compat/jellybean/android/support/v4/view/AccessibilityDelegateCompatJellyBean.java
similarity index 100%
rename from v4/jellybean/android/support/v4/view/AccessibilityDelegateCompatJellyBean.java
rename to compat/jellybean/android/support/v4/view/AccessibilityDelegateCompatJellyBean.java
diff --git a/v4/jellybean/android/support/v4/view/ViewCompatJB.java b/compat/jellybean/android/support/v4/view/ViewCompatJB.java
similarity index 100%
rename from v4/jellybean/android/support/v4/view/ViewCompatJB.java
rename to compat/jellybean/android/support/v4/view/ViewCompatJB.java
diff --git a/v4/jellybean/android/support/v4/view/ViewPropertyAnimatorCompatJB.java b/compat/jellybean/android/support/v4/view/ViewPropertyAnimatorCompatJB.java
similarity index 100%
rename from v4/jellybean/android/support/v4/view/ViewPropertyAnimatorCompatJB.java
rename to compat/jellybean/android/support/v4/view/ViewPropertyAnimatorCompatJB.java
diff --git a/v4/jellybean/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatJellyBean.java b/compat/jellybean/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatJellyBean.java
similarity index 100%
rename from v4/jellybean/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatJellyBean.java
rename to compat/jellybean/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatJellyBean.java
diff --git a/v4/jellybean/android/support/v4/view/accessibility/AccessibilityNodeProviderCompatJellyBean.java b/compat/jellybean/android/support/v4/view/accessibility/AccessibilityNodeProviderCompatJellyBean.java
similarity index 100%
rename from v4/jellybean/android/support/v4/view/accessibility/AccessibilityNodeProviderCompatJellyBean.java
rename to compat/jellybean/android/support/v4/view/accessibility/AccessibilityNodeProviderCompatJellyBean.java
diff --git a/v4/jellybean/android/support/v4/view/accessibility/AccessibilityRecordCompatJellyBean.java b/compat/jellybean/android/support/v4/view/accessibility/AccessibilityRecordCompatJellyBean.java
similarity index 100%
rename from v4/jellybean/android/support/v4/view/accessibility/AccessibilityRecordCompatJellyBean.java
rename to compat/jellybean/android/support/v4/view/accessibility/AccessibilityRecordCompatJellyBean.java
diff --git a/v4/jellybean/android/support/v4/widget/TextViewCompatJb.java b/compat/jellybean/android/support/v4/widget/TextViewCompatJb.java
similarity index 100%
rename from v4/jellybean/android/support/v4/widget/TextViewCompatJb.java
rename to compat/jellybean/android/support/v4/widget/TextViewCompatJb.java
diff --git a/v4/kitkat/android/support/v4/app/ActivityManagerCompatKitKat.java b/compat/kitkat/android/support/v4/app/ActivityManagerCompatKitKat.java
similarity index 100%
rename from v4/kitkat/android/support/v4/app/ActivityManagerCompatKitKat.java
rename to compat/kitkat/android/support/v4/app/ActivityManagerCompatKitKat.java
diff --git a/v4/kitkat/android/support/v4/content/ContextCompatKitKat.java b/compat/kitkat/android/support/v4/content/ContextCompatKitKat.java
similarity index 100%
rename from v4/kitkat/android/support/v4/content/ContextCompatKitKat.java
rename to compat/kitkat/android/support/v4/content/ContextCompatKitKat.java
diff --git a/v4/kitkat/android/support/v4/graphics/BitmapCompatKitKat.java b/compat/kitkat/android/support/v4/graphics/BitmapCompatKitKat.java
similarity index 100%
rename from v4/kitkat/android/support/v4/graphics/BitmapCompatKitKat.java
rename to compat/kitkat/android/support/v4/graphics/BitmapCompatKitKat.java
diff --git a/v4/kitkat/android/support/v4/graphics/drawable/DrawableCompatKitKat.java b/compat/kitkat/android/support/v4/graphics/drawable/DrawableCompatKitKat.java
similarity index 100%
rename from v4/kitkat/android/support/v4/graphics/drawable/DrawableCompatKitKat.java
rename to compat/kitkat/android/support/v4/graphics/drawable/DrawableCompatKitKat.java
diff --git a/v4/kitkat/android/support/v4/graphics/drawable/DrawableWrapperKitKat.java b/compat/kitkat/android/support/v4/graphics/drawable/DrawableWrapperKitKat.java
similarity index 100%
rename from v4/kitkat/android/support/v4/graphics/drawable/DrawableWrapperKitKat.java
rename to compat/kitkat/android/support/v4/graphics/drawable/DrawableWrapperKitKat.java
diff --git a/v4/kitkat/android/support/v4/os/EnvironmentCompatKitKat.java b/compat/kitkat/android/support/v4/os/EnvironmentCompatKitKat.java
similarity index 100%
rename from v4/kitkat/android/support/v4/os/EnvironmentCompatKitKat.java
rename to compat/kitkat/android/support/v4/os/EnvironmentCompatKitKat.java
diff --git a/v4/kitkat/android/support/v4/view/ScaleGestureDetectorCompatKitKat.java b/compat/kitkat/android/support/v4/view/ScaleGestureDetectorCompatKitKat.java
similarity index 100%
rename from v4/kitkat/android/support/v4/view/ScaleGestureDetectorCompatKitKat.java
rename to compat/kitkat/android/support/v4/view/ScaleGestureDetectorCompatKitKat.java
diff --git a/v4/kitkat/android/support/v4/view/ViewCompatKitKat.java b/compat/kitkat/android/support/v4/view/ViewCompatKitKat.java
similarity index 100%
rename from v4/kitkat/android/support/v4/view/ViewCompatKitKat.java
rename to compat/kitkat/android/support/v4/view/ViewCompatKitKat.java
diff --git a/v4/kitkat/android/support/v4/view/ViewParentCompatKitKat.java b/compat/kitkat/android/support/v4/view/ViewParentCompatKitKat.java
similarity index 100%
rename from v4/kitkat/android/support/v4/view/ViewParentCompatKitKat.java
rename to compat/kitkat/android/support/v4/view/ViewParentCompatKitKat.java
diff --git a/v4/kitkat/android/support/v4/view/ViewPropertyAnimatorCompatKK.java b/compat/kitkat/android/support/v4/view/ViewPropertyAnimatorCompatKK.java
similarity index 100%
rename from v4/kitkat/android/support/v4/view/ViewPropertyAnimatorCompatKK.java
rename to compat/kitkat/android/support/v4/view/ViewPropertyAnimatorCompatKK.java
diff --git a/v4/kitkat/android/support/v4/view/accessibility/AccessibilityEventCompatKitKat.java b/compat/kitkat/android/support/v4/view/accessibility/AccessibilityEventCompatKitKat.java
similarity index 100%
rename from v4/kitkat/android/support/v4/view/accessibility/AccessibilityEventCompatKitKat.java
rename to compat/kitkat/android/support/v4/view/accessibility/AccessibilityEventCompatKitKat.java
diff --git a/v4/kitkat/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatKitKat.java b/compat/kitkat/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatKitKat.java
similarity index 86%
rename from v4/kitkat/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatKitKat.java
rename to compat/kitkat/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatKitKat.java
index 0629d24..f8f37fd 100644
--- a/v4/kitkat/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatKitKat.java
+++ b/compat/kitkat/android/support/v4/view/accessibility/AccessibilityNodeInfoCompatKitKat.java
@@ -23,6 +23,10 @@
  * KitKat-specific AccessibilityNodeInfo API implementation.
  */
 class AccessibilityNodeInfoCompatKitKat {
+    private static final byte TRAIT_UNSET = -1;
+    private static final String TRAITS_KEY =
+            "android.view.accessibility.AccessibilityNodeInfo.traits";
+    private static final long TRAIT_HAS_IMAGE = 0x00000001;
     private static final String ROLE_DESCRIPTION_KEY =
             "AccessibilityNodeInfo.roleDescription";
 
@@ -91,6 +95,16 @@
         return ((AccessibilityNodeInfo) info).getExtras();
     }
 
+    private static long getTraits(Object info) {
+        return getExtras(info).getLong(TRAITS_KEY, TRAIT_UNSET);
+    }
+
+    private static void setTrait(Object info, long trait) {
+        Bundle extras = getExtras(info);
+        long traits = extras.getLong(TRAITS_KEY, 0);
+        extras.putLong(TRAITS_KEY, traits | trait);
+    }
+
     public static int getInputType(Object info) {
         return ((AccessibilityNodeInfo) info).getInputType();
     }
@@ -99,6 +113,19 @@
         ((AccessibilityNodeInfo) info).setInputType(inputType);
     }
 
+    public static boolean hasImage(Object info) {
+        long traits = getTraits(info);
+        if (traits == TRAIT_UNSET) {
+            return AccessibilityNodeInfoCompatIcs.hasImage(info);
+        } else {
+            return (traits & TRAIT_HAS_IMAGE) != 0;
+        }
+    }
+
+    public static void setHasImage(Object info, boolean hasImage) {
+        setTrait(info, TRAIT_HAS_IMAGE);
+    }
+
     public static boolean isDismissable(Object info) {
         return ((AccessibilityNodeInfo) info).isDismissable();
     }
diff --git a/v4/kitkat/android/support/v4/view/accessibility/AccessibilityNodeProviderCompatKitKat.java b/compat/kitkat/android/support/v4/view/accessibility/AccessibilityNodeProviderCompatKitKat.java
similarity index 100%
rename from v4/kitkat/android/support/v4/view/accessibility/AccessibilityNodeProviderCompatKitKat.java
rename to compat/kitkat/android/support/v4/view/accessibility/AccessibilityNodeProviderCompatKitKat.java
diff --git a/v4/kitkat/android/support/v4/widget/ListPopupWindowCompatKitKat.java b/compat/kitkat/android/support/v4/widget/ListPopupWindowCompatKitKat.java
similarity index 100%
rename from v4/kitkat/android/support/v4/widget/ListPopupWindowCompatKitKat.java
rename to compat/kitkat/android/support/v4/widget/ListPopupWindowCompatKitKat.java
diff --git a/v4/kitkat/android/support/v4/widget/ListViewCompatKitKat.java b/compat/kitkat/android/support/v4/widget/ListViewCompatKitKat.java
similarity index 100%
rename from v4/kitkat/android/support/v4/widget/ListViewCompatKitKat.java
rename to compat/kitkat/android/support/v4/widget/ListViewCompatKitKat.java
diff --git a/v4/kitkat/android/support/v4/widget/PopupMenuCompatKitKat.java b/compat/kitkat/android/support/v4/widget/PopupMenuCompatKitKat.java
similarity index 100%
rename from v4/kitkat/android/support/v4/widget/PopupMenuCompatKitKat.java
rename to compat/kitkat/android/support/v4/widget/PopupMenuCompatKitKat.java
diff --git a/v4/kitkat/android/support/v4/widget/PopupWindowCompatKitKat.java b/compat/kitkat/android/support/v4/widget/PopupWindowCompatKitKat.java
similarity index 100%
rename from v4/kitkat/android/support/v4/widget/PopupWindowCompatKitKat.java
rename to compat/kitkat/android/support/v4/widget/PopupWindowCompatKitKat.java
diff --git a/compat/tests/AndroidManifest.xml b/compat/tests/AndroidManifest.xml
new file mode 100644
index 0000000..e0acc6c
--- /dev/null
+++ b/compat/tests/AndroidManifest.xml
@@ -0,0 +1,47 @@
+<?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.
+  -->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          xmlns:tools="http://schemas.android.com/tools"
+          package="android.support.compat.test">
+    <uses-sdk
+            android:minSdkVersion="9"
+            android:targetSdkVersion="23"
+            tools:overrideLibrary="android.support.test, android.app, android.support.test.rule,
+                      android.support.test.espresso, android.support.test.espresso.idling"/>
+
+    <uses-permission android:name="android.permission.VIBRATE"/>
+    <uses-permission android:name="android.permission.WAKE_LOCK"/>
+    <uses-permission android:name="android.permission.READ_CONTACTS"/>
+    <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
+
+    <application
+            android:supportsRtl="true"
+            android:theme="@style/TestActivityTheme">
+        <uses-library android:name="android.test.runner" />
+        <activity android:name="android.support.v4.widget.TextViewTestActivity"/>
+
+        <activity android:name="android.support.v4.view.VpaActivity"/>
+
+        <activity
+            android:name="android.support.v4.ThemedYellowActivity"
+            android:theme="@style/YellowTheme" />
+    </application>
+
+    <instrumentation android:name="android.test.InstrumentationTestRunner"
+                     android:targetPackage="android.support.v4.test"
+                     />
+</manifest>
diff --git a/compat/tests/NO_DOCS b/compat/tests/NO_DOCS
new file mode 100644
index 0000000..0c81e4a
--- /dev/null
+++ b/compat/tests/NO_DOCS
@@ -0,0 +1,17 @@
+# 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.
+
+Having this file, named NO_DOCS, in a directory will prevent
+Android javadocs from being generated for java files under
+the directory. This is especially useful for test projects.
diff --git a/compat/tests/java/android/support/v4/BaseInstrumentationTestCase.java b/compat/tests/java/android/support/v4/BaseInstrumentationTestCase.java
new file mode 100644
index 0000000..5f9ce85
--- /dev/null
+++ b/compat/tests/java/android/support/v4/BaseInstrumentationTestCase.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2016 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;
+
+import android.app.Activity;
+import android.support.test.rule.ActivityTestRule;
+import android.support.test.runner.AndroidJUnit4;
+import org.junit.Rule;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public abstract class BaseInstrumentationTestCase<A extends Activity> {
+    @Rule
+    public final ActivityTestRule<A> mActivityTestRule;
+
+    protected BaseInstrumentationTestCase(Class<A> activityClass) {
+        mActivityTestRule = new ActivityTestRule<A>(activityClass);
+    }
+}
diff --git a/compat/tests/java/android/support/v4/BaseTestActivity.java b/compat/tests/java/android/support/v4/BaseTestActivity.java
new file mode 100755
index 0000000..e0682ce
--- /dev/null
+++ b/compat/tests/java/android/support/v4/BaseTestActivity.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2016 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;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.WindowManager;
+
+public abstract class BaseTestActivity extends Activity {
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+        final int contentView = getContentViewLayoutResId();
+        if (contentView > 0) {
+            setContentView(contentView);
+        }
+        onContentViewSet();
+        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+    }
+
+    protected abstract int getContentViewLayoutResId();
+
+    protected void onContentViewSet() {}
+}
diff --git a/v4/tests/java/android/support/v4/ThemedYellowActivity.java b/compat/tests/java/android/support/v4/ThemedYellowActivity.java
similarity index 100%
rename from v4/tests/java/android/support/v4/ThemedYellowActivity.java
rename to compat/tests/java/android/support/v4/ThemedYellowActivity.java
diff --git a/v4/tests/java/android/support/v4/content/ContextCompatTest.java b/compat/tests/java/android/support/v4/content/ContextCompatTest.java
similarity index 99%
rename from v4/tests/java/android/support/v4/content/ContextCompatTest.java
rename to compat/tests/java/android/support/v4/content/ContextCompatTest.java
index 56e89a5..5047ae3 100644
--- a/v4/tests/java/android/support/v4/content/ContextCompatTest.java
+++ b/compat/tests/java/android/support/v4/content/ContextCompatTest.java
@@ -23,9 +23,9 @@
 import android.content.res.ColorStateList;
 import android.graphics.drawable.Drawable;
 import android.os.Build;
+import android.support.compat.test.R;
 import android.support.v4.BaseInstrumentationTestCase;
 import android.support.v4.ThemedYellowActivity;
-import android.support.v4.test.R;
 import android.support.v4.testutils.TestUtils;
 import android.test.suitebuilder.annotation.SmallTest;
 import android.util.DisplayMetrics;
diff --git a/v4/tests/java/android/support/v4/content/res/ResourcesCompatTest.java b/compat/tests/java/android/support/v4/content/res/ResourcesCompatTest.java
similarity index 99%
rename from v4/tests/java/android/support/v4/content/res/ResourcesCompatTest.java
rename to compat/tests/java/android/support/v4/content/res/ResourcesCompatTest.java
index 19d5609..716796e 100644
--- a/v4/tests/java/android/support/v4/content/res/ResourcesCompatTest.java
+++ b/compat/tests/java/android/support/v4/content/res/ResourcesCompatTest.java
@@ -19,8 +19,8 @@
 import android.content.res.Resources;
 import android.graphics.drawable.Drawable;
 import android.os.Build;
+import android.support.compat.test.R;
 import android.support.test.InstrumentationRegistry;
-import android.support.v4.test.R;
 import android.support.v4.testutils.TestUtils;
 import android.test.suitebuilder.annotation.SmallTest;
 import android.util.DisplayMetrics;
diff --git a/v4/tests/java/android/support/v4/graphics/DrawableCompatTest.java b/compat/tests/java/android/support/v4/graphics/DrawableCompatTest.java
similarity index 92%
rename from v4/tests/java/android/support/v4/graphics/DrawableCompatTest.java
rename to compat/tests/java/android/support/v4/graphics/DrawableCompatTest.java
index 6716a7c..fce5ead 100644
--- a/v4/tests/java/android/support/v4/graphics/DrawableCompatTest.java
+++ b/compat/tests/java/android/support/v4/graphics/DrawableCompatTest.java
@@ -22,21 +22,15 @@
 import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.GradientDrawable;
-import android.support.test.runner.AndroidJUnit4;
 import android.os.Build;
+import android.support.test.runner.AndroidJUnit4;
 import android.support.v4.graphics.drawable.DrawableCompat;
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertSame;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.*;
 
 @RunWith(AndroidJUnit4.class)
 @SmallTest
diff --git a/v4/tests/java/android/support/v4/graphics/TestTintAwareDrawable.java b/compat/tests/java/android/support/v4/graphics/TestTintAwareDrawable.java
similarity index 100%
rename from v4/tests/java/android/support/v4/graphics/TestTintAwareDrawable.java
rename to compat/tests/java/android/support/v4/graphics/TestTintAwareDrawable.java
diff --git a/v4/tests/java/android/support/v4/testutils/LayoutDirectionActions.java b/compat/tests/java/android/support/v4/testutils/LayoutDirectionActions.java
similarity index 100%
rename from v4/tests/java/android/support/v4/testutils/LayoutDirectionActions.java
rename to compat/tests/java/android/support/v4/testutils/LayoutDirectionActions.java
diff --git a/compat/tests/java/android/support/v4/testutils/TestUtils.java b/compat/tests/java/android/support/v4/testutils/TestUtils.java
new file mode 100644
index 0000000..0bb8e1f
--- /dev/null
+++ b/compat/tests/java/android/support/v4/testutils/TestUtils.java
@@ -0,0 +1,113 @@
+/*
+ * 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.testutils;
+
+import java.lang.IllegalArgumentException;
+import java.lang.RuntimeException;
+
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+import android.support.annotation.ColorInt;
+import android.support.annotation.NonNull;
+import android.util.DisplayMetrics;
+import android.util.TypedValue;
+
+import junit.framework.Assert;
+
+public class TestUtils {
+    /**
+     * Checks whether all the pixels in the specified drawable are of the same specified color.
+     * If the passed <code>Drawable</code> does not have positive intrinsic dimensions set, this
+     * method will throw an <code>IllegalArgumentException</code>. If there is a color mismatch,
+     * this method will call <code>Assert.fail</code> with detailed description of the mismatch.
+     */
+    public static void assertAllPixelsOfColor(String failMessagePrefix, @NonNull Drawable drawable,
+            @ColorInt int color) {
+        int drawableWidth = drawable.getIntrinsicWidth();
+        int drawableHeight = drawable.getIntrinsicHeight();
+
+        if ((drawableWidth <= 0) || (drawableHeight <= 0)) {
+            throw new IllegalArgumentException("Drawable must be configured to have non-zero size");
+        }
+
+        assertAllPixelsOfColor(failMessagePrefix, drawable, drawableWidth, drawableHeight, color,
+                false);
+    }
+
+    /**
+     * Checks whether all the pixels in the specified drawable are of the same specified color.
+     *
+     * In case there is a color mismatch, the behavior of this method depends on the
+     * <code>throwExceptionIfFails</code> parameter. If it is <code>true</code>, this method will
+     * throw an <code>Exception</code> describing the mismatch. Otherwise this method will call
+     * <code>Assert.fail</code> with detailed description of the mismatch.
+     */
+    public static void assertAllPixelsOfColor(String failMessagePrefix, @NonNull Drawable drawable,
+            int drawableWidth, int drawableHeight, @ColorInt int color,
+            boolean throwExceptionIfFails) {
+        // Create a bitmap
+        Bitmap bitmap = Bitmap.createBitmap(drawableWidth, drawableHeight, Bitmap.Config.ARGB_8888);
+        // Create a canvas that wraps the bitmap
+        Canvas canvas = new Canvas(bitmap);
+        // Configure the drawable to have bounds that match its intrinsic size
+        drawable.setBounds(0, 0, drawableWidth, drawableHeight);
+        // And ask the drawable to draw itself to the canvas / bitmap
+        drawable.draw(canvas);
+
+        try {
+            int[] rowPixels = new int[drawableWidth];
+            for (int row = 0; row < drawableHeight; row++) {
+                bitmap.getPixels(rowPixels, 0, drawableWidth, 0, row, drawableWidth, 1);
+                for (int column = 0; column < drawableWidth; column++) {
+                    if (rowPixels[column] != color) {
+                        String mismatchDescription = failMessagePrefix
+                                + ": expected all drawable colors to be ["
+                                + Color.red(color) + "," + Color.green(color) + ","
+                                + Color.blue(color)
+                                + "] but at position (" + row + "," + column + ") found ["
+                                + Color.red(rowPixels[column]) + ","
+                                + Color.green(rowPixels[column]) + ","
+                                + Color.blue(rowPixels[column]) + "]";
+                        if (throwExceptionIfFails) {
+                            throw new RuntimeException(mismatchDescription);
+                        } else {
+                            Assert.fail(mismatchDescription);
+                        }
+                    }
+                }
+            }
+        } finally {
+            bitmap.recycle();
+        }
+    }
+
+    /**
+     * Checks whether the specified rectangle matches the specified left / top / right /
+     * bottom bounds.
+     */
+    public static void assertRectangleBounds(String failMessagePrefix, @NonNull Rect rectangle,
+            int left, int top, int right, int bottom) {
+        Assert.assertEquals(failMessagePrefix + " left", rectangle.left, left);
+        Assert.assertEquals(failMessagePrefix + " top", rectangle.top, top);
+        Assert.assertEquals(failMessagePrefix + " right", rectangle.right, right);
+        Assert.assertEquals(failMessagePrefix + " bottom", rectangle.bottom, bottom);
+    }
+}
\ No newline at end of file
diff --git a/v4/tests/java/android/support/v4/testutils/TextViewActions.java b/compat/tests/java/android/support/v4/testutils/TextViewActions.java
similarity index 100%
rename from v4/tests/java/android/support/v4/testutils/TextViewActions.java
rename to compat/tests/java/android/support/v4/testutils/TextViewActions.java
diff --git a/v4/tests/java/android/support/v4/view/GravityCompatTest.java b/compat/tests/java/android/support/v4/view/GravityCompatTest.java
similarity index 100%
rename from v4/tests/java/android/support/v4/view/GravityCompatTest.java
rename to compat/tests/java/android/support/v4/view/GravityCompatTest.java
diff --git a/v4/tests/java/android/support/v4/view/MarginLayoutParamsCompatTest.java b/compat/tests/java/android/support/v4/view/MarginLayoutParamsCompatTest.java
similarity index 100%
rename from v4/tests/java/android/support/v4/view/MarginLayoutParamsCompatTest.java
rename to compat/tests/java/android/support/v4/view/MarginLayoutParamsCompatTest.java
diff --git a/v4/tests/java/android/support/v4/view/ViewCompatTest.java b/compat/tests/java/android/support/v4/view/ViewCompatTest.java
similarity index 100%
rename from v4/tests/java/android/support/v4/view/ViewCompatTest.java
rename to compat/tests/java/android/support/v4/view/ViewCompatTest.java
diff --git a/v4/tests/java/android/support/v4/view/ViewPropertyAnimatorCompatTest.java b/compat/tests/java/android/support/v4/view/ViewPropertyAnimatorCompatTest.java
similarity index 98%
rename from v4/tests/java/android/support/v4/view/ViewPropertyAnimatorCompatTest.java
rename to compat/tests/java/android/support/v4/view/ViewPropertyAnimatorCompatTest.java
index 84be6ec..b04c195 100644
--- a/v4/tests/java/android/support/v4/view/ViewPropertyAnimatorCompatTest.java
+++ b/compat/tests/java/android/support/v4/view/ViewPropertyAnimatorCompatTest.java
@@ -17,9 +17,9 @@
 package android.support.v4.view;
 
 import android.app.Activity;
+import android.support.compat.test.R;
 import android.support.test.InstrumentationRegistry;
 import android.support.v4.BaseInstrumentationTestCase;
-import android.support.v4.test.R;
 import android.test.suitebuilder.annotation.MediumTest;
 import android.view.View;
 
diff --git a/v4/tests/java/android/support/v4/view/VpaActivity.java b/compat/tests/java/android/support/v4/view/VpaActivity.java
similarity index 95%
rename from v4/tests/java/android/support/v4/view/VpaActivity.java
rename to compat/tests/java/android/support/v4/view/VpaActivity.java
index 64d698a..7b19151 100644
--- a/v4/tests/java/android/support/v4/view/VpaActivity.java
+++ b/compat/tests/java/android/support/v4/view/VpaActivity.java
@@ -16,8 +16,8 @@
 
 package android.support.v4.view;
 
+import android.support.compat.test.R;
 import android.support.v4.BaseTestActivity;
-import android.support.v4.test.R;
 
 public class VpaActivity extends BaseTestActivity {
     @Override
diff --git a/v4/tests/java/android/support/v4/widget/DonutScrollerCompatTest.java b/compat/tests/java/android/support/v4/widget/DonutScrollerCompatTest.java
similarity index 100%
rename from v4/tests/java/android/support/v4/widget/DonutScrollerCompatTest.java
rename to compat/tests/java/android/support/v4/widget/DonutScrollerCompatTest.java
diff --git a/v4/tests/java/android/support/v4/widget/GingerbreadScrollerCompatTest.java b/compat/tests/java/android/support/v4/widget/GingerbreadScrollerCompatTest.java
similarity index 100%
rename from v4/tests/java/android/support/v4/widget/GingerbreadScrollerCompatTest.java
rename to compat/tests/java/android/support/v4/widget/GingerbreadScrollerCompatTest.java
diff --git a/v4/tests/java/android/support/v4/widget/IcsScrollerCompatTest.java b/compat/tests/java/android/support/v4/widget/IcsScrollerCompatTest.java
similarity index 100%
rename from v4/tests/java/android/support/v4/widget/IcsScrollerCompatTest.java
rename to compat/tests/java/android/support/v4/widget/IcsScrollerCompatTest.java
diff --git a/v4/tests/java/android/support/v4/widget/ScrollerCompatTestBase.java b/compat/tests/java/android/support/v4/widget/ScrollerCompatTestBase.java
similarity index 100%
rename from v4/tests/java/android/support/v4/widget/ScrollerCompatTestBase.java
rename to compat/tests/java/android/support/v4/widget/ScrollerCompatTestBase.java
diff --git a/v4/tests/java/android/support/v4/widget/TextViewCompatTest.java b/compat/tests/java/android/support/v4/widget/TextViewCompatTest.java
similarity index 99%
rename from v4/tests/java/android/support/v4/widget/TextViewCompatTest.java
rename to compat/tests/java/android/support/v4/widget/TextViewCompatTest.java
index 3ef236f..27a85ef 100644
--- a/v4/tests/java/android/support/v4/widget/TextViewCompatTest.java
+++ b/compat/tests/java/android/support/v4/widget/TextViewCompatTest.java
@@ -21,8 +21,8 @@
 import android.graphics.drawable.ColorDrawable;
 import android.graphics.drawable.Drawable;
 import android.support.annotation.ColorInt;
+import android.support.compat.test.R;
 import android.support.v4.BaseInstrumentationTestCase;
-import android.support.v4.test.R;
 import android.support.v4.testutils.TestUtils;
 import android.support.v4.view.ViewCompat;
 import android.test.suitebuilder.annotation.MediumTest;
diff --git a/v4/tests/java/android/support/v4/widget/TextViewTestActivity.java b/compat/tests/java/android/support/v4/widget/TextViewTestActivity.java
similarity index 95%
rename from v4/tests/java/android/support/v4/widget/TextViewTestActivity.java
rename to compat/tests/java/android/support/v4/widget/TextViewTestActivity.java
index dcaab70..d99a534 100644
--- a/v4/tests/java/android/support/v4/widget/TextViewTestActivity.java
+++ b/compat/tests/java/android/support/v4/widget/TextViewTestActivity.java
@@ -16,8 +16,8 @@
 
 package android.support.v4.widget;
 
+import android.support.compat.test.R;
 import android.support.v4.BaseTestActivity;
-import android.support.v4.test.R;
 
 public class TextViewTestActivity extends BaseTestActivity {
     @Override
diff --git a/v4/tests/res/color/complex_themed_selector.xml b/compat/tests/res/color/complex_themed_selector.xml
similarity index 100%
rename from v4/tests/res/color/complex_themed_selector.xml
rename to compat/tests/res/color/complex_themed_selector.xml
diff --git a/v4/tests/res/color/complex_unthemed_selector.xml b/compat/tests/res/color/complex_unthemed_selector.xml
similarity index 100%
rename from v4/tests/res/color/complex_unthemed_selector.xml
rename to compat/tests/res/color/complex_unthemed_selector.xml
diff --git a/v4/tests/res/color/simple_themed_selector.xml b/compat/tests/res/color/simple_themed_selector.xml
similarity index 100%
rename from v4/tests/res/color/simple_themed_selector.xml
rename to compat/tests/res/color/simple_themed_selector.xml
diff --git a/v4/tests/res/drawable-hdpi/density_aware_drawable.png b/compat/tests/res/drawable-hdpi/density_aware_drawable.png
similarity index 100%
rename from v4/tests/res/drawable-hdpi/density_aware_drawable.png
rename to compat/tests/res/drawable-hdpi/density_aware_drawable.png
Binary files differ
diff --git a/v4/tests/res/drawable-ldpi/aliased_drawable_alternate.png b/compat/tests/res/drawable-ldpi/aliased_drawable_alternate.png
similarity index 100%
rename from v4/tests/res/drawable-ldpi/aliased_drawable_alternate.png
rename to compat/tests/res/drawable-ldpi/aliased_drawable_alternate.png
Binary files differ
diff --git a/v4/tests/res/drawable-mdpi/density_aware_drawable.png b/compat/tests/res/drawable-mdpi/density_aware_drawable.png
similarity index 100%
rename from v4/tests/res/drawable-mdpi/density_aware_drawable.png
rename to compat/tests/res/drawable-mdpi/density_aware_drawable.png
Binary files differ
diff --git a/v4/tests/res/drawable-mdpi/test_drawable.png b/compat/tests/res/drawable-mdpi/test_drawable.png
similarity index 100%
rename from v4/tests/res/drawable-mdpi/test_drawable.png
rename to compat/tests/res/drawable-mdpi/test_drawable.png
Binary files differ
diff --git a/v4/tests/res/drawable-xhdpi/density_aware_drawable.png b/compat/tests/res/drawable-xhdpi/density_aware_drawable.png
similarity index 100%
rename from v4/tests/res/drawable-xhdpi/density_aware_drawable.png
rename to compat/tests/res/drawable-xhdpi/density_aware_drawable.png
Binary files differ
diff --git a/v4/tests/res/drawable-xxhdpi/density_aware_drawable.png b/compat/tests/res/drawable-xxhdpi/density_aware_drawable.png
similarity index 100%
rename from v4/tests/res/drawable-xxhdpi/density_aware_drawable.png
rename to compat/tests/res/drawable-xxhdpi/density_aware_drawable.png
Binary files differ
diff --git a/v4/tests/res/drawable/test_drawable_blue.xml b/compat/tests/res/drawable/test_drawable_blue.xml
similarity index 100%
rename from v4/tests/res/drawable/test_drawable_blue.xml
rename to compat/tests/res/drawable/test_drawable_blue.xml
diff --git a/v4/tests/res/drawable/test_drawable_green.xml b/compat/tests/res/drawable/test_drawable_green.xml
similarity index 100%
rename from v4/tests/res/drawable/test_drawable_green.xml
rename to compat/tests/res/drawable/test_drawable_green.xml
diff --git a/v4/tests/res/drawable/test_drawable_red.xml b/compat/tests/res/drawable/test_drawable_red.xml
similarity index 100%
rename from v4/tests/res/drawable/test_drawable_red.xml
rename to compat/tests/res/drawable/test_drawable_red.xml
diff --git a/v4/tests/res/drawable/themed_bitmap.xml b/compat/tests/res/drawable/themed_bitmap.xml
similarity index 100%
rename from v4/tests/res/drawable/themed_bitmap.xml
rename to compat/tests/res/drawable/themed_bitmap.xml
diff --git a/v4/tests/res/drawable/themed_drawable.xml b/compat/tests/res/drawable/themed_drawable.xml
similarity index 100%
rename from v4/tests/res/drawable/themed_drawable.xml
rename to compat/tests/res/drawable/themed_drawable.xml
diff --git a/v4/tests/res/layout/text_view_activity.xml b/compat/tests/res/layout/text_view_activity.xml
similarity index 100%
rename from v4/tests/res/layout/text_view_activity.xml
rename to compat/tests/res/layout/text_view_activity.xml
diff --git a/v4/tests/res/layout/vpa_activity.xml b/compat/tests/res/layout/vpa_activity.xml
similarity index 100%
rename from v4/tests/res/layout/vpa_activity.xml
rename to compat/tests/res/layout/vpa_activity.xml
diff --git a/v4/tests/res/values-hdpi/dimens.xml b/compat/tests/res/values-hdpi/dimens.xml
similarity index 100%
rename from v4/tests/res/values-hdpi/dimens.xml
rename to compat/tests/res/values-hdpi/dimens.xml
diff --git a/v4/tests/res/values-mdpi/dimens.xml b/compat/tests/res/values-mdpi/dimens.xml
similarity index 100%
rename from v4/tests/res/values-mdpi/dimens.xml
rename to compat/tests/res/values-mdpi/dimens.xml
diff --git a/v4/tests/res/values-xhdpi/dimens.xml b/compat/tests/res/values-xhdpi/dimens.xml
similarity index 100%
rename from v4/tests/res/values-xhdpi/dimens.xml
rename to compat/tests/res/values-xhdpi/dimens.xml
diff --git a/v4/tests/res/values-xxhdpi/dimens.xml b/compat/tests/res/values-xxhdpi/dimens.xml
similarity index 100%
rename from v4/tests/res/values-xxhdpi/dimens.xml
rename to compat/tests/res/values-xxhdpi/dimens.xml
diff --git a/v4/tests/res/values/attrs.xml b/compat/tests/res/values/attrs.xml
similarity index 100%
rename from v4/tests/res/values/attrs.xml
rename to compat/tests/res/values/attrs.xml
diff --git a/compat/tests/res/values/colors.xml b/compat/tests/res/values/colors.xml
new file mode 100644
index 0000000..15158cf
--- /dev/null
+++ b/compat/tests/res/values/colors.xml
@@ -0,0 +1,37 @@
+<?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 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <color name="text_color">#FF8090</color>
+
+    <color name="selector_color_default">#70A0C0</color>
+    <color name="selector_color_focused">#70B0F0</color>
+    <color name="selector_color_pressed">#6080B0</color>
+
+    <color name="theme_color_yellow_default">#F0B000</color>
+    <color name="theme_color_yellow_focused">#F0A020</color>
+    <color name="theme_color_yellow_pressed">#E0A040</color>
+    <color name="theme_color_yellow_selected">#E8A848</color>
+
+    <color name="theme_color_lilac_default">#F080F0</color>
+    <color name="theme_color_lilac_focused">#F070D0</color>
+    <color name="theme_color_lilac_pressed">#E070A0</color>
+    <color name="theme_color_lilac_selected">#E878A8</color>
+
+    <color name="test_red">#FF6030</color>
+    <color name="test_green">#50E080</color>
+    <color name="test_blue">#3050CF</color>
+    <color name="test_yellow">#F0F000</color>
+</resources>
diff --git a/compat/tests/res/values/dimens.xml b/compat/tests/res/values/dimens.xml
new file mode 100644
index 0000000..5c82462
--- /dev/null
+++ b/compat/tests/res/values/dimens.xml
@@ -0,0 +1,22 @@
+<?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 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <dimen name="text_medium_size">20sp</dimen>
+
+    <dimen name="drawable_small_size">12dip</dimen>
+    <dimen name="drawable_medium_size">16dip</dimen>
+    <dimen name="drawable_large_size">20dip</dimen>
+</resources>
\ No newline at end of file
diff --git a/v4/tests/res/values/drawables.xml b/compat/tests/res/values/drawables.xml
similarity index 100%
rename from v4/tests/res/values/drawables.xml
rename to compat/tests/res/values/drawables.xml
diff --git a/compat/tests/res/values/strings.xml b/compat/tests/res/values/strings.xml
new file mode 100644
index 0000000..4aebfae
--- /dev/null
+++ b/compat/tests/res/values/strings.xml
@@ -0,0 +1,23 @@
+<?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 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Short text for testing. -->
+    <string name="test_text_short">Lorem ipsum</string>
+    <!-- Medium text for testing. -->
+    <string name="test_text_medium">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam dui neque, suscipit quis rhoncus vitae, rhoncus hendrerit neque.</string>
+    <!-- Long text for testing. -->
+    <string name="test_text_long">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam dui neque, suscipit quis rhoncus vitae, rhoncus hendrerit neque. Proin ac mauris cursus nulla aliquam viverra. Vivamus pharetra luctus magna, lacinia imperdiet leo mollis eget. Fusce a diam ipsum. Etiam sit amet nisl et velit aliquam dignissim eget nec nisi. Duis bibendum euismod tortor non pulvinar. Nunc quis neque ultricies nulla luctus aliquet. Sed consectetur, orci ac vehicula consectetur, metus sem pellentesque turpis, sed venenatis nisi lorem vitae ante.</string>
+</resources>
\ No newline at end of file
diff --git a/compat/tests/res/values/styles.xml b/compat/tests/res/values/styles.xml
new file mode 100644
index 0000000..447d5ec
--- /dev/null
+++ b/compat/tests/res/values/styles.xml
@@ -0,0 +1,37 @@
+<?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 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <style name="TestActivityTheme">
+        <item name="android:windowAnimationStyle">@null</item>
+    </style>
+    <style name="TextMediumStyle" parent="@android:style/TextAppearance.Medium">
+        <item name="android:textSize">@dimen/text_medium_size</item>
+        <item name="android:textColor">@color/text_color</item>
+        <item name="android:textStyle">italic</item>
+    </style>
+
+    <style name="YellowTheme" parent="@android:style/Theme.Light">
+        <item name="theme_color_default">@color/theme_color_yellow_default</item>
+        <item name="theme_color_focused">@color/theme_color_yellow_focused</item>
+        <item name="theme_color_pressed">@color/theme_color_yellow_pressed</item>
+    </style>
+
+    <style name="LilacTheme" parent="@android:style/Theme.Light">
+        <item name="theme_color_default">@color/theme_color_lilac_default</item>
+        <item name="theme_color_focused">@color/theme_color_lilac_focused</item>
+        <item name="theme_color_pressed">@color/theme_color_lilac_pressed</item>
+    </style>
+</resources>
\ No newline at end of file
diff --git a/core-combined/Android.mk b/core-combined/Android.mk
new file mode 100644
index 0000000..a267f85
--- /dev/null
+++ b/core-combined/Android.mk
@@ -0,0 +1,34 @@
+# Copyright (C) 2016 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.
+
+LOCAL_PATH := $(call my-dir)
+
+# Here is the final static library that apps can link against.
+# Applications that use this library must specify
+#
+#   LOCAL_STATIC_ANDROID_LIBRARIES := \
+#       android-support-v4
+#
+# in their makefiles to include the resources and their dependencies in their package.
+include $(CLEAR_VARS)
+LOCAL_USE_AAPT2 := true
+LOCAL_MODULE := android-support-v4
+LOCAL_SDK_VERSION := $(SUPPORT_CURRENT_SDK_VERSION)
+LOCAL_STATIC_JAVA_LIBRARIES := \
+    android-support-compat \
+    android-support-core
+LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
+LOCAL_JAR_EXCLUDE_FILES := none
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/core-combined/AndroidManifest.xml b/core-combined/AndroidManifest.xml
new file mode 100644
index 0000000..d76c581
--- /dev/null
+++ b/core-combined/AndroidManifest.xml
@@ -0,0 +1,21 @@
+<?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.
+-->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          xmlns:tools="http://schemas.android.com/tools"
+          package="android.support.v4">
+    <uses-sdk android:minSdkVersion="9" tools:overrideLibrary="android.support.v4"/>
+    <application />
+</manifest>
diff --git a/core-combined/build.gradle b/core-combined/build.gradle
new file mode 100644
index 0000000..0e1ac7d
--- /dev/null
+++ b/core-combined/build.gradle
@@ -0,0 +1,29 @@
+apply plugin: 'com.android.library'
+
+archivesBaseName = 'support-v4'
+dependencies {
+    compile project(':support-compat')
+    compile project(':support-core')
+}
+
+android {
+    compileSdkVersion project.ext.currentSdk
+
+    defaultConfig {
+        minSdkVersion 9
+        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+        // This disables the builds tools automatic vector -> PNG generation
+        generatedDensities = []
+    }
+
+    sourceSets {
+        main.manifest.srcFile 'AndroidManifest.xml'
+    }
+
+    compileOptions {
+        sourceCompatibility JavaVersion.VERSION_1_7
+        targetCompatibility JavaVersion.VERSION_1_7
+    }
+}
+
+
diff --git a/design/AndroidManifest.xml b/design/AndroidManifest.xml
index 963f89b..82f19db 100644
--- a/design/AndroidManifest.xml
+++ b/design/AndroidManifest.xml
@@ -15,6 +15,6 @@
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           package="android.support.design">
-    <uses-sdk android:minSdkVersion="7"/>
+    <uses-sdk android:minSdkVersion="9"/>
     <application />
 </manifest>
diff --git a/design/build.gradle b/design/build.gradle
index 7148e50..a018bb1 100644
--- a/design/build.gradle
+++ b/design/build.gradle
@@ -23,7 +23,7 @@
     compileSdkVersion project.ext.currentSdk
 
     defaultConfig {
-        minSdkVersion 7
+        minSdkVersion 9
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
         // This disables the builds tools automatic vector -> PNG generation
         generatedDensities = []
diff --git a/design/tests/AndroidManifest.xml b/design/tests/AndroidManifest.xml
index 2fb8d92..ba19280 100755
--- a/design/tests/AndroidManifest.xml
+++ b/design/tests/AndroidManifest.xml
@@ -19,7 +19,7 @@
           package="android.support.design.test">
 
     <uses-sdk
-            android:minSdkVersion="7"
+            android:minSdkVersion="9"
             android:targetSdkVersion="23"
             tools:overrideLibrary="android.support.test, android.app, android.support.test.rule,
                       android.support.test.espresso, android.support.test.espresso.idling"/>
diff --git a/graphics/drawable/Android.mk b/graphics/drawable/Android.mk
index 2aa2767..d89d24f 100644
--- a/graphics/drawable/Android.mk
+++ b/graphics/drawable/Android.mk
@@ -21,13 +21,7 @@
 # ---------------------------------------------
 include $(CLEAR_VARS)
 LOCAL_MODULE := android-support-vectordrawable
-
-ifdef SUPPORT_CURRENT_SDK_VERSION
 LOCAL_SDK_VERSION := $(SUPPORT_CURRENT_SDK_VERSION)
-else
-LOCAL_SDK_VERSION := current
-endif
-
 LOCAL_SRC_FILES := $(call all-java-files-under, static/src)
 
 LOCAL_JAVA_LIBRARIES := android-support-v4
@@ -51,13 +45,7 @@
 # ---------------------------------------------
 include $(CLEAR_VARS)
 LOCAL_MODULE := android-support-animatedvectordrawable
-
-ifdef SUPPORT_CURRENT_SDK_VERSION
 LOCAL_SDK_VERSION := $(SUPPORT_CURRENT_SDK_VERSION)
-else
-LOCAL_SDK_VERSION := current
-endif
-
 LOCAL_SRC_FILES := $(call all-java-files-under, animated/src)
 
 LOCAL_JAVA_LIBRARIES := android-support-v4 android-support-vectordrawable
diff --git a/graphics/drawable/static/build.gradle b/graphics/drawable/static/build.gradle
index f7a5b97..845686d 100644
--- a/graphics/drawable/static/build.gradle
+++ b/graphics/drawable/static/build.gradle
@@ -17,7 +17,7 @@
     compileSdkVersion 23
 
     defaultConfig {
-        minSdkVersion 7
+        minSdkVersion 9
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
         // This disables the builds tools automatic vector -> PNG generation
         generatedDensities = []
diff --git a/graphics/drawable/static/tests/AndroidManifest.xml b/graphics/drawable/static/tests/AndroidManifest.xml
index 27f3fbd..3a6942d 100644
--- a/graphics/drawable/static/tests/AndroidManifest.xml
+++ b/graphics/drawable/static/tests/AndroidManifest.xml
@@ -18,7 +18,7 @@
           xmlns:tools="http://schemas.android.com/tools"
           package="android.support.graphics.drawable.test">
     <uses-sdk
-            android:minSdkVersion="8"
+            android:minSdkVersion="9"
             android:targetSdkVersion="23"
             tools:overrideLibrary="android.support.test, android.app, android.support.test.rule,
                 android.support.test.espresso, android.support.test.espresso.idling" />
diff --git a/percent/Android.mk b/percent/Android.mk
index 59556c0..16afe7f 100644
--- a/percent/Android.mk
+++ b/percent/Android.mk
@@ -24,7 +24,7 @@
 include $(CLEAR_VARS)
 LOCAL_USE_AAPT2 := true
 LOCAL_MODULE := android-support-percent
-LOCAL_SDK_VERSION := 8
+LOCAL_SDK_VERSION := 9
 LOCAL_SDK_RES_VERSION := $(SUPPORT_CURRENT_SDK_VERSION)
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
diff --git a/percent/AndroidManifest.xml b/percent/AndroidManifest.xml
index 8668424..e979013 100644
--- a/percent/AndroidManifest.xml
+++ b/percent/AndroidManifest.xml
@@ -15,6 +15,6 @@
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           package="android.support.percent">
-    <uses-sdk android:minSdkVersion="8"/>
+    <uses-sdk android:minSdkVersion="9"/>
     <application />
 </manifest>
diff --git a/percent/build.gradle b/percent/build.gradle
index 0603ad9..72304a1 100644
--- a/percent/build.gradle
+++ b/percent/build.gradle
@@ -18,7 +18,7 @@
     compileSdkVersion project.ext.currentSdk
 
     defaultConfig {
-        minSdkVersion 8
+        minSdkVersion 9
 
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
     }
diff --git a/percent/src/android/support/percent/PercentLayoutHelper.java b/percent/src/android/support/percent/PercentLayoutHelper.java
index a390c81..3cb5f47 100644
--- a/percent/src/android/support/percent/PercentLayoutHelper.java
+++ b/percent/src/android/support/percent/PercentLayoutHelper.java
@@ -28,6 +28,8 @@
 
 import android.support.percent.R;
 
+import java.lang.Math;
+
 /**
  * Helper for layouts that want to support percentage based dimensions.
  *
@@ -412,21 +414,21 @@
                             || mPreservedParams.height == 0) && (heightPercent < 0);
 
             if (widthPercent >= 0) {
-                params.width = (int) (widthHint * widthPercent);
+                params.width = Math.round(widthHint * widthPercent);
             }
 
             if (heightPercent >= 0) {
-                params.height = (int) (heightHint * heightPercent);
+                params.height = Math.round(heightHint * heightPercent);
             }
 
             if (aspectRatio >= 0) {
                 if (widthNotSet) {
-                    params.width = (int) (params.height * aspectRatio);
+                    params.width = Math.round(params.height * aspectRatio);
                     // Keep track that we've filled the width based on the height and aspect ratio.
                     mPreservedParams.mIsWidthComputedFromAspectRatio = true;
                 }
                 if (heightNotSet) {
-                    params.height = (int) (params.width / aspectRatio);
+                    params.height = Math.round(params.width / aspectRatio);
                     // Keep track that we've filled the height based on the width and aspect ratio.
                     mPreservedParams.mIsHeightComputedFromAspectRatio = true;
                 }
@@ -468,26 +470,26 @@
                     MarginLayoutParamsCompat.getMarginEnd(params));
 
             if (leftMarginPercent >= 0) {
-                params.leftMargin = (int) (widthHint * leftMarginPercent);
+                params.leftMargin = Math.round(widthHint * leftMarginPercent);
             }
             if (topMarginPercent >= 0) {
-                params.topMargin = (int) (heightHint * topMarginPercent);
+                params.topMargin = Math.round(heightHint * topMarginPercent);
             }
             if (rightMarginPercent >= 0) {
-                params.rightMargin = (int) (widthHint * rightMarginPercent);
+                params.rightMargin = Math.round(widthHint * rightMarginPercent);
             }
             if (bottomMarginPercent >= 0) {
-                params.bottomMargin = (int) (heightHint * bottomMarginPercent);
+                params.bottomMargin = Math.round(heightHint * bottomMarginPercent);
             }
             boolean shouldResolveLayoutDirection = false;
             if (startMarginPercent >= 0) {
                 MarginLayoutParamsCompat.setMarginStart(params,
-                        (int) (widthHint * startMarginPercent));
+                        Math.round(widthHint * startMarginPercent));
                 shouldResolveLayoutDirection = true;
             }
             if (endMarginPercent >= 0) {
                 MarginLayoutParamsCompat.setMarginEnd(params,
-                        (int) (widthHint * endMarginPercent));
+                        Math.round(widthHint * endMarginPercent));
                 shouldResolveLayoutDirection = true;
             }
             if (shouldResolveLayoutDirection && (view != null)) {
diff --git a/percent/tests/AndroidManifest.xml b/percent/tests/AndroidManifest.xml
index 993e69b..ba3aa19 100644
--- a/percent/tests/AndroidManifest.xml
+++ b/percent/tests/AndroidManifest.xml
@@ -18,7 +18,7 @@
           xmlns:tools="http://schemas.android.com/tools"
           package="android.support.percent.test">
     <uses-sdk
-        android:minSdkVersion="8"
+        android:minSdkVersion="9"
         android:targetSdkVersion="23"
         tools:overrideLibrary="android.support.test, android.app, android.support.test.rule,
               android.support.test.espresso, android.support.test.espresso.idling" />
diff --git a/settings.gradle b/settings.gradle
index 0e5c223..501bce6 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -2,8 +2,14 @@
 include ':support-annotations'
 project(':support-annotations').projectDir = new File(rootDir, 'annotations')
 
+include ':support-compat'
+project(':support-compat').projectDir = new File(rootDir, 'compat')
+
+include ':support-core'
+project(':support-core').projectDir = new File(rootDir, 'v4')
+
 include ':support-v4'
-project(':support-v4').projectDir = new File(rootDir, 'v4')
+project(':support-v4').projectDir = new File(rootDir, 'core-combined')
 
 include ':support-appcompat-v7'
 project(':support-appcompat-v7').projectDir = new File(rootDir, 'v7/appcompat')
diff --git a/v17/leanback/res/values-af/strings.xml b/v17/leanback/res/values-af/strings.xml
index d591f07..2f2ca18 100644
--- a/v17/leanback/res/values-af/strings.xml
+++ b/v17/leanback/res/values-af/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Navigasiekieslys"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Soekhandeling"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Soek"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Praat om te soek"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"BEGIN HIER"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Volgende"</string>
 </resources>
diff --git a/v17/leanback/res/values-am/strings.xml b/v17/leanback/res/values-am/strings.xml
index 9fe6963..c4b461a 100644
--- a/v17/leanback/res/values-am/strings.xml
+++ b/v17/leanback/res/values-am/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"የዳሰሳ ምናሌ"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"እርምጃ ይፈልጉ"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"ይፈልጉ"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"ለመፈለግ ይናገሩ"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">"፦"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ይጀምሩ"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"ቀጣይ"</string>
 </resources>
diff --git a/v17/leanback/res/values-ar/strings.xml b/v17/leanback/res/values-ar/strings.xml
index f3ac0ed..cda830c 100644
--- a/v17/leanback/res/values-ar/strings.xml
+++ b/v17/leanback/res/values-ar/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"قائمة التنقل"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"إجراء البحث"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"بحث"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"التحدث  للبحث"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"البدء"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"التالية"</string>
 </resources>
diff --git a/v17/leanback/res/values-az-rAZ/strings.xml b/v17/leanback/res/values-az-rAZ/strings.xml
index 15ddc65..f9f0277 100644
--- a/v17/leanback/res/values-az-rAZ/strings.xml
+++ b/v17/leanback/res/values-az-rAZ/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Naviqasiya menyusu"</string>
     <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>
diff --git a/v17/leanback/res/values-b+sr+Latn/strings.xml b/v17/leanback/res/values-b+sr+Latn/strings.xml
index 9406bb6..5c466fb 100644
--- a/v17/leanback/res/values-b+sr+Latn/strings.xml
+++ b/v17/leanback/res/values-b+sr+Latn/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Meni za navigaciju"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Radnja pretrage"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Pretražite"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Govorite da biste pretraživali"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ZAPOČNITE"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Dalje"</string>
 </resources>
diff --git a/v17/leanback/res/values-be-rBY/strings.xml b/v17/leanback/res/values-be-rBY/strings.xml
new file mode 100644
index 0000000..b9e72bb
--- /dev/null
+++ b/v17/leanback/res/values-be-rBY/strings.xml
@@ -0,0 +1,57 @@
+<?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="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Меню навігацыі"</string>
+    <string name="orb_search_action" msgid="5651268540267663887">"Аперацыя пошуку"</string>
+    <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_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>
+    <string name="lb_playback_controls_pause" msgid="6189521112079849518">"Прыпыніць"</string>
+    <string name="lb_playback_controls_fast_forward" msgid="8569951318244687220">"Перамотка ўперад"</string>
+    <string name="lb_playback_controls_fast_forward_multiplier" msgid="1058753672110224526">"Перамотка ўперад %1$dX"</string>
+    <string name="lb_playback_controls_rewind" msgid="2227196334132350684">"Перамотка назад"</string>
+    <string name="lb_playback_controls_rewind_multiplier" msgid="1640629531440849942">"Перамотка назад %1$dX"</string>
+    <string name="lb_playback_controls_skip_next" msgid="2946499493161095772">"Перайсці да наступнага элемента"</string>
+    <string name="lb_playback_controls_skip_previous" msgid="2326801832933178348">"Перайсці да папярэдняга элемента"</string>
+    <string name="lb_playback_controls_more_actions" msgid="2330770008796987655">"Дадатковыя дзеянні"</string>
+    <string name="lb_playback_controls_thumb_up" msgid="6530420347129222601">"Зняць адзнаку «Падабаецца»"</string>
+    <string name="lb_playback_controls_thumb_up_outline" msgid="1577637924003500946">"Паставіць адзнаку «Падабаецца»"</string>
+    <string name="lb_playback_controls_thumb_down" msgid="4498041193172964797">"Зняць адзнаку «Не падабаецца»"</string>
+    <string name="lb_playback_controls_thumb_down_outline" msgid="2936020280629424365">"Паставіць адзнаку «Не падабаецца»"</string>
+    <string name="lb_playback_controls_repeat_none" msgid="87476947476529036">"Не паўтараць нічога"</string>
+    <string name="lb_playback_controls_repeat_all" msgid="6730354406289599000">"Паўтарыць усё"</string>
+    <string name="lb_playback_controls_repeat_one" msgid="3285202316452203619">"Паўтарыць адзін элемент"</string>
+    <string name="lb_playback_controls_shuffle_enable" msgid="1099874107835264529">"Уключыць выпадковы парадак"</string>
+    <string name="lb_playback_controls_shuffle_disable" msgid="8388150597335115226">"Адключыць выпадковы парадак"</string>
+    <string name="lb_playback_controls_high_quality_enable" msgid="202415780019335254">"Уключыць высокую якасць"</string>
+    <string name="lb_playback_controls_high_quality_disable" msgid="8637371582779057866">"Адключыць высокую якасць"</string>
+    <string name="lb_playback_controls_closed_captioning_enable" msgid="2429655367176440226">"Уключыць схаваныя цітры"</string>
+    <string name="lb_playback_controls_closed_captioning_disable" msgid="6133362019475930048">"Адключыць схаваныя цітры"</string>
+    <string name="lb_playback_controls_picture_in_picture" msgid="3040035547765350690">"Калі ласка, увядзіце выяву ў рэжыме Выяў"</string>
+    <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Завяршыць"</string>
+    <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Далей"</string>
+    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
+    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
+    <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ПАЧАЦЬ"</string>
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Далей"</string>
+</resources>
diff --git a/v17/leanback/res/values-bg/strings.xml b/v17/leanback/res/values-bg/strings.xml
index a697946..642abc5 100644
--- a/v17/leanback/res/values-bg/strings.xml
+++ b/v17/leanback/res/values-bg/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Меню за навигация"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Действие за търсене"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Търсете"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Говорете, за да търсите"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ПЪРВИ СТЪПКИ"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Напред"</string>
 </resources>
diff --git a/v17/leanback/res/values-bn-rBD/strings.xml b/v17/leanback/res/values-bn-rBD/strings.xml
index 47d6e4d..be98f58 100644
--- a/v17/leanback/res/values-bn-rBD/strings.xml
+++ b/v17/leanback/res/values-bn-rBD/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"নেভিগেশান মেনু"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"অনুসন্ধান অ্যাকশন"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"অনুসন্ধান"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"অনুসন্ধান করতে বলুন"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"শুরু করা যাক"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"পরবর্তী"</string>
 </resources>
diff --git a/v17/leanback/res/values-bs-rBA/strings.xml b/v17/leanback/res/values-bs-rBA/strings.xml
index ae7df6d..cdfe434 100644
--- a/v17/leanback/res/values-bs-rBA/strings.xml
+++ b/v17/leanback/res/values-bs-rBA/strings.xml
@@ -17,74 +17,41 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for orb_search_action (5651268540267663887) -->
-    <skip />
-    <!-- no translation found for lb_search_bar_hint (8325490927970116252) -->
-    <skip />
-    <!-- no translation found for lb_search_bar_hint_speech (5511270823320183816) -->
-    <skip />
-    <!-- no translation found for lb_search_bar_hint_with_title (1627103380996590035) -->
-    <skip />
-    <!-- no translation found for lb_search_bar_hint_with_title_speech (2712734639766312034) -->
-    <skip />
-    <!-- no translation found for lb_control_display_fast_forward_multiplier (4541442045214207774) -->
-    <skip />
-    <!-- no translation found for lb_control_display_rewind_multiplier (3097220783222910245) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_play (731953341987346903) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_pause (6189521112079849518) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_fast_forward (8569951318244687220) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_fast_forward_multiplier (1058753672110224526) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_rewind (2227196334132350684) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_rewind_multiplier (1640629531440849942) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_skip_next (2946499493161095772) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_skip_previous (2326801832933178348) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_more_actions (2330770008796987655) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_thumb_up (6530420347129222601) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_thumb_up_outline (1577637924003500946) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_thumb_down (4498041193172964797) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_thumb_down_outline (2936020280629424365) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_repeat_none (87476947476529036) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_repeat_all (6730354406289599000) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_repeat_one (3285202316452203619) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_shuffle_enable (1099874107835264529) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_shuffle_disable (8388150597335115226) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_high_quality_enable (202415780019335254) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_high_quality_disable (8637371582779057866) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_closed_captioning_enable (2429655367176440226) -->
-    <skip />
-    <!-- no translation found for lb_playback_controls_closed_captioning_disable (6133362019475930048) -->
-    <skip />
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Meni za navigaciju"</string>
+    <string name="orb_search_action" msgid="5651268540267663887">"Pretraživanje"</string>
+    <string name="lb_search_bar_hint" msgid="8325490927970116252">"Pretraga"</string>
+    <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Kažite nešto da pokrenete pretragu"</string>
+    <string name="lb_search_bar_hint_with_title" msgid="1627103380996590035">"Pretraži <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+    <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Kažite nešto da pokrenete pretragu <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>
+    <string name="lb_playback_controls_pause" msgid="6189521112079849518">"Pauziraj"</string>
+    <string name="lb_playback_controls_fast_forward" msgid="8569951318244687220">"Ubrzaj"</string>
+    <string name="lb_playback_controls_fast_forward_multiplier" msgid="1058753672110224526">"Ubrzaj %1$dX"</string>
+    <string name="lb_playback_controls_rewind" msgid="2227196334132350684">"Premotaj"</string>
+    <string name="lb_playback_controls_rewind_multiplier" msgid="1640629531440849942">"Premotaj %1$dX"</string>
+    <string name="lb_playback_controls_skip_next" msgid="2946499493161095772">"Preskoči sljedeće"</string>
+    <string name="lb_playback_controls_skip_previous" msgid="2326801832933178348">"Preskoči prethodno"</string>
+    <string name="lb_playback_controls_more_actions" msgid="2330770008796987655">"Više radnji"</string>
+    <string name="lb_playback_controls_thumb_up" msgid="6530420347129222601">"Poništi pozitivnu ocjenu"</string>
+    <string name="lb_playback_controls_thumb_up_outline" msgid="1577637924003500946">"Odaberi pozitivnu ocjenu"</string>
+    <string name="lb_playback_controls_thumb_down" msgid="4498041193172964797">"Poništi negativnu ocjenu"</string>
+    <string name="lb_playback_controls_thumb_down_outline" msgid="2936020280629424365">"Odaberi negativnu ocjenu"</string>
+    <string name="lb_playback_controls_repeat_none" msgid="87476947476529036">"Ne ponavljaj"</string>
+    <string name="lb_playback_controls_repeat_all" msgid="6730354406289599000">"Ponovi sve"</string>
+    <string name="lb_playback_controls_repeat_one" msgid="3285202316452203619">"Ponovi jedno"</string>
+    <string name="lb_playback_controls_shuffle_enable" msgid="1099874107835264529">"Uključi izmiješani redoslijed"</string>
+    <string name="lb_playback_controls_shuffle_disable" msgid="8388150597335115226">"Isključi izmiješani redoslijed"</string>
+    <string name="lb_playback_controls_high_quality_enable" msgid="202415780019335254">"Uključi visoki kvalitet"</string>
+    <string name="lb_playback_controls_high_quality_disable" msgid="8637371582779057866">"Isključi visoki kvalitet"</string>
+    <string name="lb_playback_controls_closed_captioning_enable" msgid="2429655367176440226">"Uključi titlove"</string>
+    <string name="lb_playback_controls_closed_captioning_disable" msgid="6133362019475930048">"Isključi titlove"</string>
     <string name="lb_playback_controls_picture_in_picture" msgid="3040035547765350690">"Uđi u način rada Slika u slici"</string>
-    <!-- no translation found for lb_guidedaction_finish_title (4015190340667946245) -->
-    <skip />
-    <!-- no translation found for lb_guidedaction_continue_title (8842094924543063706) -->
-    <skip />
-    <!-- no translation found for lb_date_separator (2440386660906697298) -->
-    <skip />
-    <!-- no translation found for lb_time_separator (2763247350845477227) -->
-    <skip />
+    <string name="lb_guidedaction_finish_title" msgid="4015190340667946245">"Završiti"</string>
+    <string name="lb_guidedaction_continue_title" msgid="8842094924543063706">"Nastaviti"</string>
+    <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
+    <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ZAPOČNITE"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Sljedeća"</string>
 </resources>
diff --git a/v17/leanback/res/values-ca/strings.xml b/v17/leanback/res/values-ca/strings.xml
index 3a25704..5567e23 100644
--- a/v17/leanback/res/values-ca/strings.xml
+++ b/v17/leanback/res/values-ca/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Menú de navegació"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Acció de cerca"</string>
     <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>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"COMENÇA"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Següent"</string>
 </resources>
diff --git a/v17/leanback/res/values-cs/strings.xml b/v17/leanback/res/values-cs/strings.xml
index 32d38d3..a5fbfb5 100644
--- a/v17/leanback/res/values-cs/strings.xml
+++ b/v17/leanback/res/values-cs/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Navigační nabídka"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Vyhledávání akce"</string>
     <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>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ZAČÍNÁME"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Další"</string>
 </resources>
diff --git a/v17/leanback/res/values-da/strings.xml b/v17/leanback/res/values-da/strings.xml
index fb08631..76062f5 100644
--- a/v17/leanback/res/values-da/strings.xml
+++ b/v17/leanback/res/values-da/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Navigationsmenu"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Søg handling"</string>
     <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>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"KOM GODT I GANG"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Næste"</string>
 </resources>
diff --git a/v17/leanback/res/values-de/strings.xml b/v17/leanback/res/values-de/strings.xml
index 4284210..53ad13a 100644
--- a/v17/leanback/res/values-de/strings.xml
+++ b/v17/leanback/res/values-de/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Navigationsmenü"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Suchvorgang"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Suchen"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Zum Suchen sprechen"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"."</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"JETZT STARTEN"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Weiter"</string>
 </resources>
diff --git a/v17/leanback/res/values-el/strings.xml b/v17/leanback/res/values-el/strings.xml
index f153fe8..6dc20ef 100644
--- a/v17/leanback/res/values-el/strings.xml
+++ b/v17/leanback/res/values-el/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Μενού πλοήγησης"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Ενέργεια αναζήτησης"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Αναζήτηση"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Μιλήστε για να κάνετε αναζήτηση"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ΕΝΑΡΞΗ"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Επόμενο"</string>
 </resources>
diff --git a/v17/leanback/res/values-en-rAU/strings.xml b/v17/leanback/res/values-en-rAU/strings.xml
index 52b4857..8032f7d 100644
--- a/v17/leanback/res/values-en-rAU/strings.xml
+++ b/v17/leanback/res/values-en-rAU/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Navigation menu"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Search Action"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Search"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Speak to search"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"GET STARTED"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Next"</string>
 </resources>
diff --git a/v17/leanback/res/values-en-rGB/strings.xml b/v17/leanback/res/values-en-rGB/strings.xml
index 52b4857..8032f7d 100644
--- a/v17/leanback/res/values-en-rGB/strings.xml
+++ b/v17/leanback/res/values-en-rGB/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Navigation menu"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Search Action"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Search"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Speak to search"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"GET STARTED"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Next"</string>
 </resources>
diff --git a/v17/leanback/res/values-en-rIN/strings.xml b/v17/leanback/res/values-en-rIN/strings.xml
index 52b4857..8032f7d 100644
--- a/v17/leanback/res/values-en-rIN/strings.xml
+++ b/v17/leanback/res/values-en-rIN/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Navigation menu"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Search Action"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Search"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Speak to search"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"GET STARTED"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Next"</string>
 </resources>
diff --git a/v17/leanback/res/values-es-rUS/strings.xml b/v17/leanback/res/values-es-rUS/strings.xml
index 76f7d0f..8a81040 100644
--- a/v17/leanback/res/values-es-rUS/strings.xml
+++ b/v17/leanback/res/values-es-rUS/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Menú de navegación"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Acción de búsqueda"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Búsqueda"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Habla para buscar"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"COMENZAR"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Siguiente"</string>
 </resources>
diff --git a/v17/leanback/res/values-es/strings.xml b/v17/leanback/res/values-es/strings.xml
index 09d10f2..59f707b 100644
--- a/v17/leanback/res/values-es/strings.xml
+++ b/v17/leanback/res/values-es/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Menú de navegación"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Buscar..."</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Buscar"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Habla para buscar"</string>
diff --git a/v17/leanback/res/values-et-rEE/strings.xml b/v17/leanback/res/values-et-rEE/strings.xml
index 3e08c60..6d6bac8 100644
--- a/v17/leanback/res/values-et-rEE/strings.xml
+++ b/v17/leanback/res/values-et-rEE/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Navigeerimismenüü"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Otsimistoiming"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Otsing"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Öelge otsimiseks"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ALUSTAGE"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Järgmine"</string>
 </resources>
diff --git a/v17/leanback/res/values-eu-rES/strings.xml b/v17/leanback/res/values-eu-rES/strings.xml
index 5e89882..98787d4 100644
--- a/v17/leanback/res/values-eu-rES/strings.xml
+++ b/v17/leanback/res/values-eu-rES/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Nabigazio-menua"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Bilaketa"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Bilatu"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Esan bilatu nahi duzuna"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"LEHEN URRATSAK"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Hurrengoa"</string>
 </resources>
diff --git a/v17/leanback/res/values-fa/strings.xml b/v17/leanback/res/values-fa/strings.xml
index a33c148..3774bd2 100644
--- a/v17/leanback/res/values-fa/strings.xml
+++ b/v17/leanback/res/values-fa/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"منوی پیمایش"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"عملکرد جستجو"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"جستجو"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"برای جستجو صحبت کنید"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"شروع به‌ کار"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"بعدی"</string>
 </resources>
diff --git a/v17/leanback/res/values-fi/strings.xml b/v17/leanback/res/values-fi/strings.xml
index d0aa555..3444642 100644
--- a/v17/leanback/res/values-fi/strings.xml
+++ b/v17/leanback/res/values-fi/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Navigointivalikko"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Hakutoiminto"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Haku"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Tee haku puhumalla"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">"."</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ALOITA"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Seuraava"</string>
 </resources>
diff --git a/v17/leanback/res/values-fr-rCA/strings.xml b/v17/leanback/res/values-fr-rCA/strings.xml
index b39925f..4c8cc19 100644
--- a/v17/leanback/res/values-fr-rCA/strings.xml
+++ b/v17/leanback/res/values-fr-rCA/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Menu de navigation"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Action de recherche"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Rechercher"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Énoncez votre recherche"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"COMMENCER"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Suivant"</string>
 </resources>
diff --git a/v17/leanback/res/values-fr/strings.xml b/v17/leanback/res/values-fr/strings.xml
index 3cdbf14..9086fa1 100644
--- a/v17/leanback/res/values-fr/strings.xml
+++ b/v17/leanback/res/values-fr/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Menu de navigation"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Commande de recherche"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Rechercher"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Énoncer la recherche"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"COMMENCER"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Suivant"</string>
 </resources>
diff --git a/v17/leanback/res/values-gl-rES/strings.xml b/v17/leanback/res/values-gl-rES/strings.xml
index 063f909..2d2579b 100644
--- a/v17/leanback/res/values-gl-rES/strings.xml
+++ b/v17/leanback/res/values-gl-rES/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Menú de navegación"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Acción de busca"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Buscar"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Fala para efectuar a busca"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"INTRODUCIÓN"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Seguinte"</string>
 </resources>
diff --git a/v17/leanback/res/values-gu-rIN/strings.xml b/v17/leanback/res/values-gu-rIN/strings.xml
index c1ba30b..569da29 100644
--- a/v17/leanback/res/values-gu-rIN/strings.xml
+++ b/v17/leanback/res/values-gu-rIN/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"નૅવિગેશન મેનૂ"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"શોધ ક્રિયા"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"શોધો"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"શોધવા માટે બોલો"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"પ્રારંભ કરો"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"આગલું"</string>
 </resources>
diff --git a/v17/leanback/res/values-hi/strings.xml b/v17/leanback/res/values-hi/strings.xml
index 9432182..1b73165 100644
--- a/v17/leanback/res/values-hi/strings.xml
+++ b/v17/leanback/res/values-hi/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"मार्गदर्शक मेनू"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"खोज कार्रवाई"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"खोजें"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"खोजने के लिए बोलें"</string>
diff --git a/v17/leanback/res/values-hr/strings.xml b/v17/leanback/res/values-hr/strings.xml
index d34efc7..73c8dc6 100644
--- a/v17/leanback/res/values-hr/strings.xml
+++ b/v17/leanback/res/values-hr/strings.xml
@@ -17,11 +17,12 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Navigacijski izbornik"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Radnja pretraživanja"</string>
     <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 da pretražite <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 uslugu <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>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">"."</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"POČETAK"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Dalje"</string>
 </resources>
diff --git a/v17/leanback/res/values-hu/strings.xml b/v17/leanback/res/values-hu/strings.xml
index 7b8d566..f30c4f6 100644
--- a/v17/leanback/res/values-hu/strings.xml
+++ b/v17/leanback/res/values-hu/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Navigációs menü"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Keresési művelet"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Keresés"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Beszéljen a keresés indításához"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"KEZDŐ LÉPÉSEK"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Következő"</string>
 </resources>
diff --git a/v17/leanback/res/values-hy-rAM/strings.xml b/v17/leanback/res/values-hy-rAM/strings.xml
index e7c4201..edc1f47 100644
--- a/v17/leanback/res/values-hy-rAM/strings.xml
+++ b/v17/leanback/res/values-hy-rAM/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Նավարկման ընտրացանկ"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Որոնման հրամանը"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Որոնում"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Խոսեք՝ որոնելու համար"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ՍԿՍԵԼ"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Հաջորդը"</string>
 </resources>
diff --git a/v17/leanback/res/values-in/strings.xml b/v17/leanback/res/values-in/strings.xml
index 14c2438..05e9dc9 100644
--- a/v17/leanback/res/values-in/strings.xml
+++ b/v17/leanback/res/values-in/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Menu navigasi"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Tindakan Penelusuran"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Telusuri"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Ucapkan untuk menelusuri"</string>
diff --git a/v17/leanback/res/values-is-rIS/strings.xml b/v17/leanback/res/values-is-rIS/strings.xml
index 33aa91d..c6c6897 100644
--- a/v17/leanback/res/values-is-rIS/strings.xml
+++ b/v17/leanback/res/values-is-rIS/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Yfirlitsvalmynd"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Leitaraðgerð"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Leitaðu"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Talaðu til að leita"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"HEFJAST HANDA"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Áfram"</string>
 </resources>
diff --git a/v17/leanback/res/values-it/strings.xml b/v17/leanback/res/values-it/strings.xml
index 72f5644..b0814d0 100644
--- a/v17/leanback/res/values-it/strings.xml
+++ b/v17/leanback/res/values-it/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Menu di navigazione"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Azione di ricerca"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Ricerca"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Parla per cercare"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"INIZIA"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Avanti"</string>
 </resources>
diff --git a/v17/leanback/res/values-iw/strings.xml b/v17/leanback/res/values-iw/strings.xml
index bbc2fbf..b94c431 100644
--- a/v17/leanback/res/values-iw/strings.xml
+++ b/v17/leanback/res/values-iw/strings.xml
@@ -17,11 +17,12 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"תפריט ניווט"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"פעולת חיפוש"</string>
     <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_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>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"התחל"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"הבא"</string>
 </resources>
diff --git a/v17/leanback/res/values-ja/strings.xml b/v17/leanback/res/values-ja/strings.xml
index 20f7b7b..650f4fd 100644
--- a/v17/leanback/res/values-ja/strings.xml
+++ b/v17/leanback/res/values-ja/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"ナビゲーション メニュー"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"検索操作"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"検索"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"音声検索"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"使ってみる"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"次へ"</string>
 </resources>
diff --git a/v17/leanback/res/values-ka-rGE/strings.xml b/v17/leanback/res/values-ka-rGE/strings.xml
index 2cbae9d..9962645 100644
--- a/v17/leanback/res/values-ka-rGE/strings.xml
+++ b/v17/leanback/res/values-ka-rGE/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"ნავიგაციის მენიუ"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"ძიების მოქმედება"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"ძიება"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"თქვით საძიებო ფრაზა"</string>
@@ -56,6 +57,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"."</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"დაწყება"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"შემდეგი"</string>
 </resources>
diff --git a/v17/leanback/res/values-kk-rKZ/strings.xml b/v17/leanback/res/values-kk-rKZ/strings.xml
index bb1ad63..6f7faf2 100644
--- a/v17/leanback/res/values-kk-rKZ/strings.xml
+++ b/v17/leanback/res/values-kk-rKZ/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Навигация мәзірі"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Іздеу әрекеті"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Іздеу"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Іздеу үшін сөйлеу"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ІСКЕ КІРІСУ"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Келесі"</string>
 </resources>
diff --git a/v17/leanback/res/values-km-rKH/strings.xml b/v17/leanback/res/values-km-rKH/strings.xml
index b1cf179..25abb45 100644
--- a/v17/leanback/res/values-km-rKH/strings.xml
+++ b/v17/leanback/res/values-km-rKH/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"ម៉ឺនុយរុករក"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"​ស្វែងរក​សកម្មភាព"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"ស្វែងរក"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"និយាយ​​ដើម្បី​ស្វែងរក"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">"៖"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ចាប់ផ្ដើម"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"បន្ទាប់"</string>
 </resources>
diff --git a/v17/leanback/res/values-kn-rIN/strings.xml b/v17/leanback/res/values-kn-rIN/strings.xml
index 372da16..92fdddd 100644
--- a/v17/leanback/res/values-kn-rIN/strings.xml
+++ b/v17/leanback/res/values-kn-rIN/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"ನ್ಯಾವಿಗೇಶನ್‌ ಮೆನು"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"ಹುಡುಕಾಟ ಕ್ರಿಯೆ"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"ಹುಡುಕಿ"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"ಹುಡುಕಲು ಮಾತನಾಡಿ"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ಪ್ರಾರಂಭಿಸಿ"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"ಮುಂದೆ"</string>
 </resources>
diff --git a/v17/leanback/res/values-ko/strings.xml b/v17/leanback/res/values-ko/strings.xml
index b1a6c30..1696bca 100644
--- a/v17/leanback/res/values-ko/strings.xml
+++ b/v17/leanback/res/values-ko/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"탐색 메뉴"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"검색 작업"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"검색"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"음성 검색"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"시작하기"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"다음"</string>
 </resources>
diff --git a/v17/leanback/res/values-ky-rKG/strings.xml b/v17/leanback/res/values-ky-rKG/strings.xml
index 4eed80c..e2dc200 100644
--- a/v17/leanback/res/values-ky-rKG/strings.xml
+++ b/v17/leanback/res/values-ky-rKG/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Чабыттоо менюсу"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Издөө аракети"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Издөө"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Издөө үчүн сүйлөңүз"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"БАШТАДЫК"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Кийинки"</string>
 </resources>
diff --git a/v17/leanback/res/values-lo-rLA/strings.xml b/v17/leanback/res/values-lo-rLA/strings.xml
index 28f5289..389b1d0 100644
--- a/v17/leanback/res/values-lo-rLA/strings.xml
+++ b/v17/leanback/res/values-lo-rLA/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"ເມນູນຳທາງ"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"ຊອກ​ຫາ​ຄຳ​ສັ່ງ"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"ຊອກຫາ"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"ເວົ້າ​ເພື່ອ​ຊອກ​ຫາ"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ເລີ່ມຕົ້ນນຳໃຊ້"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"ຕໍ່ໄປ"</string>
 </resources>
diff --git a/v17/leanback/res/values-lt/strings.xml b/v17/leanback/res/values-lt/strings.xml
index c78a523..43eebb8 100644
--- a/v17/leanback/res/values-lt/strings.xml
+++ b/v17/leanback/res/values-lt/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Naršymo meniu"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Paieškos veiksmas"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Paieška"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Pasakykite, kad ieškotumėte"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"PRADĖTI"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Kitas"</string>
 </resources>
diff --git a/v17/leanback/res/values-lv/strings.xml b/v17/leanback/res/values-lv/strings.xml
index 3de144b..644d990 100644
--- a/v17/leanback/res/values-lv/strings.xml
+++ b/v17/leanback/res/values-lv/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Navigācijas izvēlne"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Meklēšanas darbība"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Meklēt"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Runāt, lai meklētu"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"."</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"SĀKT DARBU"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Nākamā"</string>
 </resources>
diff --git a/v17/leanback/res/values-mk-rMK/strings.xml b/v17/leanback/res/values-mk-rMK/strings.xml
index 38dda40..6e506fe 100644
--- a/v17/leanback/res/values-mk-rMK/strings.xml
+++ b/v17/leanback/res/values-mk-rMK/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Мени за навигација"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Акција на пребарување"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Пребарување"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Зборувајте за да пребарувате"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"."</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ЗАПОЧНИ"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Следно"</string>
 </resources>
diff --git a/v17/leanback/res/values-ml-rIN/strings.xml b/v17/leanback/res/values-ml-rIN/strings.xml
index 788707d..0306a6a 100644
--- a/v17/leanback/res/values-ml-rIN/strings.xml
+++ b/v17/leanback/res/values-ml-rIN/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"നാവിഗേഷൻ മെനു"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"തിരയൽ പ്രവർത്തനം"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"തിരയുക"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"ശബ്‌ദം ഉപയോഗിച്ച് തിരയുക"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ആരംഭിക്കുക"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"അടുത്തത്"</string>
 </resources>
diff --git a/v17/leanback/res/values-mn-rMN/strings.xml b/v17/leanback/res/values-mn-rMN/strings.xml
index facb2a2..f21b649 100644
--- a/v17/leanback/res/values-mn-rMN/strings.xml
+++ b/v17/leanback/res/values-mn-rMN/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Шилжүүлэх цэс"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Хайлтын үйлдэл"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Хайлт"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Ярьж хайх"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ЭХЭЛЦГЭЭЕ"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Дараах"</string>
 </resources>
diff --git a/v17/leanback/res/values-mr-rIN/strings.xml b/v17/leanback/res/values-mr-rIN/strings.xml
index 03160f4..ef6a6a6 100644
--- a/v17/leanback/res/values-mr-rIN/strings.xml
+++ b/v17/leanback/res/values-mr-rIN/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"नेव्हिगेशन मेनू"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"शोध क्रिया"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"शोधा"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"शोधण्यासाठी बोला"</string>
diff --git a/v17/leanback/res/values-ms-rMY/strings.xml b/v17/leanback/res/values-ms-rMY/strings.xml
index 467a5ab..1764e52 100644
--- a/v17/leanback/res/values-ms-rMY/strings.xml
+++ b/v17/leanback/res/values-ms-rMY/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Menu navigasi"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Tindakan Carian"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Carian"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Tutur untuk membuat carian"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"MULAKAN"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Seterusnya"</string>
 </resources>
diff --git a/v17/leanback/res/values-my-rMM/strings.xml b/v17/leanback/res/values-my-rMM/strings.xml
index c816927..645f169 100644
--- a/v17/leanback/res/values-my-rMM/strings.xml
+++ b/v17/leanback/res/values-my-rMM/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"လမ်းညွှန် မီနူး"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"ရှာဖွေရန် လုပ်ဆောင်ချက်"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"ရှာဖွေရန်"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"ရှာဖွေရန် ပြောပါ"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">"−"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"စတင်ပါ"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"ရှေ့သို့"</string>
 </resources>
diff --git a/v17/leanback/res/values-nb/strings.xml b/v17/leanback/res/values-nb/strings.xml
index 379fc58..ae3394b 100644
--- a/v17/leanback/res/values-nb/strings.xml
+++ b/v17/leanback/res/values-nb/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Navigasjonsmeny"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Søkehandling"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Søk"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Snakk for å søke"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"."</string>
     <string name="lb_time_separator" msgid="2763247350845477227">"."</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"KOM I GANG"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Neste"</string>
 </resources>
diff --git a/v17/leanback/res/values-ne-rNP/strings.xml b/v17/leanback/res/values-ne-rNP/strings.xml
index 055f8d0..e8baffb 100644
--- a/v17/leanback/res/values-ne-rNP/strings.xml
+++ b/v17/leanback/res/values-ne-rNP/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"नेभिगेसन मेनु"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"कार्य खोजी गर्नुहोस्"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"खोजी गर्नुहोस्"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"खोजी गर्न बोल्नुहोस्"</string>
@@ -54,6 +55,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"सुरु गरौँ"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"अर्को"</string>
 </resources>
diff --git a/v17/leanback/res/values-nl/strings.xml b/v17/leanback/res/values-nl/strings.xml
index 2379624..0a5bdce 100644
--- a/v17/leanback/res/values-nl/strings.xml
+++ b/v17/leanback/res/values-nl/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Navigatiemenu"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Actie zoeken"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Zoeken"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Spreek om te zoeken"</string>
diff --git a/v17/leanback/res/values-pa-rIN/strings.xml b/v17/leanback/res/values-pa-rIN/strings.xml
index 80677a2..b8c7591 100644
--- a/v17/leanback/res/values-pa-rIN/strings.xml
+++ b/v17/leanback/res/values-pa-rIN/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"ਆਵਾਗੌਣ ਮੀਨੂ"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"ਖੋਜ ਕਿਰਿਆ"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"ਖੋਜੋ"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"ਖੋਜਣ ਲਈ ਬੋਲੋ"</string>
diff --git a/v17/leanback/res/values-pl/strings.xml b/v17/leanback/res/values-pl/strings.xml
index 916d95b..15de203 100644
--- a/v17/leanback/res/values-pl/strings.xml
+++ b/v17/leanback/res/values-pl/strings.xml
@@ -17,11 +17,12 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Menu nawigacyjne"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Wyszukaj czynność"</string>
     <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ć <xliff:g id="SEARCH_CONTEXT">%1$s</xliff:g>"</string>
+    <string name="lb_search_bar_hint_with_title_speech" msgid="2712734639766312034">"Powiedz, co chcesz wyszukać w usłudze <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>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"."</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ROZPOCZNIJ"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Dalej"</string>
 </resources>
diff --git a/v17/leanback/res/values-pt-rBR/strings.xml b/v17/leanback/res/values-pt-rBR/strings.xml
index d3eb364..4621809 100644
--- a/v17/leanback/res/values-pt-rBR/strings.xml
+++ b/v17/leanback/res/values-pt-rBR/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Menu de navegação"</string>
     <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>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"PRIMEIROS PASSOS"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Próximo"</string>
 </resources>
diff --git a/v17/leanback/res/values-pt-rPT/strings.xml b/v17/leanback/res/values-pt-rPT/strings.xml
index 7ddbd7e..0df9c00 100644
--- a/v17/leanback/res/values-pt-rPT/strings.xml
+++ b/v17/leanback/res/values-pt-rPT/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Menu de navegação"</string>
     <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>
diff --git a/v17/leanback/res/values-pt/strings.xml b/v17/leanback/res/values-pt/strings.xml
index d3eb364..4621809 100644
--- a/v17/leanback/res/values-pt/strings.xml
+++ b/v17/leanback/res/values-pt/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Menu de navegação"</string>
     <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>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"PRIMEIROS PASSOS"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Próximo"</string>
 </resources>
diff --git a/v17/leanback/res/values-ro/strings.xml b/v17/leanback/res/values-ro/strings.xml
index 57945e7..5fa64ef 100644
--- a/v17/leanback/res/values-ro/strings.xml
+++ b/v17/leanback/res/values-ro/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Meniu de navigare"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Acțiunea de căutare"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Căutați"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Rostiți pentru a căuta"</string>
@@ -32,7 +33,7 @@
     <string name="lb_playback_controls_rewind_multiplier" msgid="1640629531440849942">"Derulați înapoi cu %1$dX"</string>
     <string name="lb_playback_controls_skip_next" msgid="2946499493161095772">"Ignoră articolul următor"</string>
     <string name="lb_playback_controls_skip_previous" msgid="2326801832933178348">"Ignoră articolul anterior"</string>
-    <string name="lb_playback_controls_more_actions" msgid="2330770008796987655">"Mai multe acţiuni"</string>
+    <string name="lb_playback_controls_more_actions" msgid="2330770008796987655">"Mai multe acțiuni"</string>
     <string name="lb_playback_controls_thumb_up" msgid="6530420347129222601">"Deselectează „Îmi place”"</string>
     <string name="lb_playback_controls_thumb_up_outline" msgid="1577637924003500946">"Selectează „Îmi place”"</string>
     <string name="lb_playback_controls_thumb_down" msgid="4498041193172964797">"Deselectează „Nu-mi place”"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ÎNCEPEȚI"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Înainte"</string>
 </resources>
diff --git a/v17/leanback/res/values-ru/strings.xml b/v17/leanback/res/values-ru/strings.xml
index ec64bb7..c7a146f 100644
--- a/v17/leanback/res/values-ru/strings.xml
+++ b/v17/leanback/res/values-ru/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Меню навигации"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Поиск"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Поиск"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Произнесите запрос"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"."</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"НАЧАТЬ"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Далее"</string>
 </resources>
diff --git a/v17/leanback/res/values-si-rLK/strings.xml b/v17/leanback/res/values-si-rLK/strings.xml
index 7e62853..44e4f31 100644
--- a/v17/leanback/res/values-si-rLK/strings.xml
+++ b/v17/leanback/res/values-si-rLK/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"සංචාලන මෙනුව"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"සෙවීමේ ක්‍රියාව"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"සොයන්න"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"සෙවීමට කථා කරන්න"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ආරම්භ කරන්න"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"ඊළඟ"</string>
 </resources>
diff --git a/v17/leanback/res/values-sk/strings.xml b/v17/leanback/res/values-sk/strings.xml
index 03af0d0..bfd972a 100644
--- a/v17/leanback/res/values-sk/strings.xml
+++ b/v17/leanback/res/values-sk/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Navigačná ponuka"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Akcia vyhľadávania"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Hľadať"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Hovorením spustíte vyhľadávanie"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ZAČÍNAME"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Ďalej"</string>
 </resources>
diff --git a/v17/leanback/res/values-sl/strings.xml b/v17/leanback/res/values-sl/strings.xml
index 038f8d7..1919b29 100644
--- a/v17/leanback/res/values-sl/strings.xml
+++ b/v17/leanback/res/values-sl/strings.xml
@@ -17,11 +17,12 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Meni za krmarjenje"</string>
     <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 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">"Izgovorite poizvedbo za iskanje v <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 storitvi <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>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ZAČNITE"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Naprej"</string>
 </resources>
diff --git a/v17/leanback/res/values-sq-rAL/strings.xml b/v17/leanback/res/values-sq-rAL/strings.xml
index d2caa54..36cfdf3 100644
--- a/v17/leanback/res/values-sq-rAL/strings.xml
+++ b/v17/leanback/res/values-sq-rAL/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Menyja e navigimit"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Veprim i kërkimit"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Kërko"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Fol për të kërkuar"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"FILLO"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Përpara"</string>
 </resources>
diff --git a/v17/leanback/res/values-sr/strings.xml b/v17/leanback/res/values-sr/strings.xml
index 119af27..1a9a0c4 100644
--- a/v17/leanback/res/values-sr/strings.xml
+++ b/v17/leanback/res/values-sr/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Мени за навигацију"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Радња претраге"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Претражите"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Говорите да бисте претраживали"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ЗАПОЧНИТЕ"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Даље"</string>
 </resources>
diff --git a/v17/leanback/res/values-sv/strings.xml b/v17/leanback/res/values-sv/strings.xml
index 76c9fc9..5bdd293 100644
--- a/v17/leanback/res/values-sv/strings.xml
+++ b/v17/leanback/res/values-sv/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Navigationsmeny"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Sökåtgärd"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Sök"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Säg det du söker efter"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"KOM IGÅNG"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Nästa"</string>
 </resources>
diff --git a/v17/leanback/res/values-sw/strings.xml b/v17/leanback/res/values-sw/strings.xml
index 731aecc..6683e46 100644
--- a/v17/leanback/res/values-sw/strings.xml
+++ b/v17/leanback/res/values-sw/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Menyu ya kusogeza"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Kitendo cha Kutafuta"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Utafutaji"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Tamka ili utafute"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ANZA KUTUMIA"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Inayofuata"</string>
 </resources>
diff --git a/v17/leanback/res/values-ta-rIN/strings.xml b/v17/leanback/res/values-ta-rIN/strings.xml
index 721432f..5afde83 100644
--- a/v17/leanback/res/values-ta-rIN/strings.xml
+++ b/v17/leanback/res/values-ta-rIN/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"வழிசெலுத்தல் மெனு"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"செயலைத் தேடுக"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"தேடு"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"தேட, பேசவும்"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"தொடங்குக"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"அடுத்து"</string>
 </resources>
diff --git a/v17/leanback/res/values-te-rIN/strings.xml b/v17/leanback/res/values-te-rIN/strings.xml
index 13856be..f74c525 100644
--- a/v17/leanback/res/values-te-rIN/strings.xml
+++ b/v17/leanback/res/values-te-rIN/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"నావిగేషన్ మెను"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"శోధన చర్య"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"శోధించండి"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"శోధించడానికి చదివి వినిపించండి"</string>
diff --git a/v17/leanback/res/values-th/strings.xml b/v17/leanback/res/values-th/strings.xml
index 5cb2b0f..8440dd9 100644
--- a/v17/leanback/res/values-th/strings.xml
+++ b/v17/leanback/res/values-th/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"เมนูการนำทาง"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"การดำเนินการค้นหา"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"ค้นหา"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"พูดเพื่อค้นหา"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"เริ่มต้นใช้งาน"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"ถัดไป"</string>
 </resources>
diff --git a/v17/leanback/res/values-tl/strings.xml b/v17/leanback/res/values-tl/strings.xml
index 070d9d1..c2f52a4 100644
--- a/v17/leanback/res/values-tl/strings.xml
+++ b/v17/leanback/res/values-tl/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Menu ng navigation"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Pagkilos sa Paghahanap"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Maghanap"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Magsalita upang maghanap"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"MAGSIMULA"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Susunod"</string>
 </resources>
diff --git a/v17/leanback/res/values-tr/strings.xml b/v17/leanback/res/values-tr/strings.xml
index 0f5fc72..0c6431e 100644
--- a/v17/leanback/res/values-tr/strings.xml
+++ b/v17/leanback/res/values-tr/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Gezinme menüsü"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Arama İşlemi"</string>
     <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>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"."</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"BAŞLA"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Sonraki"</string>
 </resources>
diff --git a/v17/leanback/res/values-uk/strings.xml b/v17/leanback/res/values-uk/strings.xml
index c1078f5..bb6bde7 100644
--- a/v17/leanback/res/values-uk/strings.xml
+++ b/v17/leanback/res/values-uk/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Навігаційне меню"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Команда пошуку"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Пошук"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Продиктуйте пошуковий запит"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"."</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"ПОЧАТИ"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Далі"</string>
 </resources>
diff --git a/v17/leanback/res/values-ur-rPK/strings.xml b/v17/leanback/res/values-ur-rPK/strings.xml
index 0499390..f387aa3 100644
--- a/v17/leanback/res/values-ur-rPK/strings.xml
+++ b/v17/leanback/res/values-ur-rPK/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"نیویگیشن مینو"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"تلاش کی کارروائی"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"تلاش کریں"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"تلاش کرنے کیلئے بولیں"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"شروع کریں"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"اگلا"</string>
 </resources>
diff --git a/v17/leanback/res/values-uz-rUZ/strings.xml b/v17/leanback/res/values-uz-rUZ/strings.xml
index d622eb8..066f21c 100644
--- a/v17/leanback/res/values-uz-rUZ/strings.xml
+++ b/v17/leanback/res/values-uz-rUZ/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Navigatsiya menyusi"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Qidiruv amali"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Qidirish"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Qidirish uchun gapiring"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"BOSHLADIK"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Keyingi"</string>
 </resources>
diff --git a/v17/leanback/res/values-vi/strings.xml b/v17/leanback/res/values-vi/strings.xml
index 2aed131..8d8c282 100644
--- a/v17/leanback/res/values-vi/strings.xml
+++ b/v17/leanback/res/values-vi/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Menu điều hướng"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Tác vụ tìm kiếm"</string>
     <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>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"BẮT ĐẦU"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"Tiếp theo"</string>
 </resources>
diff --git a/v17/leanback/res/values-zh-rCN/strings.xml b/v17/leanback/res/values-zh-rCN/strings.xml
index 8b178fa..611bff1 100644
--- a/v17/leanback/res/values-zh-rCN/strings.xml
+++ b/v17/leanback/res/values-zh-rCN/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"导航菜单"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"搜索操作"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"搜索"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"说话即可开始搜索"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"开始使用"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"下一页"</string>
 </resources>
diff --git a/v17/leanback/res/values-zh-rHK/strings.xml b/v17/leanback/res/values-zh-rHK/strings.xml
index 1c9efa5..c18032e 100644
--- a/v17/leanback/res/values-zh-rHK/strings.xml
+++ b/v17/leanback/res/values-zh-rHK/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"導覽選單"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"搜尋動作"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"搜尋"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"使用語音搜尋"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"開始使用"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"下一頁"</string>
 </resources>
diff --git a/v17/leanback/res/values-zh-rTW/strings.xml b/v17/leanback/res/values-zh-rTW/strings.xml
index c2975fb..1e14d0a 100644
--- a/v17/leanback/res/values-zh-rTW/strings.xml
+++ b/v17/leanback/res/values-zh-rTW/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"導覽選單"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"搜尋動作"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"搜尋"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"使用語音搜尋"</string>
@@ -52,6 +53,5 @@
     <string name="lb_date_separator" msgid="2440386660906697298">"/"</string>
     <string name="lb_time_separator" msgid="2763247350845477227">":"</string>
     <string name="lb_onboarding_get_started" msgid="6961440391306351139">"開始使用"</string>
-    <!-- no translation found for lb_onboarding_accessibility_next (2918313444257732434) -->
-    <skip />
+    <string name="lb_onboarding_accessibility_next" msgid="2918313444257732434">"繼續"</string>
 </resources>
diff --git a/v17/leanback/res/values-zu/strings.xml b/v17/leanback/res/values-zu/strings.xml
index 6590d69..7fb290f 100644
--- a/v17/leanback/res/values-zu/strings.xml
+++ b/v17/leanback/res/values-zu/strings.xml
@@ -17,6 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lb_navigation_menu_contentDescription" msgid="6215811486591629025">"Imenyu yokuzulazula"</string>
     <string name="orb_search_action" msgid="5651268540267663887">"Isenzo sokusesha"</string>
     <string name="lb_search_bar_hint" msgid="8325490927970116252">"Sesha"</string>
     <string name="lb_search_bar_hint_speech" msgid="5511270823320183816">"Khuluma ukuze useshe"</string>
diff --git a/v4/Android.mk b/v4/Android.mk
index 1e8adad..df04503 100644
--- a/v4/Android.mk
+++ b/v4/Android.mk
@@ -19,12 +19,12 @@
 LOCAL_MODULE := android-support-v4-donut
 LOCAL_SDK_VERSION := 4
 LOCAL_SRC_FILES := $(call all-java-files-under, donut)
-LOCAL_STATIC_JAVA_LIBRARIES := android-support-annotations
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-annotations android-support-compat
 LOCAL_JAVA_LANGUAGE_VERSION := 1.7
 include $(BUILD_STATIC_JAVA_LIBRARY)
 
 support_module_src_files := $(LOCAL_SRC_FILES)
-support_module_java_libraries := android-support-annotations
+support_module_java_libraries := android-support-annotations android-support-compat
 
 # -----------------------------------------------------------------------
 
@@ -41,25 +41,12 @@
 
 # -----------------------------------------------------------------------
 
-# A helper sub-library that makes direct use of Eclair MR1 APIs.
-include $(CLEAR_VARS)
-LOCAL_MODULE := android-support-v4-eclair-mr1
-LOCAL_SDK_VERSION := 7
-LOCAL_SRC_FILES := $(call all-java-files-under, eclair-mr1)
-LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4-eclair
-LOCAL_JAVA_LANGUAGE_VERSION := 1.7
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-support_module_src_files += $(LOCAL_SRC_FILES)
-
-# -----------------------------------------------------------------------
-
 # A helper sub-library that makes direct use of Froyo APIs.
 include $(CLEAR_VARS)
 LOCAL_MODULE := android-support-v4-froyo
 LOCAL_SDK_VERSION := 8
 LOCAL_SRC_FILES := $(call all-java-files-under, froyo)
-LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4-eclair-mr1
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4-eclair
 LOCAL_JAVA_LANGUAGE_VERSION := 1.7
 include $(BUILD_STATIC_JAVA_LIBRARY)
 
@@ -93,51 +80,12 @@
 
 # -----------------------------------------------------------------------
 
-# A helper sub-library that makes direct use of Honeycomb MR1 APIs.
-include $(CLEAR_VARS)
-LOCAL_MODULE := android-support-v4-honeycomb-mr1
-LOCAL_SDK_VERSION := 12
-LOCAL_SRC_FILES := $(call all-java-files-under, honeycomb_mr1)
-LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4-honeycomb
-LOCAL_JAVA_LANGUAGE_VERSION := 1.7
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-support_module_src_files += $(LOCAL_SRC_FILES)
-
-# -----------------------------------------------------------------------
-
-# A helper sub-library that makes direct use of Honeycomb MR2 APIs.
-include $(CLEAR_VARS)
-LOCAL_MODULE := android-support-v4-honeycomb-mr2
-LOCAL_SDK_VERSION := 13
-LOCAL_SRC_FILES := $(call all-java-files-under, honeycomb_mr2)
-LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4-honeycomb-mr1
-LOCAL_JAVA_LANGUAGE_VERSION := 1.7
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-support_module_src_files += $(LOCAL_SRC_FILES)
-
-# -----------------------------------------------------------------------
-
 # A helper sub-library that makes direct use of Ice Cream Sandwich APIs.
 include $(CLEAR_VARS)
 LOCAL_MODULE := android-support-v4-ics
 LOCAL_SDK_VERSION := 14
 LOCAL_SRC_FILES := $(call all-java-files-under, ics)
-LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4-honeycomb-mr2
-LOCAL_JAVA_LANGUAGE_VERSION := 1.7
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-support_module_src_files += $(LOCAL_SRC_FILES)
-
-# -----------------------------------------------------------------------
-
-# A helper sub-library that makes direct use of Ice Cream Sandwich MR1 APIs.
-include $(CLEAR_VARS)
-LOCAL_MODULE := android-support-v4-ics-mr1
-LOCAL_SDK_VERSION := 15
-LOCAL_SRC_FILES := $(call all-java-files-under, ics-mr1)
-LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4-ics
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4-honeycomb
 LOCAL_JAVA_LANGUAGE_VERSION := 1.7
 include $(BUILD_STATIC_JAVA_LIBRARY)
 
@@ -150,20 +98,7 @@
 LOCAL_MODULE := android-support-v4-jellybean
 LOCAL_SDK_VERSION := 16
 LOCAL_SRC_FILES := $(call all-java-files-under, jellybean)
-LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4-ics-mr1
-LOCAL_JAVA_LANGUAGE_VERSION := 1.7
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-support_module_src_files += $(LOCAL_SRC_FILES)
-
-# -----------------------------------------------------------------------
-
-# A helper sub-library that makes direct use of JellyBean MR1 APIs.
-include $(CLEAR_VARS)
-LOCAL_MODULE := android-support-v4-jellybean-mr1
-LOCAL_SDK_VERSION := 17
-LOCAL_SRC_FILES := $(call all-java-files-under, jellybean-mr1)
-LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4-jellybean
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4-ics
 LOCAL_JAVA_LANGUAGE_VERSION := 1.7
 include $(BUILD_STATIC_JAVA_LIBRARY)
 
@@ -176,7 +111,7 @@
 LOCAL_MODULE := android-support-v4-jellybean-mr2
 LOCAL_SDK_VERSION := 18
 LOCAL_SRC_FILES := $(call all-java-files-under, jellybean-mr2)
-LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4-jellybean-mr1
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4-jellybean
 LOCAL_JAVA_LANGUAGE_VERSION := 1.7
 include $(BUILD_STATIC_JAVA_LIBRARY)
 
@@ -265,23 +200,31 @@
 # Here is the final static library that apps can link against.
 include $(CLEAR_VARS)
 LOCAL_USE_AAPT2 := true
-LOCAL_MODULE := android-support-v4
+LOCAL_MODULE := android-support-core
 LOCAL_SDK_VERSION := 4
 LOCAL_AIDL_INCLUDES := frameworks/support/v4/java
 LOCAL_SRC_FILES := $(call all-java-files-under, java) \
     $(call all-Iaidl-files-under, java)
 LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
 LOCAL_STATIC_JAVA_LIBRARIES += android-support-v4-api24
+LOCAL_SHARED_ANDROID_LIBRARIES := \
+    android-support-compat \
+    android-support-annotations
 LOCAL_JAR_EXCLUDE_FILES := none
 LOCAL_JAVA_LANGUAGE_VERSION := 1.7
 include $(BUILD_STATIC_JAVA_LIBRARY)
 
 support_module_src_files += $(LOCAL_SRC_FILES)
+support_module_src_files += $(call all-java-files-under, ../compat/java)
+support_module_src_files += $(call all-java-files-under, ../compat/donut)
+support_module_src_files += $(call all-java-files-under, ../compat/honeycomb_mr2)
+support_module_src_files += $(call all-java-files-under, ../compat/ics)
 support_module_aidl_includes := $(LOCAL_AIDL_INCLUDES)
 
 # API Check
 # ---------------------------------------------
 support_module := $(LOCAL_MODULE)
 support_module_api_dir := $(LOCAL_PATH)/api
+support_module_java_libraries := $(LOCAL_JAVA_LIBRARIES)
 support_module_java_packages := android.support.v4.*
 include $(SUPPORT_API_CHECK)
diff --git a/v4/AndroidManifest.xml b/v4/AndroidManifest.xml
index 01eaccf..bd21018 100644
--- a/v4/AndroidManifest.xml
+++ b/v4/AndroidManifest.xml
@@ -15,7 +15,7 @@
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:tools="http://schemas.android.com/tools"
-          package="android.support.v4">
-    <uses-sdk android:minSdkVersion="4" tools:overrideLibrary="android.support.v4"/>
+          package="android.support.core">
+    <uses-sdk android:minSdkVersion="9" tools:overrideLibrary="android.support.core"/>
     <application />
 </manifest>
diff --git a/v4/api/current.txt b/v4/api/current.txt
index 48eac4c..7a76d51 100644
--- a/v4/api/current.txt
+++ b/v4/api/current.txt
@@ -2993,6 +2993,7 @@
     method public java.lang.String getViewIdResourceName();
     method public android.support.v4.view.accessibility.AccessibilityWindowInfoCompat getWindow();
     method public int getWindowId();
+    method public boolean hasImage();
     method public boolean isAccessibilityFocused();
     method public boolean isCheckable();
     method public boolean isChecked();
@@ -3038,6 +3039,7 @@
     method public void setError(java.lang.CharSequence);
     method public void setFocusable(boolean);
     method public void setFocused(boolean);
+    method public void setHasImage(boolean);
     method public void setInputType(int);
     method public void setLabelFor(android.view.View);
     method public void setLabelFor(android.view.View, int);
@@ -3663,6 +3665,7 @@
     method public void setColorSchemeColors(int...);
     method public void setColorSchemeResources(int...);
     method public void setDistanceToTriggerSync(int);
+    method public void setOnChildScrollUpCallback(android.support.v4.widget.SwipeRefreshLayout.OnChildScrollUpCallback);
     method public void setOnRefreshListener(android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener);
     method public deprecated void setProgressBackgroundColor(int);
     method public void setProgressBackgroundColorSchemeColor(int);
@@ -3677,6 +3680,10 @@
     field protected int mOriginalOffsetTop;
   }
 
+  public static abstract interface SwipeRefreshLayout.OnChildScrollUpCallback {
+    method public abstract boolean canChildScrollUp(android.support.v4.widget.SwipeRefreshLayout, android.view.View);
+  }
+
   public static abstract interface SwipeRefreshLayout.OnRefreshListener {
     method public abstract void onRefresh();
   }
diff --git a/v4/build.gradle b/v4/build.gradle
index 4da2100..9415e63 100644
--- a/v4/build.gradle
+++ b/v4/build.gradle
@@ -1,9 +1,10 @@
 apply plugin: 'com.android.library'
-archivesBaseName = 'support-v4'
+archivesBaseName = 'support-core'
 
 
-createApiSourceSets(project, gradle.ext.studioCompat.modules.v4.apiTargets)
+createApiSourceSets(project, gradle.ext.studioCompat.modules.core.apiTargets)
 dependencies {
+    compile project(':support-compat')
     androidTestCompile ('com.android.support.test:runner:0.4.1') {
         exclude module: 'support-annotations'
     }
@@ -18,13 +19,13 @@
 
 sourceCompatibility = JavaVersion.VERSION_1_7
 targetCompatibility = JavaVersion.VERSION_1_7
-setApiModuleDependencies(project, dependencies, gradle.ext.studioCompat.modules.v4.dependencies)
+setApiModuleDependencies(project, dependencies, gradle.ext.studioCompat.modules.core.dependencies)
 
 android {
-    compileSdkVersion 4
+    compileSdkVersion 9
 
     defaultConfig {
-        minSdkVersion 4
+        minSdkVersion 9
         // TODO: get target from branch
         //targetSdkVersion 19
 
diff --git a/v4/ics-mr1/android/support/v4/speech/tts/TextToSpeechICSMR1.java b/v4/ics-mr1/android/support/v4/speech/tts/TextToSpeechICSMR1.java
deleted file mode 100644
index bbad4c1..0000000
--- a/v4/ics-mr1/android/support/v4/speech/tts/TextToSpeechICSMR1.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package android.support.v4.speech.tts;
-
-import android.speech.tts.TextToSpeech;
-import android.speech.tts.UtteranceProgressListener;
-import android.speech.tts.TextToSpeech.OnUtteranceCompletedListener;
-
-import java.util.Locale;
-import java.util.Set;
-
-/** Helper class for TTS functionality introduced in ICS MR1 */
-class TextToSpeechICSMR1 {
-    /**
-     * Call {@link TextToSpeech#getFeatures} if available.
-     *
-     * @return {@link TextToSpeech#getFeatures} or null on older devices.
-     */
-    static Set<String> getFeatures(TextToSpeech tts, Locale locale) {
-        if (android.os.Build.VERSION.SDK_INT >=
-                android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
-            return tts.getFeatures(locale);
-        }
-        return null;
-    }
-
-    public static final String KEY_FEATURE_EMBEDDED_SYNTHESIS = "embeddedTts";
-    public static final String KEY_FEATURE_NETWORK_SYNTHESIS = "networkTts";
-
-    static interface UtteranceProgressListenerICSMR1 {
-        void onDone(String utteranceId);
-        void onError(String utteranceId);
-        void onStart(String utteranceId);
-    }
-
-    /**
-     * Call {@link TextToSpeech#setOnUtteranceProgressListener} if ICS-MR1 or newer.
-     *
-     * On pre ICS-MR1 devices,{@link TextToSpeech#setOnUtteranceCompletedListener} is
-     * used to emulate its behavior - at the end of synthesis we call
-     * {@link UtteranceProgressListenerICSMR1#onStart(String)} and
-     * {@link UtteranceProgressListenerICSMR1#onDone(String)} one after the other.
-     * Errors can't be detected.
-     */
-    static void setUtteranceProgressListener(TextToSpeech tts,
-            final UtteranceProgressListenerICSMR1 listener) {
-        if (android.os.Build.VERSION.SDK_INT >=
-                android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
-            tts.setOnUtteranceProgressListener(new UtteranceProgressListener() {
-                @Override
-                public void onStart(String utteranceId) {
-                    listener.onStart(utteranceId);
-                }
-
-                @Override
-                public void onError(String utteranceId) {
-                    listener.onError(utteranceId);
-                }
-
-                @Override
-                public void onDone(String utteranceId) {
-                    listener.onDone(utteranceId);
-                }
-            });
-        } else {
-            tts.setOnUtteranceCompletedListener(new OnUtteranceCompletedListener() {
-                @Override
-                public void onUtteranceCompleted(String utteranceId) {
-                    // Emulate onStart. Clients are expecting it will happen.
-                    listener.onStart(utteranceId);
-                    listener.onDone(utteranceId);
-                }
-            });
-        }
-    }
-}
diff --git a/v4/ics/android/support/v4/speech/tts/TextToSpeechICS.java b/v4/ics/android/support/v4/speech/tts/TextToSpeechICS.java
deleted file mode 100644
index 4e0c041..0000000
--- a/v4/ics/android/support/v4/speech/tts/TextToSpeechICS.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package android.support.v4.speech.tts;
-
-import android.content.Context;
-import android.os.Build;
-import android.speech.tts.TextToSpeech;
-import android.speech.tts.TextToSpeech.OnInitListener;
-import android.util.Log;
-
-/** Helper class for TTS functionality introduced in ICS */
-class TextToSpeechICS {
-    private static final String TAG = "android.support.v4.speech.tts";
-
-    static TextToSpeech construct(Context context, OnInitListener onInitListener,
-            String engineName) {
-        if (Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
-            if (engineName == null) {
-                return new TextToSpeech(context, onInitListener);
-            } else {
-                Log.w(TAG, "Can't specify tts engine on this device");
-                return new TextToSpeech(context, onInitListener);
-            }
-        } else {
-            return new TextToSpeech(context, onInitListener, engineName);
-        }
-    }
-
-}
diff --git a/v4/java/android/support/v4/view/NestedScrollingChildHelper.java b/v4/java/android/support/v4/view/NestedScrollingChildHelper.java
index 9e25667..745eafd 100644
--- a/v4/java/android/support/v4/view/NestedScrollingChildHelper.java
+++ b/v4/java/android/support/v4/view/NestedScrollingChildHelper.java
@@ -30,7 +30,8 @@
  * method implementation. This implements the standard framework policy for nested scrolling.</p>
  *
  * <p>Views invoking nested scrolling functionality should always do so from the relevant
- * {@link ViewCompat}, {@link ViewGroupCompat} or {@link ViewParentCompat} compatibility
+ * {@link android.support.v4.view.ViewCompat}, {@link android.support.v4.view.ViewGroupCompat} or
+ * {@link android.support.v4.view.ViewParentCompat} compatibility
  * shim static methods. This ensures interoperability with nested scrolling views on Android
  * 5.0 Lollipop and newer.</p>
  */
@@ -51,8 +52,8 @@
      * Enable nested scrolling.
      *
      * <p>This is a delegate method. Call it from your {@link android.view.View View} subclass
-     * method/{@link NestedScrollingChild} interface method with the same signature to implement
-     * the standard policy.</p>
+     * method/{@link android.support.v4.view.NestedScrollingChild} interface method with the same
+     * signature to implement the standard policy.</p>
      *
      * @param enabled true to enable nested scrolling dispatch from this view, false otherwise
      */
@@ -67,8 +68,8 @@
      * Check if nested scrolling is enabled for this view.
      *
      * <p>This is a delegate method. Call it from your {@link android.view.View View} subclass
-     * method/{@link NestedScrollingChild} interface method with the same signature to implement
-     * the standard policy.</p>
+     * method/{@link android.support.v4.view.NestedScrollingChild} interface method with the same
+     * signature to implement the standard policy.</p>
      *
      * @return true if nested scrolling is enabled for this view
      */
@@ -81,8 +82,8 @@
      * a nested scroll in progress.
      *
      * <p>This is a delegate method. Call it from your {@link android.view.View View} subclass
-     * method/{@link NestedScrollingChild} interface method with the same signature to implement
-     * the standard policy.</p>
+     * method/{@link android.support.v4.view.NestedScrollingChild} interface method with the same
+     * signature to implement the standard policy.</p>
      *
      * @return true if this view has a nested scrolling parent, false otherwise
      */
@@ -94,11 +95,11 @@
      * Start a new nested scroll for this view.
      *
      * <p>This is a delegate method. Call it from your {@link android.view.View View} subclass
-     * method/{@link NestedScrollingChild} interface method with the same signature to implement
-     * the standard policy.</p>
+     * method/{@link android.support.v4.view.NestedScrollingChild} interface method with the same
+     * signature to implement the standard policy.</p>
      *
      * @param axes Supported nested scroll axes.
-     *             See {@link NestedScrollingChild#startNestedScroll(int)}.
+     *             See {@link android.support.v4.view.NestedScrollingChild#startNestedScroll(int)}.
      * @return true if a cooperating parent view was found and nested scrolling started successfully
      */
     public boolean startNestedScroll(int axes) {
@@ -128,8 +129,8 @@
      * Stop a nested scroll in progress.
      *
      * <p>This is a delegate method. Call it from your {@link android.view.View View} subclass
-     * method/{@link NestedScrollingChild} interface method with the same signature to implement
-     * the standard policy.</p>
+     * method/{@link android.support.v4.view.NestedScrollingChild} interface method with the same
+     * signature to implement the standard policy.</p>
      */
     public void stopNestedScroll() {
         if (mNestedScrollingParent != null) {
@@ -142,8 +143,8 @@
      * Dispatch one step of a nested scrolling operation to the current nested scrolling parent.
      *
      * <p>This is a delegate method. Call it from your {@link android.view.View View} subclass
-     * method/{@link NestedScrollingChild} interface method with the same signature to implement
-     * the standard policy.</p>
+     * method/{@link android.support.v4.view.NestedScrollingChild} interface method with the same
+     * signature to implement the standard policy.</p>
      *
      * @return true if the parent consumed any of the nested scroll
      */
@@ -181,8 +182,8 @@
      * Dispatch one step of a nested pre-scrolling operation to the current nested scrolling parent.
      *
      * <p>This is a delegate method. Call it from your {@link android.view.View View} subclass
-     * method/{@link NestedScrollingChild} interface method with the same signature to implement
-     * the standard policy.</p>
+     * method/{@link android.support.v4.view.NestedScrollingChild} interface method with the same
+     * signature to implement the standard policy.</p>
      *
      * @return true if the parent consumed any of the nested scroll
      */
@@ -225,8 +226,8 @@
      * Dispatch a nested fling operation to the current nested scrolling parent.
      *
      * <p>This is a delegate method. Call it from your {@link android.view.View View} subclass
-     * method/{@link NestedScrollingChild} interface method with the same signature to implement
-     * the standard policy.</p>
+     * method/{@link android.support.v4.view.NestedScrollingChild} interface method with the same
+     * signature to implement the standard policy.</p>
      *
      * @return true if the parent consumed the nested fling
      */
@@ -242,8 +243,8 @@
      * Dispatch a nested pre-fling operation to the current nested scrolling parent.
      *
      * <p>This is a delegate method. Call it from your {@link android.view.View View} subclass
-     * method/{@link NestedScrollingChild} interface method with the same signature to implement
-     * the standard policy.</p>
+     * method/{@link android.support.v4.view.NestedScrollingChild} interface method with the same
+     * signature to implement the standard policy.</p>
      *
      * @return true if the parent consumed the nested fling
      */
@@ -260,8 +261,8 @@
      * <code>NestedScrollingChildHelper</code> when detached from a window.
      *
      * <p>This is a delegate method. Call it from your {@link android.view.View View} subclass
-     * method/{@link NestedScrollingChild} interface method with the same signature to implement
-     * the standard policy.</p>
+     * method/{@link android.support.v4.view.NestedScrollingChild} interface method with the same
+     * signature to implement the standard policy.</p>
      */
     public void onDetachedFromWindow() {
         ViewCompat.stopNestedScroll(mView);
@@ -271,8 +272,8 @@
      * Called when a nested scrolling child stops its current nested scroll operation.
      *
      * <p>This is a delegate method. Call it from your {@link android.view.View View} subclass
-     * method/{@link NestedScrollingChild} interface method with the same signature to implement
-     * the standard policy.</p>
+     * method/{@link android.support.v4.view.NestedScrollingChild} interface method with the same
+     * signature to implement the standard policy.</p>
      *
      * @param child Child view stopping its nested scroll. This may not be a direct child view.
      */
diff --git a/v4/java/android/support/v4/view/NestedScrollingParentHelper.java b/v4/java/android/support/v4/view/NestedScrollingParentHelper.java
index 91522f1..75936e9 100644
--- a/v4/java/android/support/v4/view/NestedScrollingParentHelper.java
+++ b/v4/java/android/support/v4/view/NestedScrollingParentHelper.java
@@ -31,7 +31,8 @@
  * for nested scrolling.</p>
  *
  * <p>Views invoking nested scrolling functionality should always do so from the relevant
- * {@link ViewCompat}, {@link ViewGroupCompat} or {@link ViewParentCompat} compatibility
+ * {@link android.support.v4.view.ViewCompat}, {@link android.support.v4.view.ViewGroupCompat} or
+ * {@link android.support.v4.view.ViewParentCompat} compatibility
  * shim static methods. This ensures interoperability with nested scrolling views on Android
  * 5.0 Lollipop and newer.</p>
  */
@@ -51,8 +52,8 @@
      * by this ViewGroup.
      *
      * <p>This is a delegate method. Call it from your {@link android.view.ViewGroup ViewGroup}
-     * subclass method/{@link NestedScrollingParent} interface method with the same signature
-     * to implement the standard policy.</p>
+     * subclass method/{@link android.support.v4.view.NestedScrollingParent} interface method with
+     * the same signature to implement the standard policy.</p>
      */
     public void onNestedScrollAccepted(View child, View target, int axes) {
         mNestedScrollAxes = axes;
@@ -62,8 +63,8 @@
      * Return the current axes of nested scrolling for this ViewGroup.
      *
      * <p>This is a delegate method. Call it from your {@link android.view.ViewGroup ViewGroup}
-     * subclass method/{@link NestedScrollingParent} interface method with the same signature
-     * to implement the standard policy.</p>
+     * subclass method/{@link android.support.v4.view.NestedScrollingParent} interface method with
+     * the same signature to implement the standard policy.</p>
      */
     public int getNestedScrollAxes() {
         return mNestedScrollAxes;
@@ -73,8 +74,8 @@
      * React to a nested scroll operation ending.
      *
      * <p>This is a delegate method. Call it from your {@link android.view.ViewGroup ViewGroup}
-     * subclass method/{@link NestedScrollingParent} interface method with the same signature
-     * to implement the standard policy.</p>
+     * subclass method/{@link android.support.v4.view.NestedScrollingParent} interface method with
+     * the same signature to implement the standard policy.</p>
      *
      * @param target View that initiated the nested scroll
      */
diff --git a/v4/java/android/support/v4/widget/MaterialProgressDrawable.java b/v4/java/android/support/v4/widget/MaterialProgressDrawable.java
index db46186..50939ad 100644
--- a/v4/java/android/support/v4/widget/MaterialProgressDrawable.java
+++ b/v4/java/android/support/v4/widget/MaterialProgressDrawable.java
@@ -16,11 +16,6 @@
 
 package android.support.v4.widget;
 
-import android.view.animation.AccelerateDecelerateInterpolator;
-import android.view.animation.Interpolator;
-import android.view.animation.Animation;
-import android.view.animation.LinearInterpolator;
-import android.view.animation.Transformation;
 import android.content.Context;
 import android.content.res.Resources;
 import android.graphics.Canvas;
@@ -32,13 +27,17 @@
 import android.graphics.PixelFormat;
 import android.graphics.Rect;
 import android.graphics.RectF;
-import android.graphics.drawable.Drawable;
 import android.graphics.drawable.Animatable;
+import android.graphics.drawable.Drawable;
 import android.support.annotation.IntDef;
 import android.support.annotation.NonNull;
 import android.support.v4.view.animation.FastOutSlowInInterpolator;
 import android.util.DisplayMetrics;
 import android.view.View;
+import android.view.animation.Animation;
+import android.view.animation.Interpolator;
+import android.view.animation.LinearInterpolator;
+import android.view.animation.Transformation;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -54,7 +53,7 @@
     private static final Interpolator MATERIAL_INTERPOLATOR = new FastOutSlowInInterpolator();
 
     private static final float FULL_ROTATION = 1080.0f;
-    @Retention(RetentionPolicy.CLASS)
+    @Retention(RetentionPolicy.SOURCE)
     @IntDef({LARGE, DEFAULT})
     public @interface ProgressDrawableSize {}
     // Maps to ProgressBar.Large style
diff --git a/v4/java/android/support/v4/widget/SwipeRefreshLayout.java b/v4/java/android/support/v4/widget/SwipeRefreshLayout.java
index 2059557..be35be0 100644
--- a/v4/java/android/support/v4/widget/SwipeRefreshLayout.java
+++ b/v4/java/android/support/v4/widget/SwipeRefreshLayout.java
@@ -21,6 +21,7 @@
 import android.content.res.TypedArray;
 import android.support.annotation.ColorInt;
 import android.support.annotation.ColorRes;
+import android.support.annotation.Nullable;
 import android.support.annotation.VisibleForTesting;
 import android.support.v4.view.MotionEventCompat;
 import android.support.v4.view.NestedScrollingChild;
@@ -168,6 +169,8 @@
     // Whether the client has set a custom starting position;
     private boolean mUsingCustomStart;
 
+    private OnChildScrollUpCallback mChildScrollUpCallback;
+
     private Animation.AnimationListener mRefreshListener = new Animation.AnimationListener() {
         @Override
         public void onAnimationStart(Animation animation) {
@@ -647,6 +650,9 @@
      *         scroll up. Override this if the child view is a custom view.
      */
     public boolean canChildScrollUp() {
+        if (mChildScrollUpCallback != null) {
+            return mChildScrollUpCallback.canChildScrollUp(this, mTarget);
+        }
         if (android.os.Build.VERSION.SDK_INT < 14) {
             if (mTarget instanceof AbsListView) {
                 final AbsListView absListView = (AbsListView) mTarget;
@@ -661,6 +667,15 @@
         }
     }
 
+    /**
+     * Set a callback to override {@link SwipeRefreshLayout#canChildScrollUp()} method. Non-null
+     * callback will return the value provided by the callback and ignore all internal logic.
+     * @param callback Callback that should be called when canChildScrollUp() is called.
+     */
+    public void setOnChildScrollUpCallback(@Nullable OnChildScrollUpCallback callback) {
+        mChildScrollUpCallback = callback;
+    }
+
     @Override
     public boolean onInterceptTouchEvent(MotionEvent ev) {
         ensureTarget();
@@ -1161,4 +1176,21 @@
     public interface OnRefreshListener {
         public void onRefresh();
     }
+
+    /**
+     * Classes that wish to override {@link SwipeRefreshLayout#canChildScrollUp()} method
+     * behavior should implement this interface.
+     */
+    public interface OnChildScrollUpCallback {
+        /**
+         * Callback that will be called when {@link SwipeRefreshLayout#canChildScrollUp()} method
+         * is called to allow the implementer to override its behavior.
+         *
+         * @param parent SwipeRefreshLayout that this callback is overriding.
+         * @param child The child view of SwipeRefreshLayout.
+         *
+         * @return Whether it is possible for the child view of parent layout to scroll up.
+         */
+        public boolean canChildScrollUp(SwipeRefreshLayout parent, @Nullable View child);
+    }
 }
diff --git a/v4/tests/AndroidManifest.xml b/v4/tests/AndroidManifest.xml
index 61bc05e..a050840 100644
--- a/v4/tests/AndroidManifest.xml
+++ b/v4/tests/AndroidManifest.xml
@@ -16,9 +16,9 @@
   -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:tools="http://schemas.android.com/tools"
-          package="android.support.v4.test">
+          package="android.support.core.test">
     <uses-sdk
-            android:minSdkVersion="4"
+            android:minSdkVersion="9"
             android:targetSdkVersion="23"
             tools:overrideLibrary="android.support.test, android.app, android.support.test.rule,
                       android.support.test.espresso, android.support.test.espresso.idling"/>
@@ -32,8 +32,6 @@
             android:supportsRtl="true"
             android:theme="@style/TestActivityTheme">
         <uses-library android:name="android.test.runner" />
-        <activity android:name="android.support.v4.widget.TextViewTestActivity"/>
-
         <activity android:name="android.support.v4.widget.SwipeRefreshLayoutActivity"/>
 
         <activity android:name="android.support.v4.widget.ExploreByTouchHelperTestActivity"/>
@@ -42,11 +40,6 @@
 
         <activity android:name="android.support.v4.view.ViewPagerWithTabStripActivity"/>
 
-        <activity android:name="android.support.v4.view.VpaActivity"/>
-
-        <activity
-            android:name="android.support.v4.ThemedYellowActivity"
-            android:theme="@style/YellowTheme" />
         <activity android:name="android.support.v4.app.test.FragmentTestActivity"/>
 
         <activity android:name="android.support.v4.app.test.EmptyFragmentTestActivity" />
diff --git a/v4/tests/java/android/support/v4/app/FragmentLifecycleTest.java b/v4/tests/java/android/support/v4/app/FragmentLifecycleTest.java
index 0e717d8..4ac9b59 100644
--- a/v4/tests/java/android/support/v4/app/FragmentLifecycleTest.java
+++ b/v4/tests/java/android/support/v4/app/FragmentLifecycleTest.java
@@ -22,11 +22,11 @@
 import android.os.Parcelable;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
+import android.support.core.test.R;
 import android.support.test.annotation.UiThreadTest;
 import android.support.test.rule.ActivityTestRule;
 import android.support.test.runner.AndroidJUnit4;
 import android.support.v4.app.test.EmptyFragmentTestActivity;
-import android.support.v4.test.R;
 import android.test.suitebuilder.annotation.MediumTest;
 import android.view.LayoutInflater;
 import android.view.View;
diff --git a/v4/tests/java/android/support/v4/app/FragmentReplaceTest.java b/v4/tests/java/android/support/v4/app/FragmentReplaceTest.java
index 6a71e5c..c033afa 100644
--- a/v4/tests/java/android/support/v4/app/FragmentReplaceTest.java
+++ b/v4/tests/java/android/support/v4/app/FragmentReplaceTest.java
@@ -16,10 +16,10 @@
 package android.support.v4.app;
 
 import android.app.Fragment;
+import android.support.core.test.R;
 import android.support.test.filters.SdkSuppress;
 import android.support.v4.app.test.FragmentTestActivity;
 import android.support.v4.app.test.FragmentTestActivity.TestFragment;
-import android.support.v4.test.R;
 import android.test.ActivityInstrumentationTestCase2;
 import android.test.UiThreadTest;
 import android.view.KeyEvent;
diff --git a/v4/tests/java/android/support/v4/app/FragmentTest.java b/v4/tests/java/android/support/v4/app/FragmentTest.java
index 50ec5a7..bfc242e 100644
--- a/v4/tests/java/android/support/v4/app/FragmentTest.java
+++ b/v4/tests/java/android/support/v4/app/FragmentTest.java
@@ -16,8 +16,8 @@
 package android.support.v4.app;
 
 import android.os.Bundle;
+import android.support.core.test.R;
 import android.support.v4.app.test.FragmentTestActivity;
-import android.support.v4.test.R;
 import android.test.ActivityInstrumentationTestCase2;
 import android.test.UiThreadTest;
 import android.test.suitebuilder.annotation.MediumTest;
diff --git a/v4/tests/java/android/support/v4/app/FragmentTransitionTest.java b/v4/tests/java/android/support/v4/app/FragmentTransitionTest.java
index f49d8e2..befd184 100644
--- a/v4/tests/java/android/support/v4/app/FragmentTransitionTest.java
+++ b/v4/tests/java/android/support/v4/app/FragmentTransitionTest.java
@@ -17,9 +17,9 @@
 
 import android.os.Build.VERSION;
 import android.os.Build.VERSION_CODES;
+import android.support.core.test.R;
 import android.support.v4.app.test.FragmentTestActivity;
 import android.support.v4.app.test.FragmentTestActivity.TestFragment;
-import android.support.v4.test.R;
 import android.support.v4.view.ViewCompat;
 import android.test.ActivityInstrumentationTestCase2;
 import android.test.suitebuilder.annotation.MediumTest;
diff --git a/v4/tests/java/android/support/v4/app/StrictViewFragment.java b/v4/tests/java/android/support/v4/app/StrictViewFragment.java
index 01251d2..7dd279b 100644
--- a/v4/tests/java/android/support/v4/app/StrictViewFragment.java
+++ b/v4/tests/java/android/support/v4/app/StrictViewFragment.java
@@ -17,7 +17,7 @@
 
 package android.support.v4.app;
 
-import android.support.v4.test.R;
+import android.support.core.test.R;
 import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.View;
diff --git a/v4/tests/java/android/support/v4/app/test/FragmentTestActivity.java b/v4/tests/java/android/support/v4/app/test/FragmentTestActivity.java
index 06cf753..930c080 100644
--- a/v4/tests/java/android/support/v4/app/test/FragmentTestActivity.java
+++ b/v4/tests/java/android/support/v4/app/test/FragmentTestActivity.java
@@ -21,9 +21,9 @@
 import android.os.Build.VERSION;
 import android.os.Build.VERSION_CODES;
 import android.os.Bundle;
+import android.support.core.test.R;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentActivity;
-import android.support.v4.test.R;
 import android.transition.Transition;
 import android.transition.Transition.TransitionListener;
 import android.transition.TransitionInflater;
diff --git a/v4/tests/java/android/support/v4/graphics/ColorUtilsTest.java b/v4/tests/java/android/support/v4/graphics/ColorUtilsTest.java
index 998980b..985f874 100644
--- a/v4/tests/java/android/support/v4/graphics/ColorUtilsTest.java
+++ b/v4/tests/java/android/support/v4/graphics/ColorUtilsTest.java
@@ -82,6 +82,7 @@
                 .setWhiteMinAlpha30(0.39f).setWhiteMinAlpha45(0.54f));
     }
 
+    @Test
     public void testColorToHSL() {
         for (TestEntry entry : sEntryList) {
             verifyColorToHSL(entry.rgb, entry.hsl);
diff --git a/v4/tests/java/android/support/v4/testutils/TestUtils.java b/v4/tests/java/android/support/v4/testutils/TestUtils.java
index 9b1acee..25f910e 100644
--- a/v4/tests/java/android/support/v4/testutils/TestUtils.java
+++ b/v4/tests/java/android/support/v4/testutils/TestUtils.java
@@ -17,9 +17,6 @@
 
 package android.support.v4.testutils;
 
-import java.lang.IllegalArgumentException;
-import java.lang.RuntimeException;
-
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
 import android.graphics.Color;
@@ -27,41 +24,10 @@
 import android.graphics.drawable.Drawable;
 import android.support.annotation.ColorInt;
 import android.support.annotation.NonNull;
-import android.util.DisplayMetrics;
-import android.util.TypedValue;
-
 import junit.framework.Assert;
 
 public class TestUtils {
     /**
-     * Converts the specified value from dips to pixels for use as view size.
-     */
-    public static int convertSizeDipsToPixels(DisplayMetrics displayMetrics, int dipValue) {
-        // Round to the nearest int value. This follows the logic in
-        // TypedValue.complexToDimensionPixelSize
-        final int res = (int) (dipValue * displayMetrics.density + 0.5f);
-        if (res != 0) {
-            return res;
-        }
-        if (dipValue == 0) {
-            return 0;
-        }
-        if (dipValue > 0) {
-            return 1;
-        }
-        return -1;
-    }
-
-    /**
-     * Converts the specified value from dips to pixels for use as view offset.
-     */
-    public static int convertOffsetDipsToPixels(DisplayMetrics displayMetrics, int dipValue) {
-        // Round to the nearest int value.
-        return (int) (dipValue * displayMetrics.density);
-    }
-
-
-    /**
      * Checks whether all the pixels in the specified drawable are of the same specified color.
      * If the passed <code>Drawable</code> does not have positive intrinsic dimensions set, this
      * method will throw an <code>IllegalArgumentException</code>. If there is a color mismatch,
diff --git a/v4/tests/java/android/support/v4/view/BaseViewPagerTest.java b/v4/tests/java/android/support/v4/view/BaseViewPagerTest.java
index 6fc7234..e8090a6 100644
--- a/v4/tests/java/android/support/v4/view/BaseViewPagerTest.java
+++ b/v4/tests/java/android/support/v4/view/BaseViewPagerTest.java
@@ -17,9 +17,9 @@
 
 import android.app.Activity;
 import android.graphics.Color;
+import android.support.core.test.R;
 import android.support.test.espresso.ViewAction;
 import android.support.v4.BaseInstrumentationTestCase;
-import android.support.v4.test.R;
 import android.support.v4.testutils.TestUtilsMatchers;
 import android.test.suitebuilder.annotation.MediumTest;
 import android.test.suitebuilder.annotation.SmallTest;
diff --git a/v4/tests/java/android/support/v4/view/ViewPagerWithTabStripActivity.java b/v4/tests/java/android/support/v4/view/ViewPagerWithTabStripActivity.java
index 2cb3048..fa6a9e8 100644
--- a/v4/tests/java/android/support/v4/view/ViewPagerWithTabStripActivity.java
+++ b/v4/tests/java/android/support/v4/view/ViewPagerWithTabStripActivity.java
@@ -18,7 +18,7 @@
 
 import android.app.Activity;
 import android.os.Bundle;
-import android.support.v4.test.R;
+import android.support.core.test.R;
 import android.view.WindowManager;
 
 public class ViewPagerWithTabStripActivity extends Activity {
diff --git a/v4/tests/java/android/support/v4/view/ViewPagerWithTabStripTest.java b/v4/tests/java/android/support/v4/view/ViewPagerWithTabStripTest.java
index 91d1e06..1bdb93d 100644
--- a/v4/tests/java/android/support/v4/view/ViewPagerWithTabStripTest.java
+++ b/v4/tests/java/android/support/v4/view/ViewPagerWithTabStripTest.java
@@ -15,7 +15,7 @@
  */
 package android.support.v4.view;
 
-import android.support.v4.test.R;
+import android.support.core.test.R;
 
 import static android.support.test.espresso.Espresso.onView;
 import static android.support.test.espresso.action.ViewActions.click;
diff --git a/v4/tests/java/android/support/v4/view/ViewPagerWithTitleStripActivity.java b/v4/tests/java/android/support/v4/view/ViewPagerWithTitleStripActivity.java
index 49d6e76..b1a8672 100644
--- a/v4/tests/java/android/support/v4/view/ViewPagerWithTitleStripActivity.java
+++ b/v4/tests/java/android/support/v4/view/ViewPagerWithTitleStripActivity.java
@@ -18,7 +18,7 @@
 
 import android.app.Activity;
 import android.os.Bundle;
-import android.support.v4.test.R;
+import android.support.core.test.R;
 import android.view.WindowManager;
 
 public class ViewPagerWithTitleStripActivity extends Activity {
diff --git a/v4/tests/java/android/support/v4/view/ViewPagerWithTitleStripTest.java b/v4/tests/java/android/support/v4/view/ViewPagerWithTitleStripTest.java
index ec7c35c..29e0980 100644
--- a/v4/tests/java/android/support/v4/view/ViewPagerWithTitleStripTest.java
+++ b/v4/tests/java/android/support/v4/view/ViewPagerWithTitleStripTest.java
@@ -15,7 +15,7 @@
  */
 package android.support.v4.view;
 
-import android.support.v4.test.R;
+import android.support.core.test.R;
 
 import static android.support.test.espresso.Espresso.onView;
 import static android.support.test.espresso.action.ViewActions.click;
diff --git a/v4/tests/java/android/support/v4/widget/ExploreByTouchHelperTest.java b/v4/tests/java/android/support/v4/widget/ExploreByTouchHelperTest.java
index 1319f2c..cfd9155 100644
--- a/v4/tests/java/android/support/v4/widget/ExploreByTouchHelperTest.java
+++ b/v4/tests/java/android/support/v4/widget/ExploreByTouchHelperTest.java
@@ -22,9 +22,9 @@
 import android.graphics.Rect;
 import android.os.Build;
 import android.os.Bundle;
+import android.support.core.test.R;
 import android.support.test.annotation.UiThreadTest;
 import android.support.v4.BaseInstrumentationTestCase;
-import android.support.v4.test.R;
 import android.support.v4.view.ViewCompat;
 import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
 import android.test.suitebuilder.annotation.SmallTest;
diff --git a/v4/tests/java/android/support/v4/widget/ExploreByTouchHelperTestActivity.java b/v4/tests/java/android/support/v4/widget/ExploreByTouchHelperTestActivity.java
index 6d21879..2b3e2ab 100644
--- a/v4/tests/java/android/support/v4/widget/ExploreByTouchHelperTestActivity.java
+++ b/v4/tests/java/android/support/v4/widget/ExploreByTouchHelperTestActivity.java
@@ -16,8 +16,8 @@
 
 package android.support.v4.widget;
 
+import android.support.core.test.R;
 import android.support.v4.BaseTestActivity;
-import android.support.v4.test.R;
 
 public class ExploreByTouchHelperTestActivity extends BaseTestActivity {
     @Override
diff --git a/v4/tests/java/android/support/v4/widget/SwipeRefreshLayoutActivity.java b/v4/tests/java/android/support/v4/widget/SwipeRefreshLayoutActivity.java
index 6f30aa2..2188e11 100644
--- a/v4/tests/java/android/support/v4/widget/SwipeRefreshLayoutActivity.java
+++ b/v4/tests/java/android/support/v4/widget/SwipeRefreshLayoutActivity.java
@@ -16,8 +16,8 @@
 
 package android.support.v4.widget;
 
+import android.support.core.test.R;
 import android.support.v4.BaseTestActivity;
-import android.support.v4.test.R;
 
 public class SwipeRefreshLayoutActivity extends BaseTestActivity {
     @Override
diff --git a/v4/tests/java/android/support/v4/widget/SwipeRefreshLayoutTest.java b/v4/tests/java/android/support/v4/widget/SwipeRefreshLayoutTest.java
index fca1577..8c99ce8 100644
--- a/v4/tests/java/android/support/v4/widget/SwipeRefreshLayoutTest.java
+++ b/v4/tests/java/android/support/v4/widget/SwipeRefreshLayoutTest.java
@@ -25,8 +25,8 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import android.support.core.test.R;
 import android.support.v4.BaseInstrumentationTestCase;
-import android.support.v4.test.R;
 import android.test.suitebuilder.annotation.MediumTest;
 import android.test.suitebuilder.annotation.SmallTest;
 
diff --git a/v4/tests/res/values/colors.xml b/v4/tests/res/values/colors.xml
index 15158cf..d0d5309 100644
--- a/v4/tests/res/values/colors.xml
+++ b/v4/tests/res/values/colors.xml
@@ -16,20 +16,6 @@
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <color name="text_color">#FF8090</color>
 
-    <color name="selector_color_default">#70A0C0</color>
-    <color name="selector_color_focused">#70B0F0</color>
-    <color name="selector_color_pressed">#6080B0</color>
-
-    <color name="theme_color_yellow_default">#F0B000</color>
-    <color name="theme_color_yellow_focused">#F0A020</color>
-    <color name="theme_color_yellow_pressed">#E0A040</color>
-    <color name="theme_color_yellow_selected">#E8A848</color>
-
-    <color name="theme_color_lilac_default">#F080F0</color>
-    <color name="theme_color_lilac_focused">#F070D0</color>
-    <color name="theme_color_lilac_pressed">#E070A0</color>
-    <color name="theme_color_lilac_selected">#E878A8</color>
-
     <color name="test_red">#FF6030</color>
     <color name="test_green">#50E080</color>
     <color name="test_blue">#3050CF</color>
diff --git a/v4/tests/res/values/dimens.xml b/v4/tests/res/values/dimens.xml
index 5c82462..c3617a9 100644
--- a/v4/tests/res/values/dimens.xml
+++ b/v4/tests/res/values/dimens.xml
@@ -15,8 +15,4 @@
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <dimen name="text_medium_size">20sp</dimen>
-
-    <dimen name="drawable_small_size">12dip</dimen>
-    <dimen name="drawable_medium_size">16dip</dimen>
-    <dimen name="drawable_large_size">20dip</dimen>
 </resources>
\ No newline at end of file
diff --git a/v4/tests/res/values/strings.xml b/v4/tests/res/values/strings.xml
index b804faf..2fa1430 100644
--- a/v4/tests/res/values/strings.xml
+++ b/v4/tests/res/values/strings.xml
@@ -14,11 +14,5 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Short text for testing. -->
-    <string name="test_text_short">Lorem ipsum</string>
-    <!-- Medium text for testing. -->
-    <string name="test_text_medium">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam dui neque, suscipit quis rhoncus vitae, rhoncus hendrerit neque.</string>
-    <!-- Long text for testing. -->
-    <string name="test_text_long">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam dui neque, suscipit quis rhoncus vitae, rhoncus hendrerit neque. Proin ac mauris cursus nulla aliquam viverra. Vivamus pharetra luctus magna, lacinia imperdiet leo mollis eget. Fusce a diam ipsum. Etiam sit amet nisl et velit aliquam dignissim eget nec nisi. Duis bibendum euismod tortor non pulvinar. Nunc quis neque ultricies nulla luctus aliquet. Sed consectetur, orci ac vehicula consectetur, metus sem pellentesque turpis, sed venenatis nisi lorem vitae ante.</string>
     <string name="hello">Hello World</string>
 </resources>
\ No newline at end of file
diff --git a/v4/tests/res/values/styles.xml b/v4/tests/res/values/styles.xml
index 447d5ec..ae6325b 100644
--- a/v4/tests/res/values/styles.xml
+++ b/v4/tests/res/values/styles.xml
@@ -22,16 +22,4 @@
         <item name="android:textColor">@color/text_color</item>
         <item name="android:textStyle">italic</item>
     </style>
-
-    <style name="YellowTheme" parent="@android:style/Theme.Light">
-        <item name="theme_color_default">@color/theme_color_yellow_default</item>
-        <item name="theme_color_focused">@color/theme_color_yellow_focused</item>
-        <item name="theme_color_pressed">@color/theme_color_yellow_pressed</item>
-    </style>
-
-    <style name="LilacTheme" parent="@android:style/Theme.Light">
-        <item name="theme_color_default">@color/theme_color_lilac_default</item>
-        <item name="theme_color_focused">@color/theme_color_lilac_focused</item>
-        <item name="theme_color_pressed">@color/theme_color_lilac_pressed</item>
-    </style>
 </resources>
\ No newline at end of file
diff --git a/v7/appcompat/AndroidManifest.xml b/v7/appcompat/AndroidManifest.xml
index 0e0aba8..99b77ee 100644
--- a/v7/appcompat/AndroidManifest.xml
+++ b/v7/appcompat/AndroidManifest.xml
@@ -16,7 +16,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:tools="http://schemas.android.com/tools"
           package="android.support.v7.appcompat">
-    <uses-sdk android:minSdkVersion="7"
+    <uses-sdk android:minSdkVersion="9"
               tools:overrideLibrary="android.support.graphics.drawable.animated"/>
     <application/>
 </manifest>
diff --git a/v7/appcompat/build.gradle b/v7/appcompat/build.gradle
index faa8439..9edd016 100644
--- a/v7/appcompat/build.gradle
+++ b/v7/appcompat/build.gradle
@@ -23,7 +23,7 @@
     compileSdkVersion project.ext.currentSdk
 
     defaultConfig {
-        minSdkVersion 7
+        minSdkVersion 9
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
         // This disables the builds tools automatic vector -> PNG generation
         generatedDensities = []
diff --git a/v7/appcompat/res/values-be-rBY/strings.xml b/v7/appcompat/res/values-be-rBY/strings.xml
new file mode 100644
index 0000000..d083465
--- /dev/null
+++ b/v7/appcompat/res/values-be-rBY/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">"Гатова"</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>
+    <string name="abc_toolbar_collapse_description" msgid="1603543279005712093">"Згарнуць"</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">"Пошук"</string>
+    <string name="abc_search_hint" msgid="7723749260725869598">"Пошук..."</string>
+    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Запыт на пошук"</string>
+    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Выдалiць запыт"</string>
+    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Адправіць запыт"</string>
+    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Галасавы пошук"</string>
+    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Выбраць праграму"</string>
+    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Прагледзець усё"</string>
+    <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 6be164f..07c4b54 100644
--- a/v7/appcompat/res/values-bn-rBD/strings.xml
+++ b/v7/appcompat/res/values-bn-rBD/strings.xml
@@ -31,8 +31,8 @@
     <string name="abc_searchview_description_voice" msgid="893419373245838918">"ভয়েস অনুসন্ধান"</string>
     <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"একটি অ্যাপ্লিকেশান চয়ন করুন"</string>
     <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"সবগুলো দেখুন"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s এর সাথে ভাগ করুন"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"এর সাথে ভাগ করুন"</string>
+    <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>
diff --git a/v7/appcompat/res/values-bs-rBA/strings.xml b/v7/appcompat/res/values-bs-rBA/strings.xml
new file mode 100644
index 0000000..0daaa5d
--- /dev/null
+++ b/v7/appcompat/res/values-bs-rBA/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">"Završeno"</string>
+    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Vrati se na početnu stranicu"</string>
+    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Navigiraj prema gore"</string>
+    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Više opcija"</string>
+    <string name="abc_toolbar_collapse_description" msgid="1603543279005712093">"Skupi"</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">"Traži"</string>
+    <string name="abc_search_hint" msgid="7723749260725869598">"Pretraži..."</string>
+    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Pretraži upit"</string>
+    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Obriši upit"</string>
+    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Pošalji upit"</string>
+    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Pretraživanje glasom"</string>
+    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Odaberite aplikaciju"</string>
+    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Vidi sve"</string>
+    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Podijeli sa %s"</string>
+    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Podijeli sa"</string>
+    <string name="status_bar_notification_info_overflow" msgid="2869576371154716097">"&gt;999"</string>
+    <string name="abc_capital_on" msgid="3405795526292276155">"UKLJUČI"</string>
+    <string name="abc_capital_off" msgid="121134116657445385">"ISKLJUČI"</string>
+</resources>
diff --git a/v7/appcompat/res/values-ml-rIN/strings.xml b/v7/appcompat/res/values-ml-rIN/strings.xml
index 292fcc0..8483786 100644
--- a/v7/appcompat/res/values-ml-rIN/strings.xml
+++ b/v7/appcompat/res/values-ml-rIN/strings.xml
@@ -19,7 +19,7 @@
     <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>
+    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"കൂടുതൽ‍ ഓപ്‌ഷനുകള്‍"</string>
     <string name="abc_toolbar_collapse_description" msgid="1603543279005712093">"ചുരുക്കുക"</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>
diff --git a/v7/appcompat/res/values-uz-rUZ/strings.xml b/v7/appcompat/res/values-uz-rUZ/strings.xml
index 4a713a9..79f12f0 100644
--- a/v7/appcompat/res/values-uz-rUZ/strings.xml
+++ b/v7/appcompat/res/values-uz-rUZ/strings.xml
@@ -31,10 +31,8 @@
     <string name="abc_searchview_description_voice" msgid="893419373245838918">"Ovozli qidiruv"</string>
     <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Dastur tanlang"</string>
     <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Barchasini ko‘rish"</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">"Bo‘lishish:"</string>
+    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%sga ruxsat berish"</string>
+    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Ruxsat berish"</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>
diff --git a/v7/appcompat/tests/AndroidManifest.xml b/v7/appcompat/tests/AndroidManifest.xml
index 539030d..ee479cf 100644
--- a/v7/appcompat/tests/AndroidManifest.xml
+++ b/v7/appcompat/tests/AndroidManifest.xml
@@ -19,7 +19,7 @@
           package="android.support.v7.appcompat.test">
 
     <uses-sdk
-            android:minSdkVersion="7"
+            android:minSdkVersion="9"
             android:targetSdkVersion="23"
             tools:overrideLibrary="android.support.test, android.app, android.support.test.rule,
                       android.support.test.espresso, android.support.test.espresso.idling"/>
diff --git a/v7/appcompat/tests/res/values/styles.xml b/v7/appcompat/tests/res/values/styles.xml
index 0232a2b..1b416a4 100644
--- a/v7/appcompat/tests/res/values/styles.xml
+++ b/v7/appcompat/tests/res/values/styles.xml
@@ -43,11 +43,11 @@
     </style>
 
     <style name="MagentaSpinnerPopupTheme">
-        <item name="android:background">@color/test_magenta</item>
+        <item name="android:colorBackground">@color/test_magenta</item>
     </style>
 
     <style name="OceanSpinnerPopupTheme">
-        <item name="android:background">@color/ocean_default</item>
+        <item name="android:colorBackground">@color/ocean_default</item>
     </style>
 
     <style name="PopupEmptyStyle" />
diff --git a/v7/appcompat/tests/src/android/support/v7/testutils/TestUtils.java b/v7/appcompat/tests/src/android/support/v7/testutils/TestUtils.java
index d258e1f..686bfb5 100644
--- a/v7/appcompat/tests/src/android/support/v7/testutils/TestUtils.java
+++ b/v7/appcompat/tests/src/android/support/v7/testutils/TestUtils.java
@@ -14,14 +14,8 @@
  * limitations under the License.
  */
 
-
 package android.support.v7.testutils;
 
-import android.support.v4.util.Pair;
-import android.view.View;
-import android.view.ViewParent;
-import junit.framework.Assert;
-
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
 import android.graphics.Color;
@@ -29,6 +23,10 @@
 import android.os.SystemClock;
 import android.support.annotation.ColorInt;
 import android.support.annotation.NonNull;
+import android.support.v4.util.Pair;
+import android.view.View;
+import android.view.ViewParent;
+import junit.framework.Assert;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -113,17 +111,17 @@
     public static void assertAllPixelsOfColor(String failMessagePrefix, @NonNull Drawable drawable,
             int drawableWidth, int drawableHeight, boolean callSetBounds, @ColorInt int color,
             int allowedComponentVariance, boolean throwExceptionIfFails) {
-            // Create a bitmap
-            Bitmap bitmap = Bitmap.createBitmap(drawableWidth, drawableHeight,
-                    Bitmap.Config.ARGB_8888);
-            // Create a canvas that wraps the bitmap
-            Canvas canvas = new Canvas(bitmap);
-            if (callSetBounds) {
-                // Configure the drawable to have bounds that match the passed size
-                drawable.setBounds(0, 0, drawableWidth, drawableHeight);
-            }
-            // And ask the drawable to draw itself to the canvas / bitmap
-            drawable.draw(canvas);
+        // Create a bitmap
+        Bitmap bitmap = Bitmap.createBitmap(drawableWidth, drawableHeight,
+                Bitmap.Config.ARGB_8888);
+        // Create a canvas that wraps the bitmap
+        Canvas canvas = new Canvas(bitmap);
+        if (callSetBounds) {
+            // Configure the drawable to have bounds that match the passed size
+            drawable.setBounds(0, 0, drawableWidth, drawableHeight);
+        }
+        // And ask the drawable to draw itself to the canvas / bitmap
+        drawable.draw(canvas);
 
         try {
             assertAllPixelsOfColor(failMessagePrefix, bitmap, drawableWidth, drawableHeight, color,
@@ -148,35 +146,15 @@
         for (int row = 0; row < bitmapHeight; row++) {
             bitmap.getPixels(rowPixels, 0, bitmapWidth, 0, row, bitmapWidth, 1);
             for (int column = 0; column < bitmapWidth; column++) {
-                int sourceAlpha = Color.alpha(rowPixels[column]);
-                int sourceRed = Color.red(rowPixels[column]);
-                int sourceGreen = Color.green(rowPixels[column]);
-                int sourceBlue = Color.blue(rowPixels[column]);
-
-                int expectedAlpha = Color.alpha(color);
-                int expectedRed = Color.red(color);
-                int expectedGreen = Color.green(color);
-                int expectedBlue = Color.blue(color);
-
-                int varianceAlpha = Math.abs(sourceAlpha - expectedAlpha);
-                int varianceRed = Math.abs(sourceRed - expectedRed);
-                int varianceGreen = Math.abs(sourceGreen - expectedGreen);
-                int varianceBlue = Math.abs(sourceBlue - expectedBlue);
-
-                boolean isColorMatch = (varianceAlpha <= allowedComponentVariance)
-                        && (varianceRed <= allowedComponentVariance)
-                        && (varianceGreen <= allowedComponentVariance)
-                        && (varianceBlue <= allowedComponentVariance);
-
-                if (!isColorMatch) {
+                @ColorInt int colorAtCurrPixel = rowPixels[column];
+                if (!areColorsTheSameWithTolerance(color, colorAtCurrPixel,
+                        allowedComponentVariance)) {
                     String mismatchDescription = failMessagePrefix
-                            + ": expected all drawable colors to be ["
-                            + expectedAlpha + "," + expectedRed + ","
-                            + expectedGreen + "," + expectedBlue
-                            + "] but at position (" + row + "," + column + ") out of ("
-                            + bitmapWidth + "," + bitmapHeight + ") found ["
-                            + sourceAlpha + "," + sourceRed + ","
-                            + sourceGreen + "," + sourceBlue + "]";
+                            + ": expected all drawable colors to be "
+                            + formatColorToHex(color)
+                            + " but at position (" + row + "," + column + ") out of ("
+                            + bitmapWidth + "," + bitmapHeight + ") found "
+                            + formatColorToHex(colorAtCurrPixel);
                     if (throwExceptionIfFails) {
                         throw new RuntimeException(mismatchDescription);
                     } else {
@@ -187,6 +165,73 @@
         }
     }
 
+    /**
+     * Checks whether the center pixel in the specified bitmap is of the same specified color.
+     *
+     * In case there is a color mismatch, the behavior of this method depends on the
+     * <code>throwExceptionIfFails</code> parameter. If it is <code>true</code>, this method will
+     * throw an <code>Exception</code> describing the mismatch. Otherwise this method will call
+     * <code>Assert.fail</code> with detailed description of the mismatch.
+     */
+    public static void assertCenterPixelOfColor(String failMessagePrefix, @NonNull Bitmap bitmap,
+            @ColorInt int color,
+            int allowedComponentVariance, boolean throwExceptionIfFails) {
+        final int centerX = bitmap.getWidth() / 2;
+        final int centerY = bitmap.getHeight() / 2;
+        final @ColorInt int colorAtCenterPixel = bitmap.getPixel(centerX, centerY);
+        if (!areColorsTheSameWithTolerance(color, colorAtCenterPixel,
+                allowedComponentVariance)) {
+            String mismatchDescription = failMessagePrefix
+                    + ": expected all drawable colors to be "
+                    + formatColorToHex(color)
+                    + " but at position (" + centerX + "," + centerY + ") out of ("
+                    + bitmap.getWidth() + "," + bitmap.getHeight() + ") found"
+                    + formatColorToHex(colorAtCenterPixel);
+            if (throwExceptionIfFails) {
+                throw new RuntimeException(mismatchDescription);
+            } else {
+                Assert.fail(mismatchDescription);
+            }
+        }
+    }
+
+    /**
+     * Formats the passed integer-packed color into the #AARRGGBB format.
+     */
+    private static String formatColorToHex(@ColorInt int color) {
+        return String.format("#%08X", (0xFFFFFFFF & color));
+    }
+
+    /**
+     * Compares two integer-packed colors to be equal, each component within the specified
+     * allowed variance. Returns <code>true</code> if the two colors are sufficiently equal
+     * and <code>false</code> otherwise.
+     */
+    private static boolean areColorsTheSameWithTolerance(@ColorInt int expectedColor,
+            @ColorInt int actualColor, int allowedComponentVariance) {
+        int sourceAlpha = Color.alpha(actualColor);
+        int sourceRed = Color.red(actualColor);
+        int sourceGreen = Color.green(actualColor);
+        int sourceBlue = Color.blue(actualColor);
+
+        int expectedAlpha = Color.alpha(expectedColor);
+        int expectedRed = Color.red(expectedColor);
+        int expectedGreen = Color.green(expectedColor);
+        int expectedBlue = Color.blue(expectedColor);
+
+        int varianceAlpha = Math.abs(sourceAlpha - expectedAlpha);
+        int varianceRed = Math.abs(sourceRed - expectedRed);
+        int varianceGreen = Math.abs(sourceGreen - expectedGreen);
+        int varianceBlue = Math.abs(sourceBlue - expectedBlue);
+
+        boolean isColorMatch = (varianceAlpha <= allowedComponentVariance)
+                && (varianceRed <= allowedComponentVariance)
+                && (varianceGreen <= allowedComponentVariance)
+                && (varianceBlue <= allowedComponentVariance);
+
+        return isColorMatch;
+    }
+
     public static void waitForActivityDestroyed(BaseTestActivity activity) {
         while (!activity.isDestroyed()) {
             SystemClock.sleep(30);
diff --git a/v7/appcompat/tests/src/android/support/v7/testutils/TestUtilsMatchers.java b/v7/appcompat/tests/src/android/support/v7/testutils/TestUtilsMatchers.java
index 2c20aa8..ac10d3b 100644
--- a/v7/appcompat/tests/src/android/support/v7/testutils/TestUtilsMatchers.java
+++ b/v7/appcompat/tests/src/android/support/v7/testutils/TestUtilsMatchers.java
@@ -117,7 +117,8 @@
      * Returns a matcher that matches <code>View</code>s whose combined background starting
      * from the view and up its ancestor chain matches the specified color.
      */
-    public static Matcher isCombinedBackground(@ColorInt final int color) {
+    public static Matcher isCombinedBackground(@ColorInt final int color,
+            final boolean onlyTestCenterPixel) {
         return new BoundedMatcher<View, View>(View.class) {
             private String failedComparisonDescription;
 
@@ -133,9 +134,14 @@
                 // Create a bitmap with combined backgrounds of the view and its ancestors.
                 Bitmap combinedBackgroundBitmap = TestUtils.getCombinedBackgroundBitmap(view);
                 try {
-                    TestUtils.assertAllPixelsOfColor("", combinedBackgroundBitmap,
-                            combinedBackgroundBitmap.getWidth(),
-                            combinedBackgroundBitmap.getHeight(), color, 0, true);
+                    if (onlyTestCenterPixel) {
+                        TestUtils.assertCenterPixelOfColor("", combinedBackgroundBitmap,
+                                color, 0, true);
+                    } else {
+                        TestUtils.assertAllPixelsOfColor("", combinedBackgroundBitmap,
+                                combinedBackgroundBitmap.getWidth(),
+                                combinedBackgroundBitmap.getHeight(), color, 0, true);
+                    }
                     // If we are here, the color comparison has passed.
                     failedComparisonDescription = null;
                     return true;
diff --git a/v7/appcompat/tests/src/android/support/v7/widget/AppCompatButtonTest.java b/v7/appcompat/tests/src/android/support/v7/widget/AppCompatButtonTest.java
index 46925ce..340737e 100644
--- a/v7/appcompat/tests/src/android/support/v7/widget/AppCompatButtonTest.java
+++ b/v7/appcompat/tests/src/android/support/v7/widget/AppCompatButtonTest.java
@@ -60,15 +60,15 @@
         assertEquals("Button starts in all caps off", text2,
                 button2.getLayout().getText());
 
-        // Toggle all-caps mode on the two buttons. Note that as with the core Button,
-        // setting a style with textAllCaps=false on a AppCompatButton with all-caps on
-        // will have no effect.
-        onView(withId(R.id.button_caps1)).perform(setTextAppearance(R.style.TextStyleAllCapsOff));
-        onView(withId(R.id.button_caps2)).perform(setTextAppearance(R.style.TextStyleAllCapsOn));
-
-        assertEquals("Button is still in all caps on", text1.toUpperCase(),
+        // Toggle all-caps mode on the two buttons
+        onView(withId(R.id.button_caps1)).perform(
+                setTextAppearance(R.style.TextStyleAllCapsOff));
+        assertEquals("Button is now in all caps off", text1,
                 button1.getLayout().getText());
-        assertEquals("Button is in all caps on", text2.toUpperCase(),
+
+        onView(withId(R.id.button_caps2)).perform(
+                setTextAppearance(R.style.TextStyleAllCapsOn));
+        assertEquals("Button is now in all caps on", text2.toUpperCase(),
                 button2.getLayout().getText());
     }
 
diff --git a/v7/appcompat/tests/src/android/support/v7/widget/AppCompatSpinnerTest.java b/v7/appcompat/tests/src/android/support/v7/widget/AppCompatSpinnerTest.java
index 1d9ea9f..52dd727 100644
--- a/v7/appcompat/tests/src/android/support/v7/widget/AppCompatSpinnerTest.java
+++ b/v7/appcompat/tests/src/android/support/v7/widget/AppCompatSpinnerTest.java
@@ -77,8 +77,11 @@
         // matching background.
         String itemText = (String) spinner.getAdapter().getItem(2);
         Matcher popupContentMatcher = hasChild(withText(itemText));
+        // Note that we are only testing the center pixel of the combined popup background. This
+        // is to "eliminate" otherwise hacky code that would need to skip over rounded corners and
+        // drop shadow of the combined visual appearance of a popup.
         onView(popupContentMatcher).inRoot(isPlatformPopup()).check(
-                matches(isCombinedBackground(expectedPopupColor)));
+                matches(isCombinedBackground(expectedPopupColor, true)));
 
         // Click an entry in the popup to dismiss it
         onView(withText(itemText)).perform(click());
diff --git a/v7/appcompat/tests/src/android/support/v7/widget/AppCompatTextViewTest.java b/v7/appcompat/tests/src/android/support/v7/widget/AppCompatTextViewTest.java
index 0b19ac7..8da53d6 100644
--- a/v7/appcompat/tests/src/android/support/v7/widget/AppCompatTextViewTest.java
+++ b/v7/appcompat/tests/src/android/support/v7/widget/AppCompatTextViewTest.java
@@ -65,12 +65,12 @@
         // Toggle all-caps mode on the two text views
         onView(withId(R.id.text_view_caps1)).perform(
                 setTextAppearance(R.style.TextStyleAllCapsOff));
-        assertEquals("Text view is still in all caps on", text1,
+        assertEquals("Text view is now in all caps off", text1,
                 textView1.getLayout().getText());
 
         onView(withId(R.id.text_view_caps2)).perform(
                 setTextAppearance(R.style.TextStyleAllCapsOn));
-        assertEquals("Text view is in all caps on", text2.toUpperCase(),
+        assertEquals("Text view is now in all caps on", text2.toUpperCase(),
                 textView2.getLayout().getText());
     }
 
diff --git a/v7/cardview/AndroidManifest.xml b/v7/cardview/AndroidManifest.xml
index 3ef02dc..c35e369 100644
--- a/v7/cardview/AndroidManifest.xml
+++ b/v7/cardview/AndroidManifest.xml
@@ -15,6 +15,6 @@
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           package="android.support.v7.cardview">
-    <uses-sdk android:minSdkVersion="7"/>
+    <uses-sdk android:minSdkVersion="9"/>
     <application />
 </manifest>
diff --git a/v7/cardview/build.gradle b/v7/cardview/build.gradle
index 65ca583..5162e27 100644
--- a/v7/cardview/build.gradle
+++ b/v7/cardview/build.gradle
@@ -11,7 +11,7 @@
     compileSdkVersion project.ext.currentSdk
 
     defaultConfig {
-        minSdkVersion 7
+        minSdkVersion 9
         // TODO: get target from branch
         //targetSdkVersion 19
     }
diff --git a/v7/gridlayout/Android.mk b/v7/gridlayout/Android.mk
index f9bd0a1..da68275 100644
--- a/v7/gridlayout/Android.mk
+++ b/v7/gridlayout/Android.mk
@@ -27,7 +27,7 @@
 LOCAL_MODULE := android-support-v7-gridlayout
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-LOCAL_SDK_VERSION := 7
+LOCAL_SDK_VERSION := 9
 LOCAL_SHARED_ANDROID_LIBRARIES := android-support-v4
 LOCAL_JAR_EXCLUDE_FILES := none
 LOCAL_JAVA_LANGUAGE_VERSION := 1.7
diff --git a/v7/gridlayout/AndroidManifest.xml b/v7/gridlayout/AndroidManifest.xml
index 97f7be8..d2cc627 100644
--- a/v7/gridlayout/AndroidManifest.xml
+++ b/v7/gridlayout/AndroidManifest.xml
@@ -15,6 +15,6 @@
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           package="android.support.v7.gridlayout">
-    <uses-sdk android:minSdkVersion="7"/>
+    <uses-sdk android:minSdkVersion="9"/>
     <application />
 </manifest>
diff --git a/v7/gridlayout/tests/AndroidManifest.xml b/v7/gridlayout/tests/AndroidManifest.xml
index fc502a5..4c4b0ab 100644
--- a/v7/gridlayout/tests/AndroidManifest.xml
+++ b/v7/gridlayout/tests/AndroidManifest.xml
@@ -18,7 +18,7 @@
           xmlns:tools="http://schemas.android.com/tools"
           package="android.support.v7.gridlayout.test">
     <uses-sdk
-            android:minSdkVersion="7"
+            android:minSdkVersion="9"
             android:targetSdkVersion="23"
             tools:overrideLibrary="android.support.test, android.app, android.support.test.rule,
                   android.support.test.espresso, android.support.test.espresso.idling" />
diff --git a/v7/mediarouter/Android.mk b/v7/mediarouter/Android.mk
index c0c4085..8d80084 100644
--- a/v7/mediarouter/Android.mk
+++ b/v7/mediarouter/Android.mk
@@ -86,7 +86,7 @@
 include $(CLEAR_VARS)
 LOCAL_USE_AAPT2 := true
 LOCAL_MODULE := android-support-v7-mediarouter
-LOCAL_SDK_VERSION := 7
+LOCAL_SDK_VERSION := 9
 LOCAL_SDK_RES_VERSION := $(SUPPORT_CURRENT_SDK_VERSION)
 LOCAL_SRC_FILES := $(call all-java-files-under,src)
 LOCAL_STATIC_JAVA_LIBRARIES := android-support-v7-mediarouter-api24
diff --git a/v7/mediarouter/AndroidManifest.xml b/v7/mediarouter/AndroidManifest.xml
index e611947..59d9f99 100644
--- a/v7/mediarouter/AndroidManifest.xml
+++ b/v7/mediarouter/AndroidManifest.xml
@@ -15,6 +15,6 @@
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           package="android.support.v7.mediarouter">
-    <uses-sdk android:minSdkVersion="7"/>
+    <uses-sdk android:minSdkVersion="9"/>
     <application />
 </manifest>
diff --git a/v7/mediarouter/res/values-af/strings.xml b/v7/mediarouter/res/values-af/strings.xml
index 024a99c..9811194 100644
--- a/v7/mediarouter/res/values-af/strings.xml
+++ b/v7/mediarouter/res/values-af/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Albumkunswerk"</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>
diff --git a/v7/mediarouter/res/values-am/strings.xml b/v7/mediarouter/res/values-am/strings.xml
index 4456b45..6f7931d 100644
--- a/v7/mediarouter/res/values-am/strings.xml
+++ b/v7/mediarouter/res/values-am/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"የአልበም ስነ-ጥበብ"</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>
diff --git a/v7/mediarouter/res/values-ar/strings.xml b/v7/mediarouter/res/values-ar/strings.xml
index 7222590..29cab47 100644
--- a/v7/mediarouter/res/values-ar/strings.xml
+++ b/v7/mediarouter/res/values-ar/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"صورة الألبوم"</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>
diff --git a/v7/mediarouter/res/values-az-rAZ/strings.xml b/v7/mediarouter/res/values-az-rAZ/strings.xml
index aa3a70f..765520e 100644
--- a/v7/mediarouter/res/values-az-rAZ/strings.xml
+++ b/v7/mediarouter/res/values-az-rAZ/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Albom incəsənəti"</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>
diff --git a/v7/mediarouter/res/values-b+sr+Latn/strings.xml b/v7/mediarouter/res/values-b+sr+Latn/strings.xml
index c10c42d..6c32754 100644
--- a/v7/mediarouter/res/values-b+sr+Latn/strings.xml
+++ b/v7/mediarouter/res/values-b+sr+Latn/strings.xml
@@ -28,6 +28,7 @@
     <string name="mr_controller_pause" msgid="5451884435510905406">"Pauziraj"</string>
     <string name="mr_controller_expand_group" msgid="8062427022744266907">"Proširi"</string>
     <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Skupi"</string>
+    <string name="mr_controller_album_art" msgid="6422801843540543585">"Omot albuma"</string>
     <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Nema izabranih medija"</string>
     <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Nisu dostupne nikakve informacije"</string>
     <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Prebacuje se ekran"</string>
diff --git a/v7/mediarouter/res/values-be-rBY/strings.xml b/v7/mediarouter/res/values-be-rBY/strings.xml
new file mode 100644
index 0000000..de52c06
--- /dev/null
+++ b/v7/mediarouter/res/values-be-rBY/strings.xml
@@ -0,0 +1,35 @@
+<?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">"Сістэма"</string>
+    <string name="mr_user_route_category_name" msgid="7498112907524977311">"Прылады"</string>
+    <string name="mr_button_content_description" msgid="3698378085901466129">"Кнопка трансляцыі"</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_album_art" msgid="6422801843540543585">"Вокладка альбома"</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-bg/strings.xml b/v7/mediarouter/res/values-bg/strings.xml
index de49179..036b31f 100644
--- a/v7/mediarouter/res/values-bg/strings.xml
+++ b/v7/mediarouter/res/values-bg/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Обложка на албума"</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>
diff --git a/v7/mediarouter/res/values-bn-rBD/strings.xml b/v7/mediarouter/res/values-bn-rBD/strings.xml
index 7eb5301..0e3e491 100644
--- a/v7/mediarouter/res/values-bn-rBD/strings.xml
+++ b/v7/mediarouter/res/values-bn-rBD/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"অ্যালবাম শৈলি"</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>
diff --git a/v7/mediarouter/res/values-bs-rBA/strings.xml b/v7/mediarouter/res/values-bs-rBA/strings.xml
new file mode 100644
index 0000000..a6894f5
--- /dev/null
+++ b/v7/mediarouter/res/values-bs-rBA/strings.xml
@@ -0,0 +1,35 @@
+<?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">"Uređaji"</string>
+    <string name="mr_button_content_description" msgid="3698378085901466129">"Dugme za prebacivanje"</string>
+    <string name="mr_chooser_title" msgid="414301941546135990">"Prebacujte 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 prebacivanje"</string>
+    <string name="mr_controller_close_description" msgid="7333862312480583260">"Zatvori"</string>
+    <string name="mr_controller_play" msgid="683634565969987458">"Reproduciraj"</string>
+    <string name="mr_controller_pause" msgid="5451884435510905406">"Pauziraj"</string>
+    <string name="mr_controller_expand_group" msgid="8062427022744266907">"Proširi"</string>
+    <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Skupi"</string>
+    <string name="mr_controller_album_art" msgid="6422801843540543585">"Omot albuma"</string>
+    <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Nijedan medij nije odabran"</string>
+    <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Nema dostupnih informacija"</string>
+    <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Prebacuje se ekran"</string>
+</resources>
diff --git a/v7/mediarouter/res/values-ca/strings.xml b/v7/mediarouter/res/values-ca/strings.xml
index ab8809a..7fc51f7 100644
--- a/v7/mediarouter/res/values-ca/strings.xml
+++ b/v7/mediarouter/res/values-ca/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Imatge de l\'àlbum"</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>
diff --git a/v7/mediarouter/res/values-cs/strings.xml b/v7/mediarouter/res/values-cs/strings.xml
index 57c1594..f5a286e 100644
--- a/v7/mediarouter/res/values-cs/strings.xml
+++ b/v7/mediarouter/res/values-cs/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Obal alba"</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>
diff --git a/v7/mediarouter/res/values-da/strings.xml b/v7/mediarouter/res/values-da/strings.xml
index eb6c8fa..9e5f9a5 100644
--- a/v7/mediarouter/res/values-da/strings.xml
+++ b/v7/mediarouter/res/values-da/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Albumgrafik"</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>
diff --git a/v7/mediarouter/res/values-de/strings.xml b/v7/mediarouter/res/values-de/strings.xml
index 17a84af..91d764f 100644
--- a/v7/mediarouter/res/values-de/strings.xml
+++ b/v7/mediarouter/res/values-de/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Albumcover"</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>
diff --git a/v7/mediarouter/res/values-el/strings.xml b/v7/mediarouter/res/values-el/strings.xml
index 9258296..0a1a62f 100644
--- a/v7/mediarouter/res/values-el/strings.xml
+++ b/v7/mediarouter/res/values-el/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Εξώφυλλο άλμπουμ"</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>
diff --git a/v7/mediarouter/res/values-en-rAU/strings.xml b/v7/mediarouter/res/values-en-rAU/strings.xml
index 5edd79b..d60689e 100644
--- a/v7/mediarouter/res/values-en-rAU/strings.xml
+++ b/v7/mediarouter/res/values-en-rAU/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Album art"</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>
diff --git a/v7/mediarouter/res/values-en-rGB/strings.xml b/v7/mediarouter/res/values-en-rGB/strings.xml
index 5edd79b..d60689e 100644
--- a/v7/mediarouter/res/values-en-rGB/strings.xml
+++ b/v7/mediarouter/res/values-en-rGB/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Album art"</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>
diff --git a/v7/mediarouter/res/values-en-rIN/strings.xml b/v7/mediarouter/res/values-en-rIN/strings.xml
index 5edd79b..d60689e 100644
--- a/v7/mediarouter/res/values-en-rIN/strings.xml
+++ b/v7/mediarouter/res/values-en-rIN/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Album art"</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>
diff --git a/v7/mediarouter/res/values-es-rUS/strings.xml b/v7/mediarouter/res/values-es-rUS/strings.xml
index b0a0a61..2318059 100644
--- a/v7/mediarouter/res/values-es-rUS/strings.xml
+++ b/v7/mediarouter/res/values-es-rUS/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Imagen del álbum"</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>
diff --git a/v7/mediarouter/res/values-es/strings.xml b/v7/mediarouter/res/values-es/strings.xml
index 3a1eaeb..9f108fe 100644
--- a/v7/mediarouter/res/values-es/strings.xml
+++ b/v7/mediarouter/res/values-es/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Portada del álbum"</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>
diff --git a/v7/mediarouter/res/values-et-rEE/strings.xml b/v7/mediarouter/res/values-et-rEE/strings.xml
index 9058dcf..3fab845 100644
--- a/v7/mediarouter/res/values-et-rEE/strings.xml
+++ b/v7/mediarouter/res/values-et-rEE/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Albumi kujundus"</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>
diff --git a/v7/mediarouter/res/values-eu-rES/strings.xml b/v7/mediarouter/res/values-eu-rES/strings.xml
index ad85c5a..bae67ed 100644
--- a/v7/mediarouter/res/values-eu-rES/strings.xml
+++ b/v7/mediarouter/res/values-eu-rES/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Albumaren azala"</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>
diff --git a/v7/mediarouter/res/values-fa/strings.xml b/v7/mediarouter/res/values-fa/strings.xml
index 2c812ae..eb34931 100644
--- a/v7/mediarouter/res/values-fa/strings.xml
+++ b/v7/mediarouter/res/values-fa/strings.xml
@@ -28,7 +28,8 @@
     <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_album_art" msgid="6422801843540543585">"عکس روی جلد آلبوم"</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_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 a93d74e..f37317a 100644
--- a/v7/mediarouter/res/values-fi/strings.xml
+++ b/v7/mediarouter/res/values-fi/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Albumin kansikuva"</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>
diff --git a/v7/mediarouter/res/values-fr-rCA/strings.xml b/v7/mediarouter/res/values-fr-rCA/strings.xml
index f0c6976..5719479 100644
--- a/v7/mediarouter/res/values-fr-rCA/strings.xml
+++ b/v7/mediarouter/res/values-fr-rCA/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Image de l\'album"</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>
diff --git a/v7/mediarouter/res/values-fr/strings.xml b/v7/mediarouter/res/values-fr/strings.xml
index 6e14ccc..6ce8329 100644
--- a/v7/mediarouter/res/values-fr/strings.xml
+++ b/v7/mediarouter/res/values-fr/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Image de l\'album"</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>
diff --git a/v7/mediarouter/res/values-gl-rES/strings.xml b/v7/mediarouter/res/values-gl-rES/strings.xml
index fb76c68..c922b68 100644
--- a/v7/mediarouter/res/values-gl-rES/strings.xml
+++ b/v7/mediarouter/res/values-gl-rES/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Portada do álbum"</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>
diff --git a/v7/mediarouter/res/values-gu-rIN/strings.xml b/v7/mediarouter/res/values-gu-rIN/strings.xml
index 211f836..e3be8fc 100644
--- a/v7/mediarouter/res/values-gu-rIN/strings.xml
+++ b/v7/mediarouter/res/values-gu-rIN/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"આલ્બમ કલા"</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>
diff --git a/v7/mediarouter/res/values-hi/strings.xml b/v7/mediarouter/res/values-hi/strings.xml
index e2c7a43..9d0650b 100644
--- a/v7/mediarouter/res/values-hi/strings.xml
+++ b/v7/mediarouter/res/values-hi/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"एल्बम आर्ट"</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>
diff --git a/v7/mediarouter/res/values-hr/strings.xml b/v7/mediarouter/res/values-hr/strings.xml
index d79258f..371088b 100644
--- a/v7/mediarouter/res/values-hr/strings.xml
+++ b/v7/mediarouter/res/values-hr/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Naslovnica albuma"</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>
diff --git a/v7/mediarouter/res/values-hu/strings.xml b/v7/mediarouter/res/values-hu/strings.xml
index 7686fea..a3d6990 100644
--- a/v7/mediarouter/res/values-hu/strings.xml
+++ b/v7/mediarouter/res/values-hu/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Lemezborító"</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>
diff --git a/v7/mediarouter/res/values-hy-rAM/strings.xml b/v7/mediarouter/res/values-hy-rAM/strings.xml
index b05c17c..a8c1cf3 100644
--- a/v7/mediarouter/res/values-hy-rAM/strings.xml
+++ b/v7/mediarouter/res/values-hy-rAM/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Ալբոմի շապիկ"</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>
diff --git a/v7/mediarouter/res/values-in/strings.xml b/v7/mediarouter/res/values-in/strings.xml
index 4d84852..4bc0852 100644
--- a/v7/mediarouter/res/values-in/strings.xml
+++ b/v7/mediarouter/res/values-in/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Sampul album"</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>
diff --git a/v7/mediarouter/res/values-is-rIS/strings.xml b/v7/mediarouter/res/values-is-rIS/strings.xml
index 366f6f6..08e41e6 100644
--- a/v7/mediarouter/res/values-is-rIS/strings.xml
+++ b/v7/mediarouter/res/values-is-rIS/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Plötuumslag"</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>
diff --git a/v7/mediarouter/res/values-it/strings.xml b/v7/mediarouter/res/values-it/strings.xml
index 9febd99..87b570c 100644
--- a/v7/mediarouter/res/values-it/strings.xml
+++ b/v7/mediarouter/res/values-it/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Copertina"</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>
diff --git a/v7/mediarouter/res/values-iw/strings.xml b/v7/mediarouter/res/values-iw/strings.xml
index d1698a5..8b52adf 100644
--- a/v7/mediarouter/res/values-iw/strings.xml
+++ b/v7/mediarouter/res/values-iw/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"עטיפת אלבום"</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>
diff --git a/v7/mediarouter/res/values-ja/strings.xml b/v7/mediarouter/res/values-ja/strings.xml
index ffe9054..b126965 100644
--- a/v7/mediarouter/res/values-ja/strings.xml
+++ b/v7/mediarouter/res/values-ja/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"アルバムアート"</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>
diff --git a/v7/mediarouter/res/values-ka-rGE/strings.xml b/v7/mediarouter/res/values-ka-rGE/strings.xml
index 2182b64..046e361 100644
--- a/v7/mediarouter/res/values-ka-rGE/strings.xml
+++ b/v7/mediarouter/res/values-ka-rGE/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"ალბომის გარეკანი"</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>
diff --git a/v7/mediarouter/res/values-kk-rKZ/strings.xml b/v7/mediarouter/res/values-kk-rKZ/strings.xml
index 5c72c5f..5cf4e5a 100644
--- a/v7/mediarouter/res/values-kk-rKZ/strings.xml
+++ b/v7/mediarouter/res/values-kk-rKZ/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Альбом шебері"</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>
diff --git a/v7/mediarouter/res/values-km-rKH/strings.xml b/v7/mediarouter/res/values-km-rKH/strings.xml
index cdf94db..fd05668 100644
--- a/v7/mediarouter/res/values-km-rKH/strings.xml
+++ b/v7/mediarouter/res/values-km-rKH/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"ស្នាដៃសិល្បៈអាល់ប៊ុម"</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>
diff --git a/v7/mediarouter/res/values-kn-rIN/strings.xml b/v7/mediarouter/res/values-kn-rIN/strings.xml
index 970dc41..9cae5be 100644
--- a/v7/mediarouter/res/values-kn-rIN/strings.xml
+++ b/v7/mediarouter/res/values-kn-rIN/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"ಆಲ್ಬಮ್ ಕಲೆ"</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>
diff --git a/v7/mediarouter/res/values-ko/strings.xml b/v7/mediarouter/res/values-ko/strings.xml
index fc1dbac..7f53382 100644
--- a/v7/mediarouter/res/values-ko/strings.xml
+++ b/v7/mediarouter/res/values-ko/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"앨범아트"</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>
diff --git a/v7/mediarouter/res/values-ky-rKG/strings.xml b/v7/mediarouter/res/values-ky-rKG/strings.xml
index d7409db..04a307c 100644
--- a/v7/mediarouter/res/values-ky-rKG/strings.xml
+++ b/v7/mediarouter/res/values-ky-rKG/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Альбом мукабасы"</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>
diff --git a/v7/mediarouter/res/values-lo-rLA/strings.xml b/v7/mediarouter/res/values-lo-rLA/strings.xml
index a19dd69..2765364 100644
--- a/v7/mediarouter/res/values-lo-rLA/strings.xml
+++ b/v7/mediarouter/res/values-lo-rLA/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"ໜ້າປົກອະລະບໍ້າ"</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>
diff --git a/v7/mediarouter/res/values-lt/strings.xml b/v7/mediarouter/res/values-lt/strings.xml
index d286e0c..208752f 100644
--- a/v7/mediarouter/res/values-lt/strings.xml
+++ b/v7/mediarouter/res/values-lt/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Albumo viršelis"</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>
diff --git a/v7/mediarouter/res/values-lv/strings.xml b/v7/mediarouter/res/values-lv/strings.xml
index 8f49d85..832a3ba 100644
--- a/v7/mediarouter/res/values-lv/strings.xml
+++ b/v7/mediarouter/res/values-lv/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Albuma vāciņš"</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>
diff --git a/v7/mediarouter/res/values-mk-rMK/strings.xml b/v7/mediarouter/res/values-mk-rMK/strings.xml
index e8ff3e7..726e285 100644
--- a/v7/mediarouter/res/values-mk-rMK/strings.xml
+++ b/v7/mediarouter/res/values-mk-rMK/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Корица на албум"</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>
diff --git a/v7/mediarouter/res/values-ml-rIN/strings.xml b/v7/mediarouter/res/values-ml-rIN/strings.xml
index 7dbdf5d..b1d2cbe 100644
--- a/v7/mediarouter/res/values-ml-rIN/strings.xml
+++ b/v7/mediarouter/res/values-ml-rIN/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"ആൽബം ആർട്ട്"</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>
diff --git a/v7/mediarouter/res/values-mn-rMN/strings.xml b/v7/mediarouter/res/values-mn-rMN/strings.xml
index db6d599..d07d314 100644
--- a/v7/mediarouter/res/values-mn-rMN/strings.xml
+++ b/v7/mediarouter/res/values-mn-rMN/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Цомгийн зураг"</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>
diff --git a/v7/mediarouter/res/values-mr-rIN/strings.xml b/v7/mediarouter/res/values-mr-rIN/strings.xml
index b3f9264..4e24aff 100644
--- a/v7/mediarouter/res/values-mr-rIN/strings.xml
+++ b/v7/mediarouter/res/values-mr-rIN/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"अल्बम कला"</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>
diff --git a/v7/mediarouter/res/values-ms-rMY/strings.xml b/v7/mediarouter/res/values-ms-rMY/strings.xml
index 4d7a0c8..2a4cd1c 100644
--- a/v7/mediarouter/res/values-ms-rMY/strings.xml
+++ b/v7/mediarouter/res/values-ms-rMY/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Seni album"</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>
diff --git a/v7/mediarouter/res/values-my-rMM/strings.xml b/v7/mediarouter/res/values-my-rMM/strings.xml
index 9447089..eca8835 100644
--- a/v7/mediarouter/res/values-my-rMM/strings.xml
+++ b/v7/mediarouter/res/values-my-rMM/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"အယ်လ်ဘမ်ပုံ"</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>
diff --git a/v7/mediarouter/res/values-nb/strings.xml b/v7/mediarouter/res/values-nb/strings.xml
index aea341f..27f9f03 100644
--- a/v7/mediarouter/res/values-nb/strings.xml
+++ b/v7/mediarouter/res/values-nb/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Albumgrafikk"</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>
diff --git a/v7/mediarouter/res/values-ne-rNP/strings.xml b/v7/mediarouter/res/values-ne-rNP/strings.xml
index d261553..6abadbf 100644
--- a/v7/mediarouter/res/values-ne-rNP/strings.xml
+++ b/v7/mediarouter/res/values-ne-rNP/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"एल्बम आर्ट"</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>
diff --git a/v7/mediarouter/res/values-nl/strings.xml b/v7/mediarouter/res/values-nl/strings.xml
index 7843b52..4a9346d 100644
--- a/v7/mediarouter/res/values-nl/strings.xml
+++ b/v7/mediarouter/res/values-nl/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Albumhoes"</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>
diff --git a/v7/mediarouter/res/values-pa-rIN/strings.xml b/v7/mediarouter/res/values-pa-rIN/strings.xml
index 55dfd88..842a8b4 100644
--- a/v7/mediarouter/res/values-pa-rIN/strings.xml
+++ b/v7/mediarouter/res/values-pa-rIN/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"ਐਲਬਮ ਆਰਟ"</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>
diff --git a/v7/mediarouter/res/values-pl/strings.xml b/v7/mediarouter/res/values-pl/strings.xml
index c6e7f8a..d66be1a 100644
--- a/v7/mediarouter/res/values-pl/strings.xml
+++ b/v7/mediarouter/res/values-pl/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Okładka albumu"</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>
diff --git a/v7/mediarouter/res/values-pt-rBR/strings.xml b/v7/mediarouter/res/values-pt-rBR/strings.xml
index 17e64f0..4d7e6cc 100644
--- a/v7/mediarouter/res/values-pt-rBR/strings.xml
+++ b/v7/mediarouter/res/values-pt-rBR/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Arte do álbum"</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>
diff --git a/v7/mediarouter/res/values-pt-rPT/strings.xml b/v7/mediarouter/res/values-pt-rPT/strings.xml
index 3c9d4cb..0c68b92 100644
--- a/v7/mediarouter/res/values-pt-rPT/strings.xml
+++ b/v7/mediarouter/res/values-pt-rPT/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Imagem do álbum"</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>
diff --git a/v7/mediarouter/res/values-pt/strings.xml b/v7/mediarouter/res/values-pt/strings.xml
index 17e64f0..4d7e6cc 100644
--- a/v7/mediarouter/res/values-pt/strings.xml
+++ b/v7/mediarouter/res/values-pt/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Arte do álbum"</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>
diff --git a/v7/mediarouter/res/values-ro/strings.xml b/v7/mediarouter/res/values-ro/strings.xml
index 20c3b71..9fe26a9 100644
--- a/v7/mediarouter/res/values-ro/strings.xml
+++ b/v7/mediarouter/res/values-ro/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Grafica albumului"</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>
diff --git a/v7/mediarouter/res/values-ru/strings.xml b/v7/mediarouter/res/values-ru/strings.xml
index 5a47ec6..4607a8c 100644
--- a/v7/mediarouter/res/values-ru/strings.xml
+++ b/v7/mediarouter/res/values-ru/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Обложка"</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>
diff --git a/v7/mediarouter/res/values-si-rLK/strings.xml b/v7/mediarouter/res/values-si-rLK/strings.xml
index 45f67ff..144a0d5 100644
--- a/v7/mediarouter/res/values-si-rLK/strings.xml
+++ b/v7/mediarouter/res/values-si-rLK/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"ඇල්බම කලාව"</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>
diff --git a/v7/mediarouter/res/values-sk/strings.xml b/v7/mediarouter/res/values-sk/strings.xml
index df95e00..b546bde 100644
--- a/v7/mediarouter/res/values-sk/strings.xml
+++ b/v7/mediarouter/res/values-sk/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Obrázok albumu"</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>
diff --git a/v7/mediarouter/res/values-sl/strings.xml b/v7/mediarouter/res/values-sl/strings.xml
index 6425222..110c548 100644
--- a/v7/mediarouter/res/values-sl/strings.xml
+++ b/v7/mediarouter/res/values-sl/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Naslovnica albuma"</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>
diff --git a/v7/mediarouter/res/values-sq-rAL/strings.xml b/v7/mediarouter/res/values-sq-rAL/strings.xml
index 6f375cf..8ed93c3 100644
--- a/v7/mediarouter/res/values-sq-rAL/strings.xml
+++ b/v7/mediarouter/res/values-sq-rAL/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Kopertina e albumit"</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>
diff --git a/v7/mediarouter/res/values-sr/strings.xml b/v7/mediarouter/res/values-sr/strings.xml
index 26a36a9..5a72bd4 100644
--- a/v7/mediarouter/res/values-sr/strings.xml
+++ b/v7/mediarouter/res/values-sr/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Омот албума"</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>
diff --git a/v7/mediarouter/res/values-sv/strings.xml b/v7/mediarouter/res/values-sv/strings.xml
index 3e8c47b..3724902 100644
--- a/v7/mediarouter/res/values-sv/strings.xml
+++ b/v7/mediarouter/res/values-sv/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Skivomslag"</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>
diff --git a/v7/mediarouter/res/values-sw/strings.xml b/v7/mediarouter/res/values-sw/strings.xml
index 38fdb45..f12fd5c 100644
--- a/v7/mediarouter/res/values-sw/strings.xml
+++ b/v7/mediarouter/res/values-sw/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Sanaa ya albamu"</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>
diff --git a/v7/mediarouter/res/values-ta-rIN/strings.xml b/v7/mediarouter/res/values-ta-rIN/strings.xml
index 6147b75..c394746 100644
--- a/v7/mediarouter/res/values-ta-rIN/strings.xml
+++ b/v7/mediarouter/res/values-ta-rIN/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"ஆல்பம் ஆர்ட்"</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>
diff --git a/v7/mediarouter/res/values-te-rIN/strings.xml b/v7/mediarouter/res/values-te-rIN/strings.xml
index 73c75f4..59a4f19 100644
--- a/v7/mediarouter/res/values-te-rIN/strings.xml
+++ b/v7/mediarouter/res/values-te-rIN/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"ఆల్బమ్ ఆర్ట్"</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>
diff --git a/v7/mediarouter/res/values-th/strings.xml b/v7/mediarouter/res/values-th/strings.xml
index fdf0957..1bfd091 100644
--- a/v7/mediarouter/res/values-th/strings.xml
+++ b/v7/mediarouter/res/values-th/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"ปกอัลบั้ม"</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>
diff --git a/v7/mediarouter/res/values-tl/strings.xml b/v7/mediarouter/res/values-tl/strings.xml
index 7c04b33..82396e1 100644
--- a/v7/mediarouter/res/values-tl/strings.xml
+++ b/v7/mediarouter/res/values-tl/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Album art"</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>
diff --git a/v7/mediarouter/res/values-tr/strings.xml b/v7/mediarouter/res/values-tr/strings.xml
index f8316f4..e639963 100644
--- a/v7/mediarouter/res/values-tr/strings.xml
+++ b/v7/mediarouter/res/values-tr/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Albüm kapağı"</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>
diff --git a/v7/mediarouter/res/values-uk/strings.xml b/v7/mediarouter/res/values-uk/strings.xml
index fd4e0d0..a768e2c 100644
--- a/v7/mediarouter/res/values-uk/strings.xml
+++ b/v7/mediarouter/res/values-uk/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Обкладинка альбому"</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>
diff --git a/v7/mediarouter/res/values-ur-rPK/strings.xml b/v7/mediarouter/res/values-ur-rPK/strings.xml
index afd5534..5cb3b36 100644
--- a/v7/mediarouter/res/values-ur-rPK/strings.xml
+++ b/v7/mediarouter/res/values-ur-rPK/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"البم آرٹ"</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>
diff --git a/v7/mediarouter/res/values-uz-rUZ/strings.xml b/v7/mediarouter/res/values-uz-rUZ/strings.xml
index c13b06b..9955cdfd 100644
--- a/v7/mediarouter/res/values-uz-rUZ/strings.xml
+++ b/v7/mediarouter/res/values-uz-rUZ/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Albom muqovasi"</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>
diff --git a/v7/mediarouter/res/values-vi/strings.xml b/v7/mediarouter/res/values-vi/strings.xml
index 3301cee..0080e3e 100644
--- a/v7/mediarouter/res/values-vi/strings.xml
+++ b/v7/mediarouter/res/values-vi/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Ảnh bìa album"</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>
diff --git a/v7/mediarouter/res/values-zh-rCN/strings.xml b/v7/mediarouter/res/values-zh-rCN/strings.xml
index cdd66f5..aabe727 100644
--- a/v7/mediarouter/res/values-zh-rCN/strings.xml
+++ b/v7/mediarouter/res/values-zh-rCN/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"专辑封面"</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>
diff --git a/v7/mediarouter/res/values-zh-rHK/strings.xml b/v7/mediarouter/res/values-zh-rHK/strings.xml
index 873e5ce..d01c823 100644
--- a/v7/mediarouter/res/values-zh-rHK/strings.xml
+++ b/v7/mediarouter/res/values-zh-rHK/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"專輯封面"</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>
diff --git a/v7/mediarouter/res/values-zh-rTW/strings.xml b/v7/mediarouter/res/values-zh-rTW/strings.xml
index 27755e7..68347e5 100644
--- a/v7/mediarouter/res/values-zh-rTW/strings.xml
+++ b/v7/mediarouter/res/values-zh-rTW/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"專輯封面"</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>
diff --git a/v7/mediarouter/res/values-zu/strings.xml b/v7/mediarouter/res/values-zu/strings.xml
index f513fd4..e50acc8 100644
--- a/v7/mediarouter/res/values-zu/strings.xml
+++ b/v7/mediarouter/res/values-zu/strings.xml
@@ -28,6 +28,7 @@
     <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_album_art" msgid="6422801843540543585">"Ubuciko be-albhamu"</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>
diff --git a/v7/palette/Android.mk b/v7/palette/Android.mk
index 814ef24..bf57ce3 100644
--- a/v7/palette/Android.mk
+++ b/v7/palette/Android.mk
@@ -25,7 +25,7 @@
 include $(CLEAR_VARS)
 LOCAL_USE_AAPT2 := true
 LOCAL_MODULE := android-support-v7-palette
-LOCAL_SDK_VERSION := 7
+LOCAL_SDK_VERSION := 9
 LOCAL_SRC_FILES := $(call all-java-files-under, src/main)
 LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
 LOCAL_MANIFEST_FILE := src/main/AndroidManifest.xml
diff --git a/v7/palette/build.gradle b/v7/palette/build.gradle
index 65e298d..09fd7fd 100644
--- a/v7/palette/build.gradle
+++ b/v7/palette/build.gradle
@@ -12,10 +12,10 @@
 }
 
 android {
-    compileSdkVersion 7
+    compileSdkVersion 9
 
     defaultConfig {
-        minSdkVersion 7
+        minSdkVersion 9
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
     }
 
diff --git a/v7/palette/src/androidTest/AndroidManifest.xml b/v7/palette/src/androidTest/AndroidManifest.xml
index f9b8b1e..c4fd08f 100644
--- a/v7/palette/src/androidTest/AndroidManifest.xml
+++ b/v7/palette/src/androidTest/AndroidManifest.xml
@@ -18,7 +18,7 @@
           xmlns:tools="http://schemas.android.com/tools"
           package="android.support.v7.palette.test">
 
-    <uses-sdk android:minSdkVersion="7"
+    <uses-sdk android:minSdkVersion="9"
               tools:overrideLibrary="android.support.test, android.app, android.support.test.rule"/>
 
     <application>
diff --git a/v7/palette/src/main/AndroidManifest.xml b/v7/palette/src/main/AndroidManifest.xml
index 20e14c2..c44818a 100644
--- a/v7/palette/src/main/AndroidManifest.xml
+++ b/v7/palette/src/main/AndroidManifest.xml
@@ -15,7 +15,7 @@
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           package="android.support.v7.palette">
-    <uses-sdk android:minSdkVersion="7"/>
+    <uses-sdk android:minSdkVersion="9"/>
     <application>
     </application>
 </manifest>
diff --git a/v7/preference/Android.mk b/v7/preference/Android.mk
index 43fc74c..42527e1 100644
--- a/v7/preference/Android.mk
+++ b/v7/preference/Android.mk
@@ -43,7 +43,7 @@
 include $(CLEAR_VARS)
 LOCAL_USE_AAPT2 := true
 LOCAL_MODULE := android-support-v7-preference
-LOCAL_SDK_VERSION := 7
+LOCAL_SDK_VERSION := 9
 LOCAL_SDK_RES_VERSION := $(SUPPORT_CURRENT_SDK_VERSION)
 LOCAL_SRC_FILES := $(call all-java-files-under,src)
 LOCAL_STATIC_ANDROID_LIBRARIES := \
diff --git a/v7/preference/AndroidManifest.xml b/v7/preference/AndroidManifest.xml
index e5aa094..da9c80e 100644
--- a/v7/preference/AndroidManifest.xml
+++ b/v7/preference/AndroidManifest.xml
@@ -3,6 +3,6 @@
     package="android.support.v7.preference"
     android:versionCode="1"
     android:versionName="1.0">
-    <uses-sdk android:minSdkVersion="7" />
+    <uses-sdk android:minSdkVersion="9" />
     <application />
 </manifest>
diff --git a/v7/recyclerview/Android.mk b/v7/recyclerview/Android.mk
index 021296e..328c761 100644
--- a/v7/recyclerview/Android.mk
+++ b/v7/recyclerview/Android.mk
@@ -26,7 +26,7 @@
 include $(CLEAR_VARS)
 LOCAL_USE_AAPT2 := true
 LOCAL_MODULE := android-support-v7-recyclerview
-LOCAL_SDK_VERSION := 7
+LOCAL_SDK_VERSION := 9
 LOCAL_SDK_RES_VERSION := $(SUPPORT_CURRENT_SDK_VERSION)
 LOCAL_SRC_FILES := $(call all-java-files-under,src)
 LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
diff --git a/v7/recyclerview/AndroidManifest.xml b/v7/recyclerview/AndroidManifest.xml
index 421395f..d1c1489 100644
--- a/v7/recyclerview/AndroidManifest.xml
+++ b/v7/recyclerview/AndroidManifest.xml
@@ -15,5 +15,5 @@
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           package="android.support.v7.recyclerview">
-    <uses-sdk android:minSdkVersion="7"/>
+    <uses-sdk android:minSdkVersion="9"/>
 </manifest>
diff --git a/v7/recyclerview/build.gradle b/v7/recyclerview/build.gradle
index 386694d..ac29032 100644
--- a/v7/recyclerview/build.gradle
+++ b/v7/recyclerview/build.gradle
@@ -21,7 +21,7 @@
     compileSdkVersion 23
 
     defaultConfig {
-        minSdkVersion 7
+        minSdkVersion 9
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
     }
 
diff --git a/v7/recyclerview/tests/AndroidManifest.xml b/v7/recyclerview/tests/AndroidManifest.xml
index 0661526..1c8684d 100644
--- a/v7/recyclerview/tests/AndroidManifest.xml
+++ b/v7/recyclerview/tests/AndroidManifest.xml
@@ -17,7 +17,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:tools="http://schemas.android.com/tools"
           package="android.support.v7.recyclerview.test">
-    <uses-sdk android:minSdkVersion="7"
+    <uses-sdk android:minSdkVersion="9"
               android:targetSdkVersion="23"
               tools:overrideLibrary="android.support.test,
                       android.app, android.support.test.rule, android.support.test.espresso,