Reconcile with ics-mr1-release
Change-Id: I1693539643fe35d4ffc893bf9b5444fd416756f2
diff --git a/gallerycommon/src/com/android/gallery3d/common/FileCache.java b/gallerycommon/src/com/android/gallery3d/common/FileCache.java
index a69d6e1..86a1955 100644
--- a/gallerycommon/src/com/android/gallery3d/common/FileCache.java
+++ b/gallerycommon/src/com/android/gallery3d/common/FileCache.java
@@ -16,8 +16,6 @@
package com.android.gallery3d.common;
-import com.android.gallery3d.common.Entry.Table;
-
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
@@ -25,6 +23,8 @@
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
+import com.android.gallery3d.common.Entry.Table;
+
import java.io.File;
import java.io.IOException;
diff --git a/src/com/android/gallery3d/app/AlbumSetPage.java b/src/com/android/gallery3d/app/AlbumSetPage.java
index c31e920..fb26fc6 100644
--- a/src/com/android/gallery3d/app/AlbumSetPage.java
+++ b/src/com/android/gallery3d/app/AlbumSetPage.java
@@ -443,6 +443,7 @@
}
}
+ FilterUtils.setupMenuItems(actionBar, mMediaSet.getPath(), false);
MenuItem switchCamera = menu.findItem(R.id.action_camera);
if (switchCamera != null) {
switchCamera.setVisible(GalleryUtils.isCameraAvailable(activity));
diff --git a/src/com/android/gallery3d/app/GalleryActionBar.java b/src/com/android/gallery3d/app/GalleryActionBar.java
index 98a35a1..717f16c 100644
--- a/src/com/android/gallery3d/app/GalleryActionBar.java
+++ b/src/com/android/gallery3d/app/GalleryActionBar.java
@@ -228,7 +228,7 @@
public boolean setSelectedAction(int type) {
for (int i = 0, n = sClusterItems.length; i < n; i++) {
ActionItem item = sClusterItems[i];
- if (item.visible && item.action == type) {
+ if (item.action == type) {
mActionBar.setSelectedNavigationItem(i);
mCurrentIndex = i;
return true;
diff --git a/src/com/android/gallery3d/app/PhotoPage.java b/src/com/android/gallery3d/app/PhotoPage.java
index ec7d161..5d0fd15 100644
--- a/src/com/android/gallery3d/app/PhotoPage.java
+++ b/src/com/android/gallery3d/app/PhotoPage.java
@@ -17,8 +17,8 @@
package com.android.gallery3d.app;
import android.app.ActionBar;
-import android.app.Activity;
import android.app.ActionBar.OnMenuVisibilityListener;
+import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
@@ -30,8 +30,8 @@
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
-import android.view.WindowManager;
import android.view.View.MeasureSpec;
+import android.view.WindowManager;
import android.widget.ShareActionProvider;
import android.widget.Toast;
@@ -344,6 +344,7 @@
}
}
+ @Override
public void onUserInteraction() {
showBars();
refreshHidingMessage();
@@ -359,15 +360,21 @@
}
}
+ @Override
public void onUserInteractionBegin() {
showBars();
mIsInteracting = true;
refreshHidingMessage();
}
+ @Override
public void onUserInteractionEnd() {
mIsInteracting = false;
- refreshHidingMessage();
+
+ // This function could be called from GL thread (in SlotView.render)
+ // and post to the main thread. So, it could be executed while the
+ // activity is paused.
+ if (mIsActive) refreshHidingMessage();
}
@Override
diff --git a/src/com/android/gallery3d/data/LocalAlbum.java b/src/com/android/gallery3d/data/LocalAlbum.java
index 5bd4398..28364cb 100644
--- a/src/com/android/gallery3d/data/LocalAlbum.java
+++ b/src/com/android/gallery3d/data/LocalAlbum.java
@@ -16,11 +16,14 @@
package com.android.gallery3d.data;
+import com.android.gallery3d.R;
import com.android.gallery3d.app.GalleryApp;
import com.android.gallery3d.common.Utils;
import com.android.gallery3d.util.GalleryUtils;
+import com.android.gallery3d.util.MediaSetUtils;
import android.content.ContentResolver;
+import android.content.res.Resources;
import android.database.Cursor;
import android.net.Uri;
import android.provider.MediaStore.Images;
@@ -45,7 +48,7 @@
private final GalleryApp mApplication;
private final ContentResolver mResolver;
private final int mBucketId;
- private final String mBucketName;
+ private final String mName;
private final boolean mIsImage;
private final ChangeNotifier mNotifier;
private final Path mItemPath;
@@ -57,7 +60,7 @@
mApplication = application;
mResolver = application.getContentResolver();
mBucketId = bucketId;
- mBucketName = name;
+ mName = getLocalizedName(application.getResources(), bucketId, name);
mIsImage = isImage;
if (isImage) {
@@ -221,7 +224,7 @@
@Override
public String getName() {
- return mBucketName;
+ return mName;
}
@Override
@@ -249,4 +252,19 @@
public boolean isLeafAlbum() {
return true;
}
+
+ private static String getLocalizedName(Resources res, int bucketId,
+ String name) {
+ if (bucketId == MediaSetUtils.CAMERA_BUCKET_ID) {
+ return res.getString(R.string.folder_camera);
+ } else if (bucketId == MediaSetUtils.DOWNLOAD_BUCKET_ID) {
+ return res.getString(R.string.folder_download);
+ } else if (bucketId == MediaSetUtils.IMPORTED_BUCKET_ID) {
+ return res.getString(R.string.folder_imported);
+ } else if (bucketId == MediaSetUtils.SNAPSHOT_BUCKET_ID) {
+ return res.getString(R.string.folder_screenshot);
+ } else {
+ return name;
+ }
+ }
}
diff --git a/src/com/android/gallery3d/ui/ScrollerHelper.java b/src/com/android/gallery3d/ui/ScrollerHelper.java
index 8423518..0fa85ee 100644
--- a/src/com/android/gallery3d/ui/ScrollerHelper.java
+++ b/src/com/android/gallery3d/ui/ScrollerHelper.java
@@ -84,7 +84,8 @@
// Returns the distance that over the scroll limit.
public int startScroll(int distance, int min, int max) {
int currPosition = mScroller.getCurrX();
- int finalPosition = mScroller.getFinalX();
+ int finalPosition = mScroller.isFinished() ? currPosition :
+ mScroller.getFinalX();
int newPosition = Utils.clamp(finalPosition + distance, min, max);
if (newPosition != currPosition) {
mScroller.startScroll(
diff --git a/src/com/android/gallery3d/ui/SlotView.java b/src/com/android/gallery3d/ui/SlotView.java
index a6e94d2..3e0e2f2 100644
--- a/src/com/android/gallery3d/ui/SlotView.java
+++ b/src/com/android/gallery3d/ui/SlotView.java
@@ -18,6 +18,7 @@
import android.content.Context;
import android.graphics.Rect;
+import android.os.Handler;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.animation.DecelerateInterpolator;
@@ -81,6 +82,7 @@
// whether the down action happened while the view is scrolling.
private boolean mDownInScrolling;
private int mOverscrollEffect = OVERSCROLL_3D;
+ private final Handler mHandler;
public static final int OVERSCROLL_3D = 0;
public static final int OVERSCROLL_SYSTEM = 1;
@@ -90,6 +92,7 @@
mGestureDetector =
new GestureDetector(context, new MyGestureListener());
mScroller = new ScrollerHelper(context);
+ mHandler = new Handler(context.getMainLooper());
}
public void setCenterIndex(int index) {
@@ -323,8 +326,15 @@
}
if (more) invalidate();
- if (mMoreAnimation && !more && mUIListener != null) {
- mUIListener.onUserInteractionEnd();
+
+ final UserInteractionListener listener = mUIListener;
+ if (mMoreAnimation && !more && listener != null) {
+ mHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ listener.onUserInteractionEnd();
+ }
+ });
}
mMoreAnimation = more;
}
diff --git a/src/com/android/gallery3d/util/MediaSetUtils.java b/src/com/android/gallery3d/util/MediaSetUtils.java
index 817ffed..8a556aa 100644
--- a/src/com/android/gallery3d/util/MediaSetUtils.java
+++ b/src/com/android/gallery3d/util/MediaSetUtils.java
@@ -34,6 +34,9 @@
public static final int IMPORTED_BUCKET_ID = GalleryUtils.getBucketId(
Environment.getExternalStorageDirectory().toString() + "/"
+ MtpContext.NAME_IMPORTED_FOLDER);
+ public static final int SNAPSHOT_BUCKET_ID = GalleryUtils.getBucketId(
+ Environment.getExternalStorageDirectory().toString() +
+ "/Pictures/Screenshots");
private static final Path[] CAMERA_PATHS = {
Path.fromString("/local/all/" + CAMERA_BUCKET_ID),