diff options
author | Michael Jurka <mikejurka@google.com> | 2013-10-03 01:05:14 -0700 |
---|---|---|
committer | Michael Jurka <mikejurka@google.com> | 2013-10-03 16:19:06 -0700 |
commit | fe0ace3583bc57adbaaec730b1b1757032e90c41 (patch) | |
tree | a0376c1f2db0e3e50e928f8a73eea1d19b71c374 /src/com/android/launcher3/WallpaperCropActivity.java | |
parent | f0481bf3c9571dd7f6ec734f400706ea6439766c (diff) | |
download | android_packages_apps_Trebuchet-fe0ace3583bc57adbaaec730b1b1757032e90c41.tar.gz android_packages_apps_Trebuchet-fe0ace3583bc57adbaaec730b1b1757032e90c41.tar.bz2 android_packages_apps_Trebuchet-fe0ace3583bc57adbaaec730b1b1757032e90c41.zip |
Fix RTL bugs with wallpaper parallax
Bug: 10901046
Change-Id: Id4277173b0c13d25eb0507bd6fa9fa1309946510
Diffstat (limited to 'src/com/android/launcher3/WallpaperCropActivity.java')
-rw-r--r-- | src/com/android/launcher3/WallpaperCropActivity.java | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/src/com/android/launcher3/WallpaperCropActivity.java b/src/com/android/launcher3/WallpaperCropActivity.java index 343d0ffbf..703db9a94 100644 --- a/src/com/android/launcher3/WallpaperCropActivity.java +++ b/src/com/android/launcher3/WallpaperCropActivity.java @@ -221,9 +221,11 @@ public class WallpaperCropActivity extends Activity { protected void cropImageAndSetWallpaper(Uri uri, OnBitmapCroppedHandler onBitmapCroppedHandler, final boolean finishActivityWhenDone) { - // Get the crop + // Get the crop Point inSize = mCropView.getSourceDimensions(); + boolean ltr = mCropView.getLayoutDirection() == View.LAYOUT_DIRECTION_LTR; + Point minDims = new Point(); Point maxDims = new Point(); Display d = getWindowManager().getDefaultDisplay(); @@ -234,12 +236,12 @@ public class WallpaperCropActivity extends Activity { int maxDim = Math.max(maxDims.x, maxDims.y); final int minDim = Math.min(minDims.x, minDims.y); - int defaultWidth; + int defaultWallpaperWidth; if (isScreenLarge(getResources())) { - defaultWidth = (int) (maxDim * + defaultWallpaperWidth = (int) (maxDim * wallpaperTravelToScreenWidthRatio(maxDim, minDim)); } else { - defaultWidth = Math.max((int) + defaultWallpaperWidth = Math.max((int) (minDim * WALLPAPER_SCREENS_SPAN), maxDim); } @@ -264,12 +266,17 @@ public class WallpaperCropActivity extends Activity { // ADJUST CROP WIDTH // Extend the crop all the way to the right, for parallax - float extraSpaceToRight = inSize.x - cropRect.right; + // (or all the way to the left, in RTL) + float extraSpace = ltr ? inSize.x - cropRect.right : cropRect.left; // Cap the amount of extra width - float maxExtraSpace = defaultWidth / cropScale - cropRect.width(); - extraSpaceToRight = Math.min(extraSpaceToRight, maxExtraSpace); + float maxExtraSpace = defaultWallpaperWidth / cropScale - cropRect.width(); + extraSpace = Math.min(extraSpace, maxExtraSpace); - cropRect.right += extraSpaceToRight; + if (ltr) { + cropRect.right += extraSpace; + } else { + cropRect.left -= extraSpace; + } // ADJUST CROP HEIGHT if (isPortrait) { |