diff options
Diffstat (limited to 'src/com/android/gallery3d/filtershow/FilterShowActivity.java')
-rw-r--r-- | src/com/android/gallery3d/filtershow/FilterShowActivity.java | 51 |
1 files changed, 31 insertions, 20 deletions
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java index 4394cdee5..c29709b91 100644 --- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java +++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java @@ -20,6 +20,7 @@ import android.app.ActionBar; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.ContentValues; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.ActivityInfo; @@ -27,6 +28,7 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Point; +import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.AsyncTask; @@ -111,7 +113,6 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL public static final String TINY_PLANET_ACTION = "com.android.camera.action.TINY_PLANET"; public static final String LAUNCH_FULLSCREEN = "launch-fullscreen"; - private ImageLoader mImageLoader = null; private ImageShow mImageShow = null; private View mSaveButton = null; @@ -251,7 +252,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL mEditorPlaceHolder.hide(); - mImageShow.setImageLoader(mImageLoader); + mImageShow.bindAsImageLoadListener(); fillFx(); fillBorders(); @@ -262,7 +263,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL } public void setupStatePanel() { - mImageLoader.setHistoryManager(mMasterImage.getHistory()); + MasterImage.getImage().setHistoryManager(mMasterImage.getHistory()); } private void fillFilters() { @@ -330,7 +331,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL mEditorPlaceHolder.setContainer((FrameLayout) findViewById(R.id.editorContainer)); EditorManager.addEditors(mEditorPlaceHolder); mEditorPlaceHolder.setOldViews(mImageViews); - mEditorPlaceHolder.setImageLoader(mImageLoader); + } private void fillEditors() { @@ -498,16 +499,29 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL private class LoadHighresBitmapTask extends AsyncTask<Void, Void, Boolean> { @Override protected Boolean doInBackground(Void... params) { - mImageLoader.loadHighResBitmap(); + MasterImage master = MasterImage.getImage(); + Rect originalBounds = master.getOriginalBounds(); + if (master.supportsHighRes()) { + int highresPreviewSize = master.getOriginalBitmapLarge().getWidth() * 2; + if (highresPreviewSize > originalBounds.width()) { + highresPreviewSize = originalBounds.width(); + } + Bitmap originalHires = ImageLoader.loadOrientedScaledBitmap(master, + master.getActivity(), master.getUri(), highresPreviewSize, false, + master.getOrientation()); + master.setOriginalBitmapHighres(originalHires); + master.warnListeners(); + } return true; } @Override protected void onPostExecute(Boolean result) { - Bitmap highresBitmap = mImageLoader.getOriginalBitmapHighres(); + Bitmap highresBitmap = MasterImage.getImage().getOriginalBitmapHighres(); if (highresBitmap != null) { FilteringPipeline pipeline = FilteringPipeline.getPipeline(); - float highResPreviewScale = (float) highresBitmap.getWidth() / (float) mImageLoader.getOriginalBounds().width(); + float highResPreviewScale = (float) highresBitmap.getWidth() + / (float) MasterImage.getImage().getOriginalBounds().width(); pipeline.setHighResPreviewScaleFactor(highResPreviewScale); } } @@ -522,10 +536,10 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL @Override protected Boolean doInBackground(Uri... params) { - if (!mImageLoader.loadBitmap(params[0], mBitmapSize)) { + if (!MasterImage.getImage().loadBitmap(params[0], mBitmapSize)) { return false; } - publishProgress(mImageLoader.queryLightCycle360()); + publishProgress(ImageLoader.queryLightCycle360(MasterImage.getImage().getActivity())); return true; } @@ -560,10 +574,11 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL final View imageShow = findViewById(R.id.imageShow); imageShow.setVisibility(View.VISIBLE); - Bitmap largeBitmap = mImageLoader.getOriginalBitmapLarge(); + Bitmap largeBitmap = MasterImage.getImage().getOriginalBitmapLarge(); FilteringPipeline pipeline = FilteringPipeline.getPipeline(); pipeline.setOriginal(largeBitmap); - float previewScale = (float) largeBitmap.getWidth() / (float) mImageLoader.getOriginalBounds().width(); + float previewScale = (float) largeBitmap.getWidth() + / (float) MasterImage.getImage().getOriginalBounds().width(); pipeline.setPreviewScaleFactor(previewScale); if (!mShowingTinyPlanet) { mCategoryFiltersAdapter.removeTinyPlanet(); @@ -698,7 +713,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.setType(SharedImageProvider.MIME_TYPE); - mSharedOutputFile = SaveCopyTask.getNewFile(this, mImageLoader.getUri()); + mSharedOutputFile = SaveCopyTask.getNewFile(this, MasterImage.getImage().getUri()); Uri uri = Uri.withAppendedPath(SharedImageProvider.CONTENT_URI, Uri.encode(mSharedOutputFile.getAbsolutePath())); intent.putExtra(Intent.EXTRA_STREAM, uri); @@ -752,16 +767,16 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL } FiltersManager.setResources(getResources()); if (!mLoading) { - Bitmap largeBitmap = mImageLoader.getOriginalBitmapLarge(); + Bitmap largeBitmap = MasterImage.getImage().getOriginalBitmapLarge(); FilteringPipeline pipeline = FilteringPipeline.getPipeline(); pipeline.setOriginal(largeBitmap); float previewScale = (float) largeBitmap.getWidth() / - (float) mImageLoader.getOriginalBounds().width(); + (float) MasterImage.getImage().getOriginalBounds().width(); pipeline.setPreviewScaleFactor(previewScale); - Bitmap highresBitmap = mImageLoader.getOriginalBitmapHighres(); + Bitmap highresBitmap = MasterImage.getImage().getOriginalBitmapHighres(); if (highresBitmap != null) { float highResPreviewScale = (float) highresBitmap.getWidth() / - (float) mImageLoader.getOriginalBounds().width(); + (float) MasterImage.getImage().getOriginalBounds().width(); pipeline.setHighResPreviewScaleFactor(highResPreviewScale); } pipeline.turnOnPipeline(true); @@ -847,8 +862,6 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL public void setDefaultPreset() { // Default preset (original) ImagePreset preset = new ImagePreset(); // empty - preset.setImageLoader(mImageLoader); - mMasterImage.setPreset(preset, preset.getLastRepresentation(), true); } @@ -905,7 +918,6 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL } public void setupMasterImage() { - mImageLoader = new ImageLoader(this, getApplicationContext()); HistoryManager historyManager = new HistoryManager(); StateAdapter imageStateAdapter = new StateAdapter(this, 0); @@ -914,7 +926,6 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL mMasterImage.setHistoryManager(historyManager); mMasterImage.setStateAdapter(imageStateAdapter); mMasterImage.setActivity(this); - mMasterImage.setImageLoader(mImageLoader); if (Runtime.getRuntime().maxMemory() > LIMIT_SUPPORTS_HIGHRES) { mMasterImage.setSupportsHighRes(true); |