am 16326f70: Merge "Fix animations, padding in RTL mode." into klp-dev
* commit '16326f7085ebb05e4229d96c6e539eb9ecb2d3de':
Fix animations, padding in RTL mode.
diff --git a/graphics/java/android/graphics/drawable/InsetDrawable.java b/graphics/java/android/graphics/drawable/InsetDrawable.java
index e3a7e2b..8188782 100644
--- a/graphics/java/android/graphics/drawable/InsetDrawable.java
+++ b/graphics/java/android/graphics/drawable/InsetDrawable.java
@@ -202,7 +202,13 @@
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 720494b..ab34c0f 100644
--- a/graphics/java/android/graphics/drawable/NinePatchDrawable.java
+++ b/graphics/java/android/graphics/drawable/NinePatchDrawable.java
@@ -219,16 +219,15 @@
@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 @@
@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 @@
*/
@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 @@
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 0000000..6c7e224
--- /dev/null
+++ b/packages/DocumentsUI/res/animator-ldrtl/dir_down.xml
@@ -0,0 +1,22 @@
+<!-- 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.
+-->
+
+<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
+ android:valueFrom="-1"
+ android:valueTo="0"
+ android:propertyName="position"
+ android:valueType="floatType"
+ android:duration="@android:integer/config_mediumAnimTime"
+ android:interpolator="@android:interpolator/decelerate_quad" />
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 0000000..8e2925c
--- /dev/null
+++ b/packages/DocumentsUI/res/animator-ldrtl/dir_up.xml
@@ -0,0 +1,22 @@
+<!-- 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.
+-->
+
+<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
+ android:valueFrom="0"
+ android:valueTo="-1"
+ android:propertyName="position"
+ android:valueType="floatType"
+ android:duration="@android:integer/config_mediumAnimTime"
+ android:interpolator="@android:interpolator/accelerate_quad" />
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
Binary files differ
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
Binary files differ
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
Binary files differ
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
Binary files differ
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
Binary files differ
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
Binary files differ
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
Binary files differ
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
Binary files differ
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 0000000..1153e69
--- /dev/null
+++ b/packages/DocumentsUI/res/drawable/ic_dir_shadow.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright 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.
+ */
+-->
+
+<nine-patch xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@drawable/ic_dir_shadow_am"
+ android:autoMirrored="true">
+</nine-patch>
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 0000000..382ebff
--- /dev/null
+++ b/packages/DocumentsUI/res/drawable/ic_drawer_shadow_tablet.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright 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.
+ */
+-->
+
+<nine-patch xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@drawable/ic_drawer_shadow_tablet_am"
+ android:autoMirrored="true">
+</nine-patch>
diff --git a/packages/DocumentsUI/src/com/android/documentsui/DirectoryView.java b/packages/DocumentsUI/src/com/android/documentsui/DirectoryView.java
index 28e2bd9..b552e5a 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/DirectoryView.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/DirectoryView.java
@@ -40,7 +40,7 @@
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);
}