Merge "Fix animations, padding in RTL mode." into klp-dev
@@ -203,6 +203,12 @@ public class InsetDrawable extends Drawable implements Drawable.Callback
|
|||||||
mInsetState.mDrawable.setColorFilter(cf);
|
mInsetState.mDrawable.setColorFilter(cf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** {@hide} */
|
||||||
|
@Override
|
||||||
|
public void setLayoutDirection(int layoutDirection) {
|
||||||
|
mInsetState.mDrawable.setLayoutDirection(layoutDirection);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getOpacity() {
|
public int getOpacity() {
|
||||||
return mInsetState.mDrawable.getOpacity();
|
return mInsetState.mDrawable.getOpacity();
|
||||||
|
|||||||
@@ -219,16 +219,15 @@ public class NinePatchDrawable extends Drawable {
|
|||||||
@Override
|
@Override
|
||||||
public void draw(Canvas canvas) {
|
public void draw(Canvas canvas) {
|
||||||
final Rect bounds = getBounds();
|
final Rect bounds = getBounds();
|
||||||
final boolean needMirroring = isAutoMirrored() &&
|
final boolean needsMirroring = needsMirroring();
|
||||||
getLayoutDirection() == LayoutDirection.RTL;
|
if (needsMirroring) {
|
||||||
if (needMirroring) {
|
|
||||||
canvas.save();
|
canvas.save();
|
||||||
// Mirror the 9patch
|
// Mirror the 9patch
|
||||||
canvas.translate(bounds.right - bounds.left, 0);
|
canvas.translate(bounds.right - bounds.left, 0);
|
||||||
canvas.scale(-1.0f, 1.0f);
|
canvas.scale(-1.0f, 1.0f);
|
||||||
}
|
}
|
||||||
mNinePatch.draw(canvas, bounds, mPaint);
|
mNinePatch.draw(canvas, bounds, mPaint);
|
||||||
if (needMirroring) {
|
if (needsMirroring) {
|
||||||
canvas.restore();
|
canvas.restore();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -240,7 +239,11 @@ public class NinePatchDrawable extends Drawable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean getPadding(Rect padding) {
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -249,7 +252,12 @@ public class NinePatchDrawable extends Drawable {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Insets getOpticalInsets() {
|
public Insets getOpticalInsets() {
|
||||||
return mOpticalInsets;
|
if (needsMirroring()) {
|
||||||
|
return Insets.of(mOpticalInsets.right, mOpticalInsets.top, mOpticalInsets.right,
|
||||||
|
mOpticalInsets.bottom);
|
||||||
|
} else {
|
||||||
|
return mOpticalInsets;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -297,6 +305,10 @@ public class NinePatchDrawable extends Drawable {
|
|||||||
mNinePatchState.mAutoMirrored = mirrored;
|
mNinePatchState.mAutoMirrored = mirrored;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean needsMirroring() {
|
||||||
|
return isAutoMirrored() && getLayoutDirection() == LayoutDirection.RTL;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isAutoMirrored() {
|
public boolean isAutoMirrored() {
|
||||||
return mNinePatchState.mAutoMirrored;
|
return mNinePatchState.mAutoMirrored;
|
||||||
|
|||||||
22
packages/DocumentsUI/res/animator-ldrtl/dir_down.xml
Normal file
@@ -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" />
|
||||||
22
packages/DocumentsUI/res/animator-ldrtl/dir_up.xml
Normal file
@@ -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" />
|
||||||
|
Before Width: | Height: | Size: 184 B After Width: | Height: | Size: 184 B |
|
Before Width: | Height: | Size: 279 B After Width: | Height: | Size: 279 B |
|
Before Width: | Height: | Size: 163 B After Width: | Height: | Size: 163 B |
|
Before Width: | Height: | Size: 225 B After Width: | Height: | Size: 225 B |
|
Before Width: | Height: | Size: 193 B After Width: | Height: | Size: 193 B |
|
Before Width: | Height: | Size: 305 B After Width: | Height: | Size: 305 B |
|
Before Width: | Height: | Size: 233 B After Width: | Height: | Size: 233 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
23
packages/DocumentsUI/res/drawable/ic_dir_shadow.xml
Normal file
@@ -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>
|
||||||
@@ -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>
|
||||||
@@ -40,7 +40,7 @@ public class DirectoryView extends FrameLayout {
|
|||||||
public void setBackground(Drawable background) {
|
public void setBackground(Drawable background) {
|
||||||
final Rect rect = new Rect();
|
final Rect rect = new Rect();
|
||||||
background.getPadding(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);
|
super.setBackground(inset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||