diff --git a/graphics/java/android/graphics/drawable/InsetDrawable.java b/graphics/java/android/graphics/drawable/InsetDrawable.java
index e3a7e2bfa84ea..818878254acb8 100644
--- a/graphics/java/android/graphics/drawable/InsetDrawable.java
+++ b/graphics/java/android/graphics/drawable/InsetDrawable.java
@@ -202,7 +202,13 @@ public class InsetDrawable extends Drawable implements Drawable.Callback
public void setColorFilter(ColorFilter cf) {
mInsetState.mDrawable.setColorFilter(cf);
}
-
+
+ /** {@hide} */
+ @Override
+ public void setLayoutDirection(int layoutDirection) {
+ mInsetState.mDrawable.setLayoutDirection(layoutDirection);
+ }
+
@Override
public int getOpacity() {
return mInsetState.mDrawable.getOpacity();
diff --git a/graphics/java/android/graphics/drawable/NinePatchDrawable.java b/graphics/java/android/graphics/drawable/NinePatchDrawable.java
index 720494be4b7b0..ab34c0fd5649a 100644
--- a/graphics/java/android/graphics/drawable/NinePatchDrawable.java
+++ b/graphics/java/android/graphics/drawable/NinePatchDrawable.java
@@ -219,16 +219,15 @@ public class NinePatchDrawable extends Drawable {
@Override
public void draw(Canvas canvas) {
final Rect bounds = getBounds();
- final boolean needMirroring = isAutoMirrored() &&
- getLayoutDirection() == LayoutDirection.RTL;
- if (needMirroring) {
+ final boolean needsMirroring = needsMirroring();
+ if (needsMirroring) {
canvas.save();
// Mirror the 9patch
canvas.translate(bounds.right - bounds.left, 0);
canvas.scale(-1.0f, 1.0f);
}
mNinePatch.draw(canvas, bounds, mPaint);
- if (needMirroring) {
+ if (needsMirroring) {
canvas.restore();
}
}
@@ -240,7 +239,11 @@ public class NinePatchDrawable extends Drawable {
@Override
public boolean getPadding(Rect padding) {
- padding.set(mPadding);
+ if (needsMirroring()) {
+ padding.set(mPadding.right, mPadding.top, mPadding.left, mPadding.bottom);
+ } else {
+ padding.set(mPadding);
+ }
return true;
}
@@ -249,7 +252,12 @@ public class NinePatchDrawable extends Drawable {
*/
@Override
public Insets getOpticalInsets() {
- return mOpticalInsets;
+ if (needsMirroring()) {
+ return Insets.of(mOpticalInsets.right, mOpticalInsets.top, mOpticalInsets.right,
+ mOpticalInsets.bottom);
+ } else {
+ return mOpticalInsets;
+ }
}
@Override
@@ -297,6 +305,10 @@ public class NinePatchDrawable extends Drawable {
mNinePatchState.mAutoMirrored = mirrored;
}
+ private boolean needsMirroring() {
+ return isAutoMirrored() && getLayoutDirection() == LayoutDirection.RTL;
+ }
+
@Override
public boolean isAutoMirrored() {
return mNinePatchState.mAutoMirrored;
diff --git a/packages/DocumentsUI/res/animator-ldrtl/dir_down.xml b/packages/DocumentsUI/res/animator-ldrtl/dir_down.xml
new file mode 100644
index 0000000000000..6c7e2244c7129
--- /dev/null
+++ b/packages/DocumentsUI/res/animator-ldrtl/dir_down.xml
@@ -0,0 +1,22 @@
+
+
+
diff --git a/packages/DocumentsUI/res/animator-ldrtl/dir_up.xml b/packages/DocumentsUI/res/animator-ldrtl/dir_up.xml
new file mode 100644
index 0000000000000..8e2925c9760dd
--- /dev/null
+++ b/packages/DocumentsUI/res/animator-ldrtl/dir_up.xml
@@ -0,0 +1,22 @@
+
+
+
diff --git a/packages/DocumentsUI/res/drawable-hdpi/ic_dir_shadow.9.png b/packages/DocumentsUI/res/drawable-hdpi/ic_dir_shadow_am.9.png
similarity index 100%
rename from packages/DocumentsUI/res/drawable-hdpi/ic_dir_shadow.9.png
rename to packages/DocumentsUI/res/drawable-hdpi/ic_dir_shadow_am.9.png
diff --git a/packages/DocumentsUI/res/drawable-hdpi/ic_drawer_shadow_tablet.9.png b/packages/DocumentsUI/res/drawable-hdpi/ic_drawer_shadow_tablet_am.9.png
similarity index 100%
rename from packages/DocumentsUI/res/drawable-hdpi/ic_drawer_shadow_tablet.9.png
rename to packages/DocumentsUI/res/drawable-hdpi/ic_drawer_shadow_tablet_am.9.png
diff --git a/packages/DocumentsUI/res/drawable-mdpi/ic_dir_shadow.9.png b/packages/DocumentsUI/res/drawable-mdpi/ic_dir_shadow_am.9.png
similarity index 100%
rename from packages/DocumentsUI/res/drawable-mdpi/ic_dir_shadow.9.png
rename to packages/DocumentsUI/res/drawable-mdpi/ic_dir_shadow_am.9.png
diff --git a/packages/DocumentsUI/res/drawable-mdpi/ic_drawer_shadow_tablet.9.png b/packages/DocumentsUI/res/drawable-mdpi/ic_drawer_shadow_tablet_am.9.png
similarity index 100%
rename from packages/DocumentsUI/res/drawable-mdpi/ic_drawer_shadow_tablet.9.png
rename to packages/DocumentsUI/res/drawable-mdpi/ic_drawer_shadow_tablet_am.9.png
diff --git a/packages/DocumentsUI/res/drawable-xhdpi/ic_dir_shadow.9.png b/packages/DocumentsUI/res/drawable-xhdpi/ic_dir_shadow_am.9.png
similarity index 100%
rename from packages/DocumentsUI/res/drawable-xhdpi/ic_dir_shadow.9.png
rename to packages/DocumentsUI/res/drawable-xhdpi/ic_dir_shadow_am.9.png
diff --git a/packages/DocumentsUI/res/drawable-xhdpi/ic_drawer_shadow_tablet.9.png b/packages/DocumentsUI/res/drawable-xhdpi/ic_drawer_shadow_tablet_am.9.png
similarity index 100%
rename from packages/DocumentsUI/res/drawable-xhdpi/ic_drawer_shadow_tablet.9.png
rename to packages/DocumentsUI/res/drawable-xhdpi/ic_drawer_shadow_tablet_am.9.png
diff --git a/packages/DocumentsUI/res/drawable-xxhdpi/ic_dir_shadow.9.png b/packages/DocumentsUI/res/drawable-xxhdpi/ic_dir_shadow_am.9.png
similarity index 100%
rename from packages/DocumentsUI/res/drawable-xxhdpi/ic_dir_shadow.9.png
rename to packages/DocumentsUI/res/drawable-xxhdpi/ic_dir_shadow_am.9.png
diff --git a/packages/DocumentsUI/res/drawable-xxhdpi/ic_drawer_shadow_tablet.9.png b/packages/DocumentsUI/res/drawable-xxhdpi/ic_drawer_shadow_tablet_am.9.png
similarity index 100%
rename from packages/DocumentsUI/res/drawable-xxhdpi/ic_drawer_shadow_tablet.9.png
rename to packages/DocumentsUI/res/drawable-xxhdpi/ic_drawer_shadow_tablet_am.9.png
diff --git a/packages/DocumentsUI/res/drawable/ic_dir_shadow.xml b/packages/DocumentsUI/res/drawable/ic_dir_shadow.xml
new file mode 100644
index 0000000000000..1153e693f4d3b
--- /dev/null
+++ b/packages/DocumentsUI/res/drawable/ic_dir_shadow.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
diff --git a/packages/DocumentsUI/res/drawable/ic_drawer_shadow_tablet.xml b/packages/DocumentsUI/res/drawable/ic_drawer_shadow_tablet.xml
new file mode 100644
index 0000000000000..382ebff764aff
--- /dev/null
+++ b/packages/DocumentsUI/res/drawable/ic_drawer_shadow_tablet.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
diff --git a/packages/DocumentsUI/src/com/android/documentsui/DirectoryView.java b/packages/DocumentsUI/src/com/android/documentsui/DirectoryView.java
index 28e2bd90a1555..b552e5aa838ce 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/DirectoryView.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/DirectoryView.java
@@ -40,7 +40,7 @@ public class DirectoryView extends FrameLayout {
public void setBackground(Drawable background) {
final Rect rect = new Rect();
background.getPadding(rect);
- final InsetDrawable inset = new InsetDrawable(background, -rect.left, 0, 0, 0);
+ final InsetDrawable inset = new InsetDrawable(background, -rect.left, 0, -rect.right, 0);
super.setBackground(inset);
}