diff options
9 files changed, 45 insertions, 27 deletions
diff --git a/res/menu/filtershow_menu_draw.xml b/res/menu/filtershow_menu_draw.xml index 9455f70a7..2960c1f05 100644 --- a/res/menu/filtershow_menu_draw.xml +++ b/res/menu/filtershow_menu_draw.xml @@ -33,6 +33,9 @@ <item android:id="@+id/draw_menu_color" android:title="@string/draw_color"/> + <item + android:id="@+id/draw_menu_clear" + android:title="@string/draw_clear"/> </group> </menu>
\ No newline at end of file diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml index 4eaaac170..2bc0f5ada 100644 --- a/res/values-sw/strings.xml +++ b/res/values-sw/strings.xml @@ -262,7 +262,7 @@ <string name="pref_camera_picturesize_entry_vga" msgid="806934254162981919">"VGA"</string> <string name="pref_camera_picturesize_entry_qvga" msgid="8576186463069770133">"QVGA"</string> <string name="pref_camera_focusmode_title" msgid="2877248921829329127">"Hali ya kulenga"</string> - <string name="pref_camera_focusmode_entry_auto" msgid="7374820710300362457">"Atomatiki"</string> + <string name="pref_camera_focusmode_entry_auto" msgid="7374820710300362457">"Otomatiki"</string> <string name="pref_camera_focusmode_entry_infinity" msgid="3413922419264967552">"Pasipo mwisho"</string> <string name="pref_camera_focusmode_entry_macro" msgid="4424489110551866161">"Makro"</string> <string name="pref_camera_flashmode_title" msgid="2287362477238791017">"Hali ya mweka"</string> diff --git a/res/values/filtershow_strings.xml b/res/values/filtershow_strings.xml index cf6e80d68..66fb3902d 100644 --- a/res/values/filtershow_strings.xml +++ b/res/values/filtershow_strings.xml @@ -166,6 +166,8 @@ <string name="draw_style_brush_spatter">Marker</string> <!-- Label for the Spatter brush style of drawing in [CHAR LIMIT=14] --> <string name="draw_style_brush_marker">Spatter</string> + <!-- Label for the removing drawing from screen [CHAR LIMIT=14] --> + <string name="draw_clear">Clear</string> <!-- Label for the select the color [CHAR LIMIT=30] --> <string name="color_pick_select">Choose custom color</string> diff --git a/src/com/android/gallery3d/filtershow/filters/FilterDrawRepresentation.java b/src/com/android/gallery3d/filtershow/filters/FilterDrawRepresentation.java index b8fa0a3d4..89ea5ccc5 100644 --- a/src/com/android/gallery3d/filtershow/filters/FilterDrawRepresentation.java +++ b/src/com/android/gallery3d/filtershow/filters/FilterDrawRepresentation.java @@ -17,6 +17,8 @@ package com.android.gallery3d.filtershow.filters; import android.graphics.Path; +import android.util.Log; + import com.android.gallery3d.R; import com.android.gallery3d.filtershow.editors.EditorDraw; @@ -30,7 +32,7 @@ public class FilterDrawRepresentation extends FilterRepresentation { public Path mPath; public float mRadius; public int mColor; - + public int noPoints = 0; @Override public String toString() { return "stroke(" + mType + ", path(" + (mPath) + "), " + mRadius + " , " @@ -48,7 +50,7 @@ public class FilterDrawRepresentation extends FilterRepresentation { public FilterDrawRepresentation() { super("Draw"); setFilterClass(ImageFilterDraw.class); - setFilterType(FilterRepresentation.TYPE_VIGNETTE); + setPriority(FilterRepresentation.TYPE_VIGNETTE); setTextId(R.string.imageDraw); setButtonId(R.id.drawOnImageButton); setEditorId(EditorDraw.ID); @@ -57,7 +59,8 @@ public class FilterDrawRepresentation extends FilterRepresentation { @Override public String toString() { return getName() + " : strokes=" + mDrawing.size() - + ((mCurrent == null) ? " no current " : ("current=" + mCurrent.mType)); + + ((mCurrent == null) ? " no current " + : ("draw=" + mCurrent.mType + " " + mCurrent.noPoints)); } public Vector<StrokeData> getDrawing() { @@ -95,6 +98,8 @@ public class FilterDrawRepresentation extends FilterRepresentation { } catch (CloneNotSupportedException e) { e.printStackTrace(); } + } else { + Log.v(LOGTAG, "cannot use parameters from " + a); } } @@ -104,8 +109,18 @@ public class FilterDrawRepresentation extends FilterRepresentation { return false; } if (representation instanceof FilterDrawRepresentation) { - // FIXME! - return true; + FilterDrawRepresentation fdRep = (FilterDrawRepresentation) representation; + if (fdRep.mDrawing.size() != mDrawing.size()) + return false; + if (fdRep.mCurrent == null && mCurrent.mPath == null) { + return true; + } + if (fdRep.mCurrent != null && mCurrent.mPath != null) { + if (fdRep.mCurrent.noPoints == mCurrent.noPoints) { + return true; + } + return false; + } } return false; } @@ -117,14 +132,17 @@ public class FilterDrawRepresentation extends FilterRepresentation { mCurrent.mType = type; mCurrent.mPath = new Path(); mCurrent.mPath.moveTo(x, y); + mCurrent.noPoints = 0; } public void addPoint(float x, float y) { + mCurrent.noPoints++; mCurrent.mPath.lineTo(x, y); } public void endSection(float x, float y) { mCurrent.mPath.lineTo(x, y); + mCurrent.noPoints++; mDrawing.add(mCurrent); mCurrent = null; } diff --git a/src/com/android/gallery3d/filtershow/filters/FilterFxRepresentation.java b/src/com/android/gallery3d/filtershow/filters/FilterFxRepresentation.java index fa3fe720b..859bf327c 100644 --- a/src/com/android/gallery3d/filtershow/filters/FilterFxRepresentation.java +++ b/src/com/android/gallery3d/filtershow/filters/FilterFxRepresentation.java @@ -31,7 +31,7 @@ public class FilterFxRepresentation extends FilterRepresentation { mBitmapResource = bitmapResource; mNameResource = nameResource; setFilterClass(ImageFilterFx.class); - setFilterType(FilterRepresentation.TYPE_FX); + setPriority(FilterRepresentation.TYPE_FX); setTextId(nameResource); setEditorId(ImageOnlyEditor.ID); setShowEditingControls(false); diff --git a/src/com/android/gallery3d/filtershow/filters/FilterRedEyeRepresentation.java b/src/com/android/gallery3d/filtershow/filters/FilterRedEyeRepresentation.java index 38d3a696f..2667cc8e9 100644 --- a/src/com/android/gallery3d/filtershow/filters/FilterRedEyeRepresentation.java +++ b/src/com/android/gallery3d/filtershow/filters/FilterRedEyeRepresentation.java @@ -31,7 +31,7 @@ public class FilterRedEyeRepresentation extends FilterRepresentation { public FilterRedEyeRepresentation() { super("RedEye"); setFilterClass(ImageFilterRedEye.class); - setFilterType(FilterRepresentation.TYPE_NORMAL); + setPriority(FilterRepresentation.TYPE_NORMAL); setButtonId(R.id.redEyeButton); setTextId(R.string.redeye); setEditorId(EditorRedEye.ID); diff --git a/src/com/android/gallery3d/filtershow/filters/FilterRepresentation.java b/src/com/android/gallery3d/filtershow/filters/FilterRepresentation.java index f282d2966..2b6c3fe7d 100644 --- a/src/com/android/gallery3d/filtershow/filters/FilterRepresentation.java +++ b/src/com/android/gallery3d/filtershow/filters/FilterRepresentation.java @@ -23,7 +23,7 @@ import com.android.gallery3d.filtershow.presets.ImagePreset; public class FilterRepresentation implements Cloneable { private static final String LOGTAG = "FilterRepresentation"; private String mName; - private int mPriority; + private int mPriority = TYPE_NORMAL; private ImagePreset mPreset; private Class mFilterClass; private int mTextId = 0; @@ -40,7 +40,6 @@ public class FilterRepresentation implements Cloneable { 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 FilterRepresentation(String name) { mName = name; @@ -86,14 +85,6 @@ public class FilterRepresentation implements Cloneable { return mName; } - public byte getFilterType() { - return filterType; - } - - protected void setFilterType(byte type) { - filterType = type; - } - public void setName(String name) { mName = name; } diff --git a/src/com/android/gallery3d/filtershow/filters/FilterTinyPlanetRepresentation.java b/src/com/android/gallery3d/filtershow/filters/FilterTinyPlanetRepresentation.java index 9bf2f0bf3..7b69ce9e0 100644 --- a/src/com/android/gallery3d/filtershow/filters/FilterTinyPlanetRepresentation.java +++ b/src/com/android/gallery3d/filtershow/filters/FilterTinyPlanetRepresentation.java @@ -27,7 +27,7 @@ public class FilterTinyPlanetRepresentation extends FilterBasicRepresentation { super("TinyPlanet", 0, 50, 100); setShowParameterValue(true); setFilterClass(ImageFilterTinyPlanet.class); - setFilterType(FilterRepresentation.TYPE_TINYPLANET); + setPriority(FilterRepresentation.TYPE_TINYPLANET); setTextId(R.string.tinyplanet); setButtonId(R.id.tinyplanetButton); setEditorId(EditorTinyPlanet.ID); diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java index c7d14e80b..b81659a1a 100644 --- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java +++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java @@ -21,6 +21,7 @@ import android.util.Log; import com.android.gallery3d.filtershow.ImageStateAdapter; import com.android.gallery3d.filtershow.cache.ImageLoader; +import com.android.gallery3d.filtershow.filters.BaseFiltersManager; import com.android.gallery3d.filtershow.filters.FilterRepresentation; import com.android.gallery3d.filtershow.filters.FiltersManager; import com.android.gallery3d.filtershow.filters.ImageFilter; @@ -35,7 +36,10 @@ public class ImagePreset { private FilterRepresentation mBorder = null; private float mScaleFactor = 1.0f; - private boolean mIsHighQuality = false; + public static final int QUALITY_ICON = 0; + public static final int QUALITY_PREVIEW = 1; + public static final int QUALITY_FINAL = 2; + private int mQuality = QUALITY_PREVIEW; private ImageLoader mImageLoader = null; private Vector<FilterRepresentation> mFilters = new Vector<FilterRepresentation>(); @@ -380,14 +384,14 @@ public class ImagePreset { public Bitmap applyGeometry(Bitmap bitmap) { // Apply any transform -- 90 rotate, flip, straighten, crop // Returns a new bitmap. - return mGeoData.apply(bitmap, mScaleFactor, mIsHighQuality); + return mGeoData.apply(bitmap, mScaleFactor, mQuality); } public Bitmap applyBorder(Bitmap bitmap) { if (mBorder != null && mDoApplyGeometry) { ImageFilter filter = FiltersManager.getManager().getFilterForRepresentation(mBorder); filter.useRepresentation(mBorder); - bitmap = filter.apply(bitmap, mScaleFactor, mIsHighQuality); + bitmap = filter.apply(bitmap, mScaleFactor, mQuality); } return bitmap; } @@ -408,7 +412,7 @@ public class ImagePreset { } ImageFilter filter = FiltersManager.getManager().getFilterForRepresentation(representation); filter.useRepresentation(representation); - bitmap = filter.apply(bitmap, mScaleFactor, mIsHighQuality); + bitmap = filter.apply(bitmap, mScaleFactor, mQuality); } } @@ -429,12 +433,12 @@ public class ImagePreset { return mScaleFactor; } - public boolean isHighQuality() { - return mIsHighQuality; + public int getQuality() { + return mQuality; } - public void setIsHighQuality(boolean value) { - mIsHighQuality = value; + public void setQuality(int value) { + mQuality = value; } public void setScaleFactor(float value) { |