diff options
author | nicolasroard <nicolasroard@google.com> | 2012-12-07 16:15:10 -0800 |
---|---|---|
committer | nicolasroard <nicolasroard@google.com> | 2012-12-07 16:17:51 -0800 |
commit | f10a8fa2a4bd5d26d649842d9063ffe9092bff82 (patch) | |
tree | bb36bc14905f714f5e282caa8e1b70556295b147 /src | |
parent | f7273315313afded5c91e37b9d8f0b5c30c93c71 (diff) | |
download | android_packages_apps_Snap-f10a8fa2a4bd5d26d649842d9063ffe9092bff82.tar.gz android_packages_apps_Snap-f10a8fa2a4bd5d26d649842d9063ffe9092bff82.tar.bz2 android_packages_apps_Snap-f10a8fa2a4bd5d26d649842d9063ffe9092bff82.zip |
More refactoring...
Simplify management of filters in PanelController
bug:7688780
Change-Id: I0d07711cb2be127f064d476c6e98f4363b69b06c
Diffstat (limited to 'src')
7 files changed, 77 insertions, 93 deletions
diff --git a/src/com/android/gallery3d/filtershow/PanelController.java b/src/com/android/gallery3d/filtershow/PanelController.java index 5629e7d1d..1d9cc22b5 100644 --- a/src/com/android/gallery3d/filtershow/PanelController.java +++ b/src/com/android/gallery3d/filtershow/PanelController.java @@ -42,6 +42,7 @@ import com.android.gallery3d.filtershow.filters.ImageFilterVignette; import com.android.gallery3d.filtershow.filters.ImageFilterWBalance; import com.android.gallery3d.filtershow.imageshow.ImageCrop; import com.android.gallery3d.filtershow.imageshow.ImageShow; +import com.android.gallery3d.filtershow.imageshow.ImageSmallFilter; import com.android.gallery3d.filtershow.presets.ImagePreset; import com.android.gallery3d.filtershow.ui.FramedTextButton; import com.android.gallery3d.filtershow.ui.ImageCurves; @@ -58,7 +59,7 @@ public class PanelController implements OnClickListener { private static final String LOGTAG = "PanelController"; private boolean mFixedAspect = false; - public void setFixedAspect(boolean t){ + public void setFixedAspect(boolean t) { mFixedAspect = t; } @@ -592,6 +593,27 @@ public class PanelController implements OnClickListener { } mUtilityPanel.hideAspectButtons(); mUtilityPanel.hideCurvesButtons(); + + if (view instanceof ImageSmallFilter) { + ImageSmallFilter component = (ImageSmallFilter) view; + ImageFilter filter = component.getImageFilter(); + if (filter.getEditingViewId() != 0) { + mCurrentImage = showImageView(filter.getEditingViewId()); + mCurrentImage.setShowControls(filter.showEditingControls()); + String ename = mCurrentImage.getContext().getString(filter.getTextId()); + mUtilityPanel.setEffectName(ename); + if (view.getId() == R.id.curvesButtonRGB) { + // TODO: delegate to the filter / editing view the management of the + // panel accessory view + mUtilityPanel.setShowParameter(false); + mUtilityPanel.showCurvesButtons(); + } + ensureFilter(ename); + mCurrentImage.select(); + } + return; + } + switch (view.getId()) { case R.id.tinyplanetButton: { mCurrentImage = showImageView(R.id.imageTinyPlanet).setShowControls(true); @@ -611,11 +633,11 @@ public class PanelController implements OnClickListener { String ename = mCurrentImage.getContext().getString(R.string.crop); mUtilityPanel.setEffectName(ename); mUtilityPanel.setShowParameter(false); - if (mCurrentImage instanceof ImageCrop && mUtilityPanel.firstTimeCropDisplayed){ + if (mCurrentImage instanceof ImageCrop && mUtilityPanel.firstTimeCropDisplayed) { ((ImageCrop) mCurrentImage).clear(); mUtilityPanel.firstTimeCropDisplayed = false; } - if (!mFixedAspect){ + if (!mFixedAspect) { mUtilityPanel.showAspectButtons(); } break; @@ -633,87 +655,6 @@ public class PanelController implements OnClickListener { mUtilityPanel.setShowParameter(false); break; } - case R.id.vignetteButton: { - mCurrentImage = showImageView(R.id.imageShow).setShowControls(true); - String ename = mCurrentImage.getContext().getString(R.string.vignette); - mUtilityPanel.setEffectName(ename); - ensureFilter(ename); - break; - } - case R.id.curvesButtonRGB: { - ImageCurves curves = (ImageCurves) showImageView(R.id.imageCurves); - String ename = curves.getContext().getString(R.string.curvesRGB); - mUtilityPanel.setEffectName(ename); - mUtilityPanel.setShowParameter(false); - mUtilityPanel.showCurvesButtons(); - mCurrentImage = curves; - ensureFilter(ename); - break; - } - case R.id.sharpenButton: { - mCurrentImage = showImageView(R.id.imageZoom).setShowControls(true); - String ename = mCurrentImage.getContext().getString(R.string.sharpness); - mUtilityPanel.setEffectName(ename); - ensureFilter(ename); - break; - } - case R.id.contrastButton: { - mCurrentImage = showImageView(R.id.imageShow).setShowControls(true); - String ename = mCurrentImage.getContext().getString(R.string.contrast); - mUtilityPanel.setEffectName(ename); - ensureFilter(ename); - break; - } - case R.id.saturationButton: { - mCurrentImage = showImageView(R.id.imageShow).setShowControls(true); - String ename = mCurrentImage.getContext().getString(R.string.saturation); - mUtilityPanel.setEffectName(ename); - ensureFilter(ename); - break; - } - case R.id.bwfilterButton: { - mCurrentImage = showImageView(R.id.imageShow).setShowControls(true); - String ename = mCurrentImage.getContext().getString(R.string.bwfilter); - mUtilityPanel.setEffectName(ename); - ensureFilter(ename); - break; - } - case R.id.wbalanceButton: { - mCurrentImage = showImageView(R.id.imageShow).setShowControls(false); - String ename = mCurrentImage.getContext().getString(R.string.wbalance); - mUtilityPanel.setEffectName(ename); - mUtilityPanel.setShowParameter(false); - ensureFilter(ename); - break; - } - case R.id.hueButton: { - mCurrentImage = showImageView(R.id.imageShow).setShowControls(true); - String ename = mCurrentImage.getContext().getString(R.string.hue); - mUtilityPanel.setEffectName(ename); - ensureFilter(ename); - break; - } - case R.id.exposureButton: { - mCurrentImage = showImageView(R.id.imageShow).setShowControls(true); - String ename = mCurrentImage.getContext().getString(R.string.exposure); - mUtilityPanel.setEffectName(ename); - ensureFilter(ename); - break; - } - case R.id.vibranceButton: { - mCurrentImage = showImageView(R.id.imageShow).setShowControls(true); - String ename = mCurrentImage.getContext().getString(R.string.vibrance); - mUtilityPanel.setEffectName(ename); - ensureFilter(ename); - break; - } - case R.id.shadowRecoveryButton: { - mCurrentImage = showImageView(R.id.imageShow).setShowControls(true); - String ename = mCurrentImage.getContext().getString(R.string.shadow_recovery); - mUtilityPanel.setEffectName(ename); - ensureFilter(ename); - break; - } case R.id.redEyeButton: { mCurrentImage = showImageView(R.id.imageRedEyes).setShowControls(true); String ename = mCurrentImage.getContext().getString(R.string.redeye); diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilter.java b/src/com/android/gallery3d/filtershow/filters/ImageFilter.java index 2009449fb..5c24fbf65 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilter.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilter.java @@ -18,6 +18,7 @@ package com.android.gallery3d.filtershow.filters; import android.graphics.Bitmap; +import com.android.gallery3d.R; import com.android.gallery3d.filtershow.presets.ImagePreset; public class ImageFilter implements Cloneable { @@ -31,19 +32,19 @@ public class ImageFilter implements Cloneable { protected String mName = "Original"; private final String LOGTAG = "ImageFilter"; - public static final byte TYPE_BORDER =1; - public static final byte TYPE_FX = 2; + public static final byte TYPE_BORDER = 1; + public static final byte TYPE_FX = 2; public static final byte TYPE_WBALANCE = 3; public static final byte TYPE_VIGNETTE = 4; public static final byte TYPE_NORMAL = 5; public static final byte TYPE_TINYPLANET = 6; private byte filterType = TYPE_NORMAL; - public byte getFilterType(){ + public byte getFilterType() { return filterType; } - protected void setFilterType(byte type){ + protected void setFilterType(byte type) { filterType = type; } @@ -59,6 +60,14 @@ public class ImageFilter implements Cloneable { return 0; } + public int getEditingViewId() { + return R.id.imageShow; + } + + public boolean showEditingControls() { + return true; + } + @Override public ImageFilter clone() throws CloneNotSupportedException { ImageFilter filter = (ImageFilter) super.clone(); @@ -105,7 +114,7 @@ public class ImageFilter implements Cloneable { * The maximum allowed value (inclusive) * @return maximum value allowed as input to this filter */ - public int getMaxParameter(){ + public int getMaxParameter() { return mMaxParameter; } @@ -113,7 +122,7 @@ public class ImageFilter implements Cloneable { * The parameter value to be used in previews. * @return parameter value to be used to preview the filter */ - public int getPreviewParameter(){ + public int getPreviewParameter() { return mPreviewParameter; } @@ -121,7 +130,7 @@ public class ImageFilter implements Cloneable { * The minimum allowed value (inclusive) * @return minimum value allowed as input to this filter */ - public int getMinParameter(){ + public int getMinParameter() { return mMinParameter; } @@ -129,7 +138,7 @@ public class ImageFilter implements Cloneable { * Returns the default value returned by this filter. * @return default value */ - public int getDefaultParameter(){ + public int getDefaultParameter() { return mDefaultParameter; } diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java index dda969965..46a00f47a 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java @@ -47,6 +47,11 @@ public class ImageFilterCurves extends ImageFilter { } @Override + public int getEditingViewId() { + return R.id.imageCurves; + } + + @Override public ImageFilter clone() throws CloneNotSupportedException { ImageFilterCurves filter = (ImageFilterCurves) super.clone(); for (int i = 0; i < 4; i++) { diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java index ff7027cf9..9ae6f511e 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java @@ -20,6 +20,7 @@ import android.graphics.Bitmap; import android.graphics.Matrix; import android.graphics.RectF; +import com.android.gallery3d.R; import com.android.gallery3d.filtershow.imageshow.GeometryMetadata; import java.util.Vector; @@ -33,6 +34,21 @@ public class ImageFilterRedEye extends ImageFilter { } @Override + public int getButtonId() { + return R.id.redEyeButton; + } + + @Override + public int getTextId() { + return R.string.redeye; + } + + @Override + public int getEditingViewId() { + return R.id.imageRedEyes; + } + + @Override public ImageFilter clone() throws CloneNotSupportedException { ImageFilterRedEye filter = (ImageFilterRedEye) super.clone(); if (mCandidates != null) { diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java index b551c5137..1951b9b9e 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java @@ -43,6 +43,11 @@ public class ImageFilterSharpen extends ImageFilterRS { } @Override + public int getEditingViewId() { + return R.id.imageZoom; + } + + @Override public void createFilter(android.content.res.Resources res, float scaleFactor, boolean highQuality) { int w = mInPixelsAllocation.getType().getX(); diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterWBalance.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterWBalance.java index b2842f208..8665dc54c 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterWBalance.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterWBalance.java @@ -38,13 +38,17 @@ public class ImageFilterWBalance extends ImageFilter { return R.string.wbalance; } + public boolean showEditingControls() { + return false; + } + native protected void nativeApplyFilter(Bitmap bitmap, int w, int h, int locX, int locY); @Override public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { int w = bitmap.getWidth(); int h = bitmap.getHeight(); - nativeApplyFilter(bitmap, w, h, -1,-1); + nativeApplyFilter(bitmap, w, h, -1, -1); return bitmap; } diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageSmallFilter.java b/src/com/android/gallery3d/filtershow/imageshow/ImageSmallFilter.java index 358f4fbe8..2a3ee2856 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/ImageSmallFilter.java +++ b/src/com/android/gallery3d/filtershow/imageshow/ImageSmallFilter.java @@ -84,6 +84,10 @@ public class ImageSmallFilter extends ImageShow implements View.OnClickListener mImagePreset.add(mImageFilter); } + public ImageFilter getImageFilter() { + return mImageFilter; + } + @Override public void setSelected(boolean value) { if (mIsSelected != value) { |