summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/gallery3d/app/PhotoPage.java5
-rw-r--r--src/com/android/gallery3d/data/LocalImage.java2
-rw-r--r--src/com/android/gallery3d/filtershow/cache/ImageLoader.java48
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterGradient.java5
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java14
-rw-r--r--src/com/android/gallery3d/ui/PhotoView.java16
6 files changed, 48 insertions, 42 deletions
diff --git a/src/com/android/gallery3d/app/PhotoPage.java b/src/com/android/gallery3d/app/PhotoPage.java
index 3c64fa32b..c60c3b9e2 100644
--- a/src/com/android/gallery3d/app/PhotoPage.java
+++ b/src/com/android/gallery3d/app/PhotoPage.java
@@ -578,8 +578,9 @@ public class PhotoPage extends ActivityState implements
}
Intent intent = new Intent(ACTION_NEXTGEN_EDIT);
- intent.setData(mActivity.getDataManager().getContentUri(current.getPath())).setFlags(
- Intent.FLAG_GRANT_READ_URI_PERMISSION);
+
+ intent.setDataAndType(current.getContentUri(), current.getMimeType())
+ .setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
if (mActivity.getPackageManager()
.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY).size() == 0) {
intent.setAction(Intent.ACTION_EDIT);
diff --git a/src/com/android/gallery3d/data/LocalImage.java b/src/com/android/gallery3d/data/LocalImage.java
index c19649c3e..ffcf9760a 100644
--- a/src/com/android/gallery3d/data/LocalImage.java
+++ b/src/com/android/gallery3d/data/LocalImage.java
@@ -249,6 +249,8 @@ public class LocalImage extends LocalMediaItem {
if (usePanoramaViewer()) {
operation |= SUPPORT_PANORAMA;
+ // disable destructive rotate for lightcycle panorama
+ operation &= ~SUPPORT_ROTATE;
}
return operation;
}
diff --git a/src/com/android/gallery3d/filtershow/cache/ImageLoader.java b/src/com/android/gallery3d/filtershow/cache/ImageLoader.java
index 100a17bf0..ac16c13cd 100644
--- a/src/com/android/gallery3d/filtershow/cache/ImageLoader.java
+++ b/src/com/android/gallery3d/filtershow/cache/ImageLoader.java
@@ -1,22 +1,7 @@
package com.android.gallery3d.filtershow.cache;
-import java.io.Closeable;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Vector;
-
-import com.android.gallery3d.common.Utils;
-import com.android.gallery3d.filtershow.FilterShowActivity;
-import com.android.gallery3d.filtershow.HistoryAdapter;
-import com.android.gallery3d.filtershow.imageshow.ImageShow;
-import com.android.gallery3d.filtershow.presets.ImagePreset;
-import com.android.gallery3d.filtershow.tools.SaveCopyTask;
-import com.android.gallery3d.filtershow.tools.ProcessedBitmap;
-import com.android.gallery3d.R;
-
+import android.content.ContentResolver;
import android.content.Context;
import android.content.res.Resources;
import android.database.Cursor;
@@ -29,6 +14,22 @@ import android.net.Uri;
import android.provider.MediaStore;
import android.util.Log;
+import com.android.gallery3d.R;
+import com.android.gallery3d.common.Utils;
+import com.android.gallery3d.filtershow.FilterShowActivity;
+import com.android.gallery3d.filtershow.HistoryAdapter;
+import com.android.gallery3d.filtershow.imageshow.ImageShow;
+import com.android.gallery3d.filtershow.presets.ImagePreset;
+import com.android.gallery3d.filtershow.tools.ProcessedBitmap;
+import com.android.gallery3d.filtershow.tools.SaveCopyTask;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Vector;
+
public class ImageLoader {
private static final String LOGTAG = "ImageLoader";
@@ -66,6 +67,10 @@ public class ImageLoader {
}
private int getOrientation(Uri uri) {
+ if (ContentResolver.SCHEME_FILE.equals(uri.getScheme())) {
+ return getOrientationFromPath(uri.getPath());
+ }
+
Cursor cursor = null;
try {
cursor = mContext.getContentResolver().query(uri,
@@ -73,17 +78,12 @@ public class ImageLoader {
MediaStore.Images.ImageColumns.ORIENTATION
},
null, null, null);
+ return cursor.moveToNext() ? cursor.getInt(0) : -1;
} catch (SQLiteException e){
- Utils.closeSilently(cursor);
return ExifInterface.ORIENTATION_UNDEFINED;
+ } finally {
+ Utils.closeSilently(cursor);
}
-
- if (cursor.getCount() != 1) {
- return -1;
- }
-
- cursor.moveToFirst();
- return cursor.getInt(0);
}
private int getOrientationFromPath(String path) {
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterGradient.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterGradient.java
index 4e46943fc..d27dd34b6 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterGradient.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterGradient.java
@@ -25,9 +25,8 @@ public class ImageFilterGradient extends ImageFilter {
@Override
public ImageFilter clone() throws CloneNotSupportedException {
ImageFilterGradient filter = (ImageFilterGradient) super.clone();
- for (int i = 0; i < mColors.length; i++) {
- filter.addColor(mColors[i], mPositions[i]);
- }
+ System.arraycopy(mColors, 0, filter.mColors, 0, mColors.length);
+ System.arraycopy(mPositions, 0, filter.mPositions, 0, mPositions.length);
return filter;
}
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java b/src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java
index fbc4666c0..c4f0456cb 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java
@@ -89,12 +89,19 @@ public class ImageStraighten extends ImageShow {
public void setActionUp() {
mMode = MODES.UP;
+ updatePreset();
}
public void setNoAction() {
mMode = MODES.NONE;
}
+ private void updatePreset() {
+ ImagePreset copy = new ImagePreset(getImagePreset());
+ copy.setStraightenRotation(mImageRotation, mImageRotationZoomFactor);
+ setImagePreset(copy);
+ }
+
public boolean onTouchEvent(MotionEvent event) {
switch (event.getActionMasked()) {
case (MotionEvent.ACTION_DOWN):
@@ -232,13 +239,6 @@ public class ImageStraighten extends ImageShow {
mImageRotationZoomFactor = (float) (rw / boundsRect.width());
- ImagePreset copy = new ImagePreset(getImagePreset());
- Log.v(LOGTAG, "creating a new image preset with rotation " + mImageRotation
- + " and zoom factor: " + mImageRotationZoomFactor);
-
- copy.setStraightenRotation(mImageRotation, mImageRotationZoomFactor);
- setImagePreset(copy);
-
if (mMode == MODES.MOVE) {
canvas.save();
canvas.clipPath(path);
diff --git a/src/com/android/gallery3d/ui/PhotoView.java b/src/com/android/gallery3d/ui/PhotoView.java
index 8c9c6d757..a5a15bf43 100644
--- a/src/com/android/gallery3d/ui/PhotoView.java
+++ b/src/com/android/gallery3d/ui/PhotoView.java
@@ -941,6 +941,8 @@ public class PhotoView extends GLView {
private int mDeltaY;
// The accumulated scaling change from a scaling gesture.
private float mAccScale;
+ // If an onFling happened after the last onDown
+ private boolean mHadFling;
@Override
public boolean onSingleTapUp(float x, float y) {
@@ -1059,6 +1061,7 @@ public class PhotoView extends GLView {
} else {
flingImages(velocityX, velocityY);
}
+ mHadFling = true;
return true;
}
@@ -1212,7 +1215,7 @@ public class PhotoView extends GLView {
} else {
mDownInScrolling = false;
}
-
+ mHadFling = false;
mScrolledAfterDown = false;
if (mFilmMode) {
int xi = (int) (x + 0.5f);
@@ -1256,8 +1259,11 @@ public class PhotoView extends GLView {
mIgnoreUpEvent = false;
return;
}
-
- snapback();
+ if (!mFilmMode || mHadFling) {
+ snapback();
+ } else {
+ snapToNeighborImage();
+ }
}
public void setSwipingEnabled(boolean enabled) {
@@ -1531,14 +1537,12 @@ public class PhotoView extends GLView {
private void snapback() {
if ((mHolding & ~HOLD_DELETE) != 0) return;
- if (!snapToNeighborImage()) {
+ if (mFilmMode || !snapToNeighborImage()) {
mPositionController.snapback();
}
}
private boolean snapToNeighborImage() {
- if (mFilmMode) return false;
-
Rect r = mPositionController.getPosition(0);
int viewW = getWidth();
// Setting the move threshold proportional to the width of the view