diff options
Diffstat (limited to 'src/com/android/gallery3d/filtershow/FilterShowActivity.java')
-rw-r--r-- | src/com/android/gallery3d/filtershow/FilterShowActivity.java | 265 |
1 files changed, 148 insertions, 117 deletions
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java index 83ea06dc7..f7147eac1 100644 --- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java +++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java @@ -16,7 +16,6 @@ package com.android.gallery3d.filtershow; -import android.annotation.TargetApi; import android.app.ActionBar; import android.app.Activity; import android.app.ProgressDialog; @@ -45,34 +44,25 @@ import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.WindowManager; -import android.widget.AdapterView; +import android.widget.*; import android.widget.AdapterView.OnItemClickListener; -import android.widget.FrameLayout; -import android.widget.ImageButton; -import android.widget.LinearLayout; -import android.widget.ListView; -import android.widget.SeekBar; -import android.widget.ShareActionProvider; import android.widget.ShareActionProvider.OnShareTargetSelectedListener; -import android.widget.Toast; import com.android.gallery3d.R; import com.android.gallery3d.data.LocalAlbum; +import com.android.gallery3d.filtershow.cache.FilteringPipeline; import com.android.gallery3d.filtershow.cache.ImageLoader; import com.android.gallery3d.filtershow.editors.BasicEditor; import com.android.gallery3d.filtershow.editors.EditorDraw; import com.android.gallery3d.filtershow.editors.EditorManager; -import com.android.gallery3d.filtershow.filters.FiltersManager; -import com.android.gallery3d.filtershow.filters.ImageFilter; -import com.android.gallery3d.filtershow.filters.ImageFilterBorder; -import com.android.gallery3d.filtershow.filters.ImageFilterFx; -import com.android.gallery3d.filtershow.filters.ImageFilterParametricBorder; -import com.android.gallery3d.filtershow.filters.ImageFilterRS; -import com.android.gallery3d.filtershow.filters.ImageFilterRedEye; +import com.android.gallery3d.filtershow.editors.EditorRedEye; +import com.android.gallery3d.filtershow.editors.ImageOnlyEditor; +import com.android.gallery3d.filtershow.editors.EditorTinyPlanet; +import com.android.gallery3d.filtershow.filters.*; import com.android.gallery3d.filtershow.imageshow.ImageCrop; import com.android.gallery3d.filtershow.imageshow.ImageDraw; import com.android.gallery3d.filtershow.imageshow.ImageFlip; -import com.android.gallery3d.filtershow.imageshow.ImageRedEyes; +import com.android.gallery3d.filtershow.imageshow.ImageRedEye; import com.android.gallery3d.filtershow.imageshow.ImageRotate; import com.android.gallery3d.filtershow.imageshow.ImageShow; import com.android.gallery3d.filtershow.imageshow.ImageStraighten; @@ -84,7 +74,6 @@ import com.android.gallery3d.filtershow.provider.SharedImageProvider; import com.android.gallery3d.filtershow.tools.SaveCopyTask; import com.android.gallery3d.filtershow.ui.FilterIconButton; import com.android.gallery3d.filtershow.ui.FramedTextButton; -import com.android.gallery3d.filtershow.ui.ImageCurves; import com.android.gallery3d.filtershow.ui.Spline; import com.android.gallery3d.util.GalleryUtils; @@ -93,14 +82,14 @@ import java.io.IOException; import java.lang.ref.WeakReference; import java.util.Vector; -@TargetApi(16) public class FilterShowActivity extends Activity implements OnItemClickListener, OnShareTargetSelectedListener { // fields for supporting crop action public static final String CROP_ACTION = "com.android.camera.action.CROP"; private CropExtras mCropExtras = null; - MasterImage mMasterImage = MasterImage.getImage(); + private String mAction = ""; + MasterImage mMasterImage = null; public static final String TINY_PLANET_ACTION = "com.android.camera.action.TINY_PLANET"; public static final String LAUNCH_FULLSCREEN = "launch-fullscreen"; @@ -108,7 +97,6 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, private final PanelController mPanelController = new PanelController(); private ImageLoader mImageLoader = null; private ImageShow mImageShow = null; - private ImageRedEyes mImageRedEyes = null; private ImageDraw mImageDraw = null; private ImageStraighten mImageStraighten = null; private ImageCrop mImageCrop = null; @@ -159,14 +147,17 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, private FilterIconButton mNullBorderFilter; private int mIconSeedSize = 140; + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setResources(); + Resources res = getResources(); setupMasterImage(); ImageFilterRS.setRenderScriptContext(this); - ImageShow.setDefaultBackgroundColor(getResources().getColor(R.color.background_screen)); + ImageShow.setDefaultBackgroundColor(res.getColor(R.color.background_screen)); // TODO: get those values from XML. ImageZoom.setZoomedSize(getPixelsFromDip(256)); FramedTextButton.setTextSize((int) getPixelsFromDip(14)); @@ -176,11 +167,11 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, ImageShow.setTextPadding((int) getPixelsFromDip(10)); ImageShow.setOriginalTextMargin((int) getPixelsFromDip(4)); ImageShow.setOriginalTextSize((int) getPixelsFromDip(18)); - ImageShow.setOriginalText(getResources().getString(R.string.original_picture_text)); - mIconSeedSize = getResources().getDimensionPixelSize(R.dimen.thumbnail_size); + ImageShow.setOriginalText(res.getString(R.string.original_picture_text)); + mIconSeedSize = res.getDimensionPixelSize(R.dimen.thumbnail_size); - Drawable curveHandle = getResources().getDrawable(R.drawable.camera_crop); - int curveHandleSize = (int) getResources().getDimension(R.dimen.crop_indicator_size); + Drawable curveHandle = res.getDrawable(R.drawable.camera_crop); + int curveHandleSize = (int) res.getDimension(R.dimen.crop_indicator_size); Spline.setCurveHandle(curveHandle, curveHandleSize); Spline.setCurveWidth((int) getPixelsFromDip(3)); @@ -209,7 +200,6 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, mImageRotate = (ImageRotate) findViewById(R.id.imageRotate); mImageFlip = (ImageFlip) findViewById(R.id.imageFlip); mImageTinyPlanet = (ImageTinyPlanet) findViewById(R.id.imageTinyPlanet); - mImageRedEyes = (ImageRedEyes) findViewById(R.id.imageRedEyes); mImageDraw = (ImageDraw) findViewById(R.id.imageDraw); mImageCrop.setAspectTextSize((int) getPixelsFromDip(18)); @@ -221,15 +211,19 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, mImageViews.add(mImageRotate); mImageViews.add(mImageFlip); mImageViews.add(mImageTinyPlanet); - mImageViews.add(mImageRedEyes); mEditorPlaceHolder.setContainer((FrameLayout) findViewById(R.id.editorContainer)); mEditorPlaceHolder.addEditor(new EditorDraw()); mEditorPlaceHolder.addEditor(new BasicEditor()); + mEditorPlaceHolder.addEditor(new ImageOnlyEditor()); + mEditorPlaceHolder.addEditor(new EditorTinyPlanet()); + mEditorPlaceHolder.addEditor(new EditorRedEye()); EditorManager.addEditors(mEditorPlaceHolder); mEditorPlaceHolder.setOldViews(mImageViews); mEditorPlaceHolder.setImageLoader(mImageLoader); + mEditorPlaceHolder.hide(); + mListFx = findViewById(R.id.fxList); mListBorders = findViewById(R.id.bordersList); mListGeometry = findViewById(R.id.geometryList); @@ -257,7 +251,6 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, mImageRotate.setImageLoader(mImageLoader); mImageFlip.setImageLoader(mImageLoader); mImageTinyPlanet.setImageLoader(mImageLoader); - mImageRedEyes.setImageLoader(mImageLoader); mImageDraw.setImageLoader(mImageLoader); mPanelController.setActivity(this); @@ -269,7 +262,6 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, mPanelController.addImageView(findViewById(R.id.imageRotate)); mPanelController.addImageView(findViewById(R.id.imageFlip)); mPanelController.addImageView(findViewById(R.id.imageTinyPlanet)); - mPanelController.addImageView(findViewById(R.id.imageRedEyes)); mPanelController.addImageView(findViewById(R.id.imageDraw)); mPanelController.addPanel(mFxButton, mListFx, 0); @@ -280,19 +272,17 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, mPanelController.addComponent(mGeometryButton, findViewById(R.id.cropButton)); mPanelController.addComponent(mGeometryButton, findViewById(R.id.rotateButton)); mPanelController.addComponent(mGeometryButton, findViewById(R.id.flipButton)); - mPanelController.addComponent(mGeometryButton, findViewById(R.id.redEyeButton)); mPanelController.addPanel(mColorsButton, mListColors, 3); - Vector<ImageFilter> filters = new Vector<ImageFilter>(); - FiltersManager.addFilters(filters, mImageLoader); + Vector<FilterRepresentation> filtersRepresentations = new Vector<FilterRepresentation>(); + + FiltersManager filtersManager = FiltersManager.getManager(); + filtersManager.addEffects(filtersRepresentations); - for (ImageFilter filter : filters) { - filter.setParameter(filter.getDefaultParameter()); - filter.setName(getString(filter.getTextId())); - setupFilterButton(filter, listColors, mColorsButton); + for (FilterRepresentation representation : filtersRepresentations) { + setupFilterRepresentationButton(representation, listColors, mColorsButton); } - mPanelController.addFilter(new ImageFilterRedEye()); mPanelController.addView(findViewById(R.id.applyEffect)); findViewById(R.id.resetOperationsButton).setOnClickListener( @@ -309,11 +299,6 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, LoadBordersTask loadBorders = new LoadBordersTask(listBorders); loadBorders.execute(); - SeekBar seekBar = (SeekBar) findViewById(R.id.filterSeekBar); - seekBar.setMax(SEEK_BAR_MAX); - - mImageShow.setSeekBar(seekBar); - mImageTinyPlanet.setSeekBar(seekBar); mPanelController.setRowPanel(findViewById(R.id.secondRowPanel)); mPanelController.setUtilityPanel(this, findViewById(R.id.filterButtonsList), findViewById(R.id.panelAccessoryViewList), @@ -325,6 +310,8 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); } + mAction = intent.getAction(); + if (intent.getData() != null) { startLoadBitmap(intent.getData()); } else { @@ -332,8 +319,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, } // Handle behavior for various actions - String action = intent.getAction(); - if (action.equalsIgnoreCase(CROP_ACTION)) { + if (mAction.equalsIgnoreCase(CROP_ACTION)) { Bundle extras = intent.getExtras(); if (extras != null) { mCropExtras = new CropExtras(extras.getInt(CropExtras.KEY_OUTPUT_X, 0), @@ -362,17 +348,17 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, mPanelController.setFixedAspect(mCropExtras.getAspectX() > 0 && mCropExtras.getAspectY() > 0); } - mPanelController.showComponent(findViewById(R.id.cropButton)); - } else if (action.equalsIgnoreCase(TINY_PLANET_ACTION)) { - mPanelController.showComponent(findViewById(R.id.tinyplanetButton)); } } private void startLoadBitmap(Uri uri) { final View filters = findViewById(R.id.filtersPanel); final View loading = findViewById(R.id.loading); - loading.setVisibility(View.VISIBLE); + final View imageShow = findViewById(R.id.imageShow); + imageShow.setVisibility(View.INVISIBLE); filters.setVisibility(View.INVISIBLE); + loading.setVisibility(View.VISIBLE); + View tinyPlanetView = findViewById(R.id.tinyplanetButton); if (tinyPlanetView != null) { tinyPlanetView.setVisibility(View.GONE); @@ -382,37 +368,29 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, } private class LoadBordersTask extends AsyncTask<Void, Boolean, Boolean> { - Vector<ImageFilter> mBorders; + Vector<FilterRepresentation> mBorders; LinearLayout mList; public LoadBordersTask(LinearLayout list) { mList = list; - mBorders = new Vector<ImageFilter>(); + mBorders = new Vector<FilterRepresentation>(); } @Override protected Boolean doInBackground(Void... params) { - mBorders.add(new ImageFilterBorder(null)); - Drawable npd1 = getResources().getDrawable(R.drawable.filtershow_border_4x5); - mBorders.add(new ImageFilterBorder(npd1)); - Drawable npd2 = getResources().getDrawable(R.drawable.filtershow_border_brush); - mBorders.add(new ImageFilterBorder(npd2)); - Drawable npd3 = getResources().getDrawable(R.drawable.filtershow_border_grunge); - mBorders.add(new ImageFilterBorder(npd3)); - Drawable npd4 = getResources().getDrawable(R.drawable.filtershow_border_sumi_e); - mBorders.add(new ImageFilterBorder(npd4)); - Drawable npd5 = getResources().getDrawable(R.drawable.filtershow_border_tape); - mBorders.add(new ImageFilterBorder(npd5)); - mBorders.add(new ImageFilterParametricBorder(Color.BLACK, mImageBorderSize, 0)); - mBorders.add(new ImageFilterParametricBorder(Color.BLACK, mImageBorderSize, - mImageBorderSize)); - mBorders.add(new ImageFilterParametricBorder(Color.WHITE, mImageBorderSize, 0)); - mBorders.add(new ImageFilterParametricBorder(Color.WHITE, mImageBorderSize, - mImageBorderSize)); + mBorders.add(new FilterImageBorderRepresentation(0)); + mBorders.add(new FilterImageBorderRepresentation(R.drawable.filtershow_border_4x5)); + mBorders.add(new FilterImageBorderRepresentation(R.drawable.filtershow_border_brush)); + mBorders.add(new FilterImageBorderRepresentation(R.drawable.filtershow_border_grunge)); + mBorders.add(new FilterImageBorderRepresentation(R.drawable.filtershow_border_sumi_e)); + mBorders.add(new FilterImageBorderRepresentation(R.drawable.filtershow_border_tape)); + mBorders.add(new FilterColorBorderRepresentation(Color.BLACK, mImageBorderSize, 0)); + mBorders.add(new FilterColorBorderRepresentation(Color.BLACK, mImageBorderSize, mImageBorderSize)); + mBorders.add(new FilterColorBorderRepresentation(Color.WHITE, mImageBorderSize, 0)); + mBorders.add(new FilterColorBorderRepresentation(Color.WHITE, mImageBorderSize, mImageBorderSize)); int creamColor = Color.argb(255, 237, 237, 227); - mBorders.add(new ImageFilterParametricBorder(creamColor, mImageBorderSize, 0)); - mBorders.add(new ImageFilterParametricBorder(creamColor, mImageBorderSize, - mImageBorderSize)); + mBorders.add(new FilterColorBorderRepresentation(creamColor, mImageBorderSize, 0)); + mBorders.add(new FilterColorBorderRepresentation(creamColor, mImageBorderSize, mImageBorderSize)); return true; } @@ -422,9 +400,12 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, return; } for (int i = 0; i < mBorders.size(); i++) { - ImageFilter filter = mBorders.elementAt(i); + FilterRepresentation filter = mBorders.elementAt(i); filter.setName(getString(R.string.borders)); - FilterIconButton b = setupFilterButton(filter, mList, mBorderButton); + if (i == 0) { + filter.setName(getString(R.string.none)); + } + FilterIconButton b = setupFilterRepresentationButton(filter, mList, mBorderButton); if (i == 0) { mNullBorderFilter = b; mNullBorderFilter.setSelected(true); @@ -457,10 +438,6 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, if (isCancelled()) { return; } - final View filters = findViewById(R.id.filtersPanel); - final View loading = findViewById(R.id.loading); - loading.setVisibility(View.GONE); - filters.setVisibility(View.VISIBLE); if (values[0]) { mTinyPlanetButton.setVisibility(View.VISIBLE); } @@ -468,13 +445,33 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, @Override protected void onPostExecute(Boolean result) { + if (isCancelled()) { return; } + if (!result) { cannotLoadImage(); } + final View loading = findViewById(R.id.loading); + loading.setVisibility(View.GONE); + final View filters = findViewById(R.id.filtersPanel); + filters.setVisibility(View.VISIBLE); + if (PanelController.useAnimations()) { + float y = filters.getY(); + filters.setY(y + filters.getHeight()); + filters.animate().setDuration(600).y(y).withLayer().start(); + } + final View imageShow = findViewById(R.id.imageShow); + imageShow.setVisibility(View.VISIBLE); + + Bitmap largeBitmap = mImageLoader.getOriginalBitmapLarge(); + FilteringPipeline pipeline = FilteringPipeline.getPipeline(); + pipeline.setOriginal(largeBitmap); + float previewScale = (float) largeBitmap.getWidth() / (float) mImageLoader.getOriginalBounds().width(); + pipeline.setPreviewScaleFactor(previewScale); + Bitmap bmap = mImageLoader.getOriginalBitmapSmall(); if (bmap != null && bmap.getWidth() > 0 && bmap.getHeight() > 0) { float w = bmap.getWidth(); @@ -505,6 +502,13 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, } mLoadBitmapTask = null; + + if (mAction == CROP_ACTION) { + mPanelController.showComponent(findViewById(R.id.cropButton)); + } else if (mAction == TINY_PLANET_ACTION) { + mPanelController.showComponent(findViewById(R.id.tinyplanetButton)); + } + super.onPostExecute(result); } @@ -704,19 +708,22 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, mSaveButton.setEnabled(enable); } - public FilterIconButton setupFilterButton(ImageFilter filter, LinearLayout panel, View button) { + public FilterIconButton setupFilterRepresentationButton(FilterRepresentation representation, LinearLayout panel, View button) { LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); FilterIconButton icon = (FilterIconButton) inflater.inflate(R.layout.filtericonbutton, panel, false); - String text = filter.getName(); - if (filter instanceof ImageFilterBorder || filter instanceof ImageFilterParametricBorder) { - text = ""; + if (representation.getTextId() != 0) { + representation.setName(getString(representation.getTextId())); + } + String text = representation.getName(); + icon.setup(text, mPanelController, panel); + icon.setFilterRepresentation(representation); + if (representation instanceof FilterTinyPlanetRepresentation) { + // needed to hide tinyplanet on startup + icon.setId(R.id.tinyplanetButton); } - icon.setup(text, filter, this, panel); - icon.setId(filter.getButtonId()); mPanelController.addComponent(button, icon); - mPanelController.addFilter(filter); panel.addView(icon); return icon; } @@ -725,7 +732,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, // TODO: use listview // TODO: load the filters straight from the filesystem - ImageFilterFx[] fxArray = new ImageFilterFx[18]; + FilterFxRepresentation[] fxArray = new FilterFxRepresentation[18]; int p = 0; int[] drawid = { @@ -760,15 +767,23 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, for (int i = 0; i < drawid.length; i++) { Bitmap b = BitmapFactory.decodeResource(getResources(), drawid[i], o); - fxArray[p++] = new ImageFilterFx(b, getString(fxNameid[i]), fxNameid[i]); + FilterFxRepresentation fx = new FilterFxRepresentation(getString(fxNameid[i]), drawid[i], fxNameid[i]); + fx.setFxBitmap(b); + fxArray[p++] = fx; } - ImageFilterFx nullFilter = new ImageFilterFx(null, getString(R.string.none), R.string.none); - mNullFxFilter = setupFilterButton(nullFilter, listFilters, mFxButton); + FilterFxRepresentation nullFx = new FilterFxRepresentation(getString(R.string.none), 0, R.string.none); + mNullFxFilter = setupFilterRepresentationButton(nullFx, listFilters, mFxButton); mNullFxFilter.setSelected(true); + Vector<FilterRepresentation> filtersRepresentations = new Vector<FilterRepresentation>(); + FiltersManager.getManager().addLooks(filtersRepresentations); + for (FilterRepresentation representation : filtersRepresentations) { + setupFilterRepresentationButton(representation, listFilters, mFxButton); + } + for (int i = 0; i < p; i++) { - setupFilterButton(fxArray[i], listFilters, mFxButton); + setupFilterRepresentationButton(fxArray[i], listFilters, mFxButton); } // Default preset (original) @@ -803,6 +818,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, for (View view : mImageViews) { view.setVisibility(View.GONE); } + mEditorPlaceHolder.hide(); } public void unselectBottomPanelButtons() { @@ -852,7 +868,8 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, int translate = translateMainPanel(viewList); if (!mShowingImageStatePanel) { mShowingImageStatePanel = true; - view.animate().setDuration(200).x(translate) + if (PanelController.useAnimations()) { + view.animate().setDuration(200).x(translate) .withLayer().withEndAction(new Runnable() { @Override public void run() { @@ -862,11 +879,22 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, .alpha(1.0f).start(); } }).start(); + } else { + view.setX(translate); + viewList.setAlpha(0); + viewList.setVisibility(View.VISIBLE); + viewList.animate().setDuration(100) + .alpha(1.0f).start(); + } } else { mShowingImageStatePanel = false; viewList.setVisibility(View.INVISIBLE); - view.animate().setDuration(200).x(0).withLayer() + if (PanelController.useAnimations()) { + view.animate().setDuration(200).x(0).withLayer() .start(); + } else { + view.setX(0); + } } invalidateOptionsMenu(); } @@ -875,6 +903,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); + setResources(); if (mShowingHistoryPanel) { toggleHistoryPanel(); } @@ -887,6 +916,8 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, ImageStateAdapter mImageStateAdapter = new ImageStateAdapter(this, R.layout.filtershow_imagestate_row); + MasterImage.reset(); + mMasterImage = MasterImage.getImage(); mMasterImage.setHistoryAdapter(mHistoryAdapter); mMasterImage.setStateAdapter(mImageStateAdapter); mMasterImage.setActivity(this); @@ -907,7 +938,8 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, int translate = translateMainPanel(viewList); if (!mShowingHistoryPanel) { mShowingHistoryPanel = true; - view.animate().setDuration(200).x(translate) + if (PanelController.useAnimations()) { + view.animate().setDuration(200).x(translate) .withLayer().withEndAction(new Runnable() { @Override public void run() { @@ -917,11 +949,22 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, .alpha(1.0f).start(); } }).start(); + } else { + view.setX(translate); + viewList.setAlpha(0); + viewList.setVisibility(View.VISIBLE); + viewList.animate().setDuration(100) + .alpha(1.0f).start(); + } } else { mShowingHistoryPanel = false; viewList.setVisibility(View.INVISIBLE); - view.animate().setDuration(200).x(0).withLayer() + if (PanelController.useAnimations()) { + view.animate().setDuration(200).x(0).withLayer() .start(); + } else { + view.setX(0); + } } invalidateOptionsMenu(); } @@ -973,23 +1016,6 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, r.getDisplayMetrics()); } - public void useFilter(ImageFilter filter) { - if (mMasterImage.getCurrentFilter() == filter) { - return; - } - ImagePreset oldPreset = mMasterImage.getPreset(); - ImagePreset copy = new ImagePreset(oldPreset); - - ImageFilter existingFilter = copy.getFilter(filter.getName()); - if (existingFilter == null) { - copy.add(filter); - } - existingFilter = copy.getFilter(filter.getName()); - mMasterImage.setPreset(copy, true); - mMasterImage.setCurrentFilter(existingFilter); - invalidateViews(); - } - @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { @@ -1018,31 +1044,31 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, private boolean mSaveToExtraUri = false; private boolean mSaveAsWallpaper = false; private boolean mReturnAsExtra = false; - private boolean outputted = false; + private boolean mOutputted = false; public void saveImage() { if (mCropExtras != null) { if (mCropExtras.getExtraOutput() != null) { mSaveToExtraUri = true; - outputted = true; + mOutputted = true; } if (mCropExtras.getSetAsWallpaper()) { mSaveAsWallpaper = true; - outputted = true; + mOutputted = true; } if (mCropExtras.getReturnData()) { mReturnAsExtra = true; - outputted = true; + mOutputted = true; } - if (outputted) { + if (mOutputted) { mImageShow.getImagePreset().mGeoData.setUseCropExtrasFlag(true); showSavingProgress(null); mImageShow.returnFilteredResult(this); } } - if (!outputted) { + if (!mOutputted) { if (mImageShow.hasModifications()) { // Get the name of the album, to which the image will be saved File saveDir = SaveCopyTask.getFinalSaveDirectory(this, mImageLoader.getUri()); @@ -1092,12 +1118,17 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, } public void done() { - if (outputted) { + if (mOutputted) { hideSavingProgress(); } finish(); } + private void setResources() { + ImageFilterBorder filterBorder = (ImageFilterBorder) FiltersManager.getManager().getFilter(ImageFilterBorder.class); + filterBorder.setResources(getResources()); + } + static { System.loadLibrary("jni_filtershow_filters"); } |