Show stitched panorama in secure album.
bug:7285105
Change-Id: I36801d4e5b19cceb10600d41a3a3c78244c5ee4a
diff --git a/src/com/android/gallery3d/app/StitchingChangeListener.java b/src/com/android/gallery3d/app/StitchingChangeListener.java
index 901f379..980f145 100644
--- a/src/com/android/gallery3d/app/StitchingChangeListener.java
+++ b/src/com/android/gallery3d/app/StitchingChangeListener.java
@@ -16,11 +16,12 @@
package com.android.gallery3d.app;
+import android.net.Uri;
public interface StitchingChangeListener {
- public void onFileAdded(String filePath);
+ public void onStitchingQueued(String filePath);
- public void onFileRemoved(String filePath);
+ public void onStitchingResult(String filePath, Uri uri);
- public void onProgressChanged(String filePath, int progress);
+ public void onStitchingProgress(String filePath, int progress);
}
diff --git a/src/com/android/gallery3d/data/SecureAlbum.java b/src/com/android/gallery3d/data/SecureAlbum.java
index b841df7..382de5b 100644
--- a/src/com/android/gallery3d/data/SecureAlbum.java
+++ b/src/com/android/gallery3d/data/SecureAlbum.java
@@ -24,12 +24,13 @@
import android.provider.MediaStore.Video;
import com.android.gallery3d.app.GalleryApp;
+import com.android.gallery3d.app.StitchingChangeListener;
import com.android.gallery3d.util.MediaSetUtils;
import java.util.ArrayList;
// This class lists all media items added by the client.
-public class SecureAlbum extends MediaSet {
+public class SecureAlbum extends MediaSet implements StitchingChangeListener {
@SuppressWarnings("unused")
private static final String TAG = "SecureAlbum";
private static final String[] PROJECTION = {MediaColumns._ID};
@@ -42,6 +43,7 @@
// The types of items in mAllItems. True is video and false is image.
private ArrayList<Boolean> mAllItemTypes = new ArrayList<Boolean>();
private ArrayList<Path> mExistingItems = new ArrayList<Path>();
+ private ArrayList<String> mStitchingFilePaths = new ArrayList<String>();
private Context mContext;
private DataManager mDataManager;
private static final Uri[] mWatchUris =
@@ -60,6 +62,7 @@
mUnlockItem = unlock;
mShowUnlockItem = (!isCameraBucketEmpty(Images.Media.EXTERNAL_CONTENT_URI)
|| !isCameraBucketEmpty(Video.Media.EXTERNAL_CONTENT_URI));
+ application.getStitchingProgressManager().addChangeListener(this);
}
public void addMediaItem(boolean isVideo, int id) {
@@ -178,4 +181,21 @@
public boolean isLeafAlbum() {
return true;
}
+
+ @Override
+ public void onStitchingQueued(String filePath) {
+ mStitchingFilePaths.add(filePath);
+ }
+
+ @Override
+ public void onStitchingResult(String filePath, Uri uri) {
+ if (mStitchingFilePaths.remove(filePath)) {
+ int id = Integer.parseInt(uri.getLastPathSegment());
+ addMediaItem(false, id);
+ }
+ }
+
+ @Override
+ public void onStitchingProgress(String filePath, int progress) {
+ }
}