From 1cb4edc0153dec88b8f6150a64637eaad2c7694e Mon Sep 17 00:00:00 2001 From: nicolasroard Date: Sun, 21 Oct 2012 14:53:03 -0700 Subject: Only translate the main panel if we have to. bug:7386882 Change-Id: Ib670eb4e513f0bbebd3ecca052fe27180dcf5fdc --- .../gallery3d/filtershow/FilterShowActivity.java | 17 +++++++++++++++-- .../gallery3d/filtershow/imageshow/ImageShow.java | 4 ++++ .../gallery3d/filtershow/imageshow/ImageSlave.java | 6 ++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java index 2cdc22e94..cac8aadd6 100644 --- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java +++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java @@ -353,6 +353,17 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, } } + private int translateMainPanel(View viewPanel) { + int accessoryPanelWidth = viewPanel.getWidth(); + int mainViewWidth = findViewById(R.id.mainView).getWidth(); + int mainPanelWidth = mImageShow.getDisplayedImageBounds().width(); + int leftOver = mainViewWidth - mainPanelWidth - accessoryPanelWidth; + if (leftOver < 0) { + return -accessoryPanelWidth; + } + return 0; + } + private int getScreenImageSize() { DisplayMetrics metrics = new DisplayMetrics(); Display display = getWindowManager().getDefaultDisplay(); @@ -666,9 +677,10 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, mShowingHistoryPanel = false; } + int translate = translateMainPanel(viewList); if (!mShowingImageStatePanel) { mShowingImageStatePanel = true; - view.animate().setDuration(200).x(-viewList.getWidth()) + view.animate().setDuration(200).x(translate) .withLayer().withEndAction(new Runnable() { @Override public void run() { @@ -699,9 +711,10 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, mShowingImageStatePanel = false; } + int translate = translateMainPanel(viewList); if (!mShowingHistoryPanel) { mShowingHistoryPanel = true; - view.animate().setDuration(200).x(-viewList.getWidth()) + view.animate().setDuration(200).x(translate) .withLayer().withEndAction(new Runnable() { @Override public void run() { diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java index 61f998d47..40da5725b 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java +++ b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java @@ -312,6 +312,10 @@ public class ImageShow extends View implements OnGestureListener, return dst; } + public Rect getDisplayedImageBounds() { + return mImageBounds; + } + public ImagePreset getImagePreset() { return mImagePreset; } diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageSlave.java b/src/com/android/gallery3d/filtershow/imageshow/ImageSlave.java index c1fb0e471..ba4da91c9 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/ImageSlave.java +++ b/src/com/android/gallery3d/filtershow/imageshow/ImageSlave.java @@ -18,6 +18,7 @@ package com.android.gallery3d.filtershow.imageshow; import android.content.Context; import android.graphics.Canvas; +import android.graphics.Rect; import android.util.AttributeSet; import com.android.gallery3d.filtershow.HistoryAdapter; @@ -54,6 +55,11 @@ public class ImageSlave extends ImageShow { return mMasterImageShow.getImagePreset(); } + @Override + public Rect getDisplayedImageBounds() { + return mMasterImageShow.getDisplayedImageBounds(); + } + @Override public void setImagePreset(ImagePreset preset, boolean addToHistory) { mMasterImageShow.setImagePreset(preset, addToHistory); -- cgit v1.2.3