diff options
12 files changed, 66 insertions, 42 deletions
diff --git a/src/com/android/gallery3d/app/GalleryAppImpl.java b/src/com/android/gallery3d/app/GalleryAppImpl.java index 443bc47ee..7b37f6f34 100644 --- a/src/com/android/gallery3d/app/GalleryAppImpl.java +++ b/src/com/android/gallery3d/app/GalleryAppImpl.java @@ -63,7 +63,9 @@ public class GalleryAppImpl extends Application implements GalleryApp { state, PackageManager.DONT_KILL_APP); mStitchingProgressManager = LightCycleHelper.createStitchingManagerInstance(this); - mStitchingProgressManager.addChangeListener(getDataManager()); + if (mStitchingProgressManager != null) { + mStitchingProgressManager.addChangeListener(getDataManager()); + } } @Override diff --git a/src/com/android/gallery3d/app/PhotoPage.java b/src/com/android/gallery3d/app/PhotoPage.java index bfe1d16de..fb4e88b2a 100644 --- a/src/com/android/gallery3d/app/PhotoPage.java +++ b/src/com/android/gallery3d/app/PhotoPage.java @@ -345,13 +345,22 @@ public class PhotoPage extends ActivityState implements mMediaSet.getMediaItemCount() > 1) { mPhotoView.switchToImage(1); } else { - mPhotoView.setFilmMode(false); + if (mAppBridge != null) mPhotoView.setFilmMode(false); stayedOnCamera = true; } if (stayedOnCamera) { - updateBars(); - updateCurrentPhoto(mModel.getMediaItem(0)); + if (mAppBridge == null) { + GalleryUtils.startCameraActivity(mActivity); + /* We got here by swiping from photo 1 to the + placeholder, so make it be the thing that + is in focus when the user presses back from + the camera app */ + mPhotoView.switchToImage(1); + } else { + updateBars(); + updateCurrentPhoto(mModel.getMediaItem(0)); + } } break; } @@ -579,6 +588,7 @@ public class PhotoPage extends ActivityState implements @Override public void onPictureCenter(boolean isCamera) { + isCamera = isCamera || (mInCameraRoll && mAppBridge == null); mPhotoView.setWantPictureCenterCallbacks(false); mHandler.removeMessages(MSG_ON_CAMERA_CENTER); mHandler.removeMessages(MSG_ON_PICTURE_CENTER); @@ -664,6 +674,11 @@ public class PhotoPage extends ActivityState implements .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); } + private void overrideTransitionToEditor() { + ((Activity) mActivity).overridePendingTransition(android.R.anim.slide_in_left, + android.R.anim.fade_out); + } + private void launchTinyPlanet() { // Deep link into tiny planet MediaItem current = mModel.getMediaItem(0); @@ -673,6 +688,7 @@ public class PhotoPage extends ActivityState implements .setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); mRecenterCameraOnResume = false; mActivity.startActivityForResult(intent, REQUEST_EDIT); + overrideTransitionToEditor(); } private void launchPhotoEditor() { @@ -693,6 +709,7 @@ public class PhotoPage extends ActivityState implements mRecenterCameraOnResume = false; ((Activity) mActivity).startActivityForResult(Intent.createChooser(intent, null), REQUEST_EDIT); + overrideTransitionToEditor(); } private void requestDeferredUpdate() { diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java index 3d968867f..7a7645a28 100644 --- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java +++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java @@ -558,7 +558,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, R.string.ffx_x_process }; - ImagePreset preset = new ImagePreset(); // empty + ImagePreset preset = new ImagePreset(getString(R.string.history_original)); // empty preset.setImageLoader(mImageLoader); ImageSmallFilter filter = new ImageSmallFilter(this); @@ -614,6 +614,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, ImageSmallFilter previousFilter = null; for (int i = 0; i < p; i++) { ImageSmallBorder filter = new ImageSmallBorder(this); + borders[i].setName(getString(R.string.borders)); filter.setImageFilter(borders[i]); filter.setController(this); filter.setBorder(true); diff --git a/src/com/android/gallery3d/filtershow/HistoryAdapter.java b/src/com/android/gallery3d/filtershow/HistoryAdapter.java index 684c2fc46..d938c5aa6 100644 --- a/src/com/android/gallery3d/filtershow/HistoryAdapter.java +++ b/src/com/android/gallery3d/filtershow/HistoryAdapter.java @@ -18,6 +18,11 @@ import java.util.Vector; public class HistoryAdapter extends ArrayAdapter<ImagePreset> { private static final String LOGTAG = "HistoryAdapter"; private int mCurrentPresetPosition = 0; + private String mBorders = null; + private String mCrop = null; + private String mRotate = null; + private String mStraighten = null; + private String mMirror = null; private MenuItem mUndoMenuItem = null; private MenuItem mRedoMenuItem = null; private MenuItem mResetMenuItem = null; @@ -25,6 +30,11 @@ public class HistoryAdapter extends ArrayAdapter<ImagePreset> { public HistoryAdapter(Context context, int resource, int textViewResourceId) { super(context, resource, textViewResourceId); FilterShowActivity activity = (FilterShowActivity) context; + mBorders = context.getString(R.string.borders); + mCrop = context.getString(R.string.crop); + mRotate = context.getString(R.string.rotate); + mStraighten = context.getString(R.string.straighten); + mMirror = context.getString(R.string.mirror); } public void setMenuItems(MenuItem undoItem, MenuItem redoItem, MenuItem resetItem) { @@ -176,17 +186,17 @@ public class HistoryAdapter extends ArrayAdapter<ImagePreset> { // TODO: use type of last filter, not a string, to discriminate. if (position == getCount() - 1) { typeView.setImageResource(R.drawable.ic_photoeditor_effects); - } else if (item.historyName().equalsIgnoreCase("Border")) { + } else if (item.historyName().equalsIgnoreCase(mBorders)) { typeView.setImageResource(R.drawable.ic_photoeditor_border); - } else if (item.historyName().equalsIgnoreCase("Straighten")) { + } else if (item.historyName().equalsIgnoreCase(mStraighten)) { typeView.setImageResource(R.drawable.ic_photoeditor_fix); - } else if (item.historyName().equalsIgnoreCase("Crop")) { + } else if (item.historyName().equalsIgnoreCase(mCrop)) { typeView.setImageResource(R.drawable.ic_photoeditor_fix); - } else if (item.historyName().equalsIgnoreCase("Rotation")) { + } else if (item.historyName().equalsIgnoreCase(mRotate)) { typeView.setImageResource(R.drawable.ic_photoeditor_fix); - } else if (item.historyName().equalsIgnoreCase("Mirror")) { + } else if (item.historyName().equalsIgnoreCase(mMirror)) { typeView.setImageResource(R.drawable.ic_photoeditor_fix); - } else if (item.isFx()) { + } else if (item.isFx()) { typeView.setImageResource(R.drawable.ic_photoeditor_effects); } else { typeView.setImageResource(R.drawable.ic_photoeditor_color); diff --git a/src/com/android/gallery3d/filtershow/PanelController.java b/src/com/android/gallery3d/filtershow/PanelController.java index 45ee235e2..2fbd831b6 100644 --- a/src/com/android/gallery3d/filtershow/PanelController.java +++ b/src/com/android/gallery3d/filtershow/PanelController.java @@ -490,6 +490,7 @@ public class PanelController implements OnClickListener { public ImageFilter setImagePreset(ImageFilter filter, String name) { ImagePreset copy = new ImagePreset(getImagePreset()); copy.add(filter); + copy.setHistoryName(name); copy.setIsFx(false); mMasterImage.setImagePreset(copy); return filter; diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java index 2c7ed2dd8..04057681f 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java @@ -63,21 +63,6 @@ public class ImageFilterGeometry extends ImageFilter { native protected void nativeApplyFilterStraighten(Bitmap src, int srcWidth, int srcHeight, Bitmap dst, int dstWidth, int dstHeight, float straightenAngle); - public Matrix buildMatrix(RectF r) { - float dx = r.width() / 2; - float dy = r.height() / 2; - if (mGeometry.hasSwitchedWidthHeight()) { - float temp = dx; - dx = dy; - dy = temp; - } - float w = r.left * 2 + r.width(); - float h = r.top * 2 + r.height(); - Matrix m = mGeometry.buildGeometryMatrix(w, h, 1f, dx, dy, false); - - return m; - } - @Override public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) { // TODO: implement bilinear or bicubic here... for now, just use @@ -94,16 +79,12 @@ public class ImageFilterGeometry extends ImageFilter { temp = Bitmap.createBitmap(cropBounds.width(), cropBounds.height(), mConfig); } - Matrix drawMatrix = buildMatrix(crop); - /* RectF rp = mGeometry.getPhotoBounds(); RectF rc = mGeometry.getPreviewCropBounds(); - // TODO: fix this method instead of calling the above buildMatrix() Matrix drawMatrix = mGeometry.buildTotalXform(rp.width(), rp.height(), rc.width(), rc.height(), rc.left, rc.top, mGeometry.getRotation(), mGeometry.getStraightenRotation(), bitmap.getWidth() / rp.width(), null); - */ Canvas canvas = new Canvas(temp); Paint paint = new Paint(); paint.setAntiAlias(true); diff --git a/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java b/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java index 666eff99e..58c6f6fde 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java +++ b/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java @@ -242,18 +242,20 @@ public class GeometryMetadata { public Matrix buildTotalXform(float pwidth, float pheight, float cwidth, float cheight, float cleft, float ctop, float rotation, float straighten, float scale, RectF dst) { - Matrix m = getFlipMatrix(pwidth, pheight); - m.postRotate(rotation + straighten, pwidth / 2, pheight / 2); - Matrix m1 = new Matrix(); - m1.setRotate(rotation, pwidth / 2, pheight / 2); + float s_pwidth = pwidth * scale; + float s_pheight = pheight * scale; + Matrix m = getFlipMatrix(s_pwidth, s_pheight); + m.postRotate(rotation + straighten, s_pwidth / 2, s_pheight / 2); + Matrix m1 = getFlipMatrix(s_pwidth, s_pheight); + m1.postRotate(rotation, s_pwidth / 2, s_pheight / 2); // find new top left for crop. - RectF crop = new RectF(cleft, ctop, cleft + cwidth, ctop + cheight); + RectF crop = new RectF(cleft * scale, ctop * scale, (cleft + cwidth) * scale, + (ctop + cheight) * scale); if (!m1.mapRect(crop)) return null; if (dst != null) dst.set(crop); m.postTranslate(-crop.left, -crop.top); - m.postScale(scale, scale); return m; } } diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageCrop.java b/src/com/android/gallery3d/filtershow/imageshow/ImageCrop.java index a57868ce9..c740977bb 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/ImageCrop.java +++ b/src/com/android/gallery3d/filtershow/imageshow/ImageCrop.java @@ -87,7 +87,7 @@ public class ImageCrop extends ImageGeometry { @Override public String getName() { - return "Crop"; + return getContext().getString(R.string.crop); } private boolean switchCropBounds(int moving_corner, RectF dst) { diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageFlip.java b/src/com/android/gallery3d/filtershow/imageshow/ImageFlip.java index f6cd9b7e2..931ef86d2 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/ImageFlip.java +++ b/src/com/android/gallery3d/filtershow/imageshow/ImageFlip.java @@ -23,6 +23,7 @@ import android.graphics.Paint; import android.graphics.RectF; import android.util.AttributeSet; +import com.android.gallery3d.R; import com.android.gallery3d.filtershow.imageshow.GeometryMetadata.FLIP; public class ImageFlip extends ImageGeometry { @@ -42,7 +43,7 @@ public class ImageFlip extends ImageGeometry { @Override public String getName() { - return "Mirror"; + return getContext().getString(R.string.mirror); } @Override diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageRotate.java b/src/com/android/gallery3d/filtershow/imageshow/ImageRotate.java index c88e51d76..0d458ca45 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/ImageRotate.java +++ b/src/com/android/gallery3d/filtershow/imageshow/ImageRotate.java @@ -22,6 +22,8 @@ import android.graphics.Canvas; import android.graphics.Paint; import android.util.AttributeSet; +import com.android.gallery3d.R; + public class ImageRotate extends ImageGeometry { private float mBaseAngle = 0; @@ -40,7 +42,7 @@ public class ImageRotate extends ImageGeometry { @Override public String getName() { - return "Rotation"; + return getContext().getString(R.string.rotate); } private static final Paint gPaint = new Paint(); diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java b/src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java index 4f29c0f81..0f70b23ed 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java +++ b/src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java @@ -24,6 +24,8 @@ import android.graphics.Path; import android.graphics.RectF; import android.util.AttributeSet; +import com.android.gallery3d.R; + public class ImageStraighten extends ImageGeometry { private float mBaseAngle = 0; @@ -42,7 +44,7 @@ public class ImageStraighten extends ImageGeometry { @Override public String getName() { - return "Straighten"; + return getContext().getString(R.string.straighten); } @Override diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java index 83e7c129a..cbb14300d 100644 --- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java +++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java @@ -24,7 +24,7 @@ public class ImagePreset { protected Vector<ImageFilter> mFilters = new Vector<ImageFilter>(); protected String mName = "Original"; - protected String mHistoryName = "Original"; + private String mHistoryName = "Original"; protected boolean mIsFxPreset = false; public final GeometryMetadata mGeoData = new GeometryMetadata(); @@ -37,6 +37,11 @@ public class ImagePreset { setup(); } + public ImagePreset(String historyName) { + setHistoryName(historyName); + setup(); + } + public ImagePreset(ImagePreset source, String historyName) { this(source); if (historyName != null) { @@ -172,7 +177,7 @@ public class ImagePreset { public void add(ImageFilter filter) { if (filter.getFilterType() == ImageFilter.TYPE_BORDER) { - setHistoryName("Border"); + setHistoryName(filter.getName()); setBorder(filter); } else if (filter.getFilterType() == ImageFilter.TYPE_FX) { boolean found = false; |