am 93c6b617: Allow a session to know its content uri

* commit '93c6b617868b73b73199cf93216fec7002290f55':
  Allow a session to know its content uri
diff --git a/src/com/android/camera/session/CaptureSession.java b/src/com/android/camera/session/CaptureSession.java
index bc7698b..7ea7690 100644
--- a/src/com/android/camera/session/CaptureSession.java
+++ b/src/com/android/camera/session/CaptureSession.java
@@ -118,6 +118,14 @@
     public Uri getUri();
 
     /**
+     * Returns the Content URI to the final output of this session. This is only
+     * available if the session has been finished.
+     *
+     * Returns null if it has not been finished.
+     */
+    public Uri getContentUri();
+
+    /**
      * Whether this session already has a path. This is the case once it has
      * been started. False is returned, if the session has not been started yet
      * and no path is available
diff --git a/src/com/android/camera/session/CaptureSessionManagerImpl.java b/src/com/android/camera/session/CaptureSessionManagerImpl.java
index 5ae93fe..e071bff 100644
--- a/src/com/android/camera/session/CaptureSessionManagerImpl.java
+++ b/src/com/android/camera/session/CaptureSessionManagerImpl.java
@@ -25,20 +25,15 @@
 import android.os.Looper;
 import android.util.Log;
 
-import com.android.camera.Exif;
+import com.android.camera.Storage;
 import com.android.camera.app.MediaSaver;
 import com.android.camera.app.MediaSaver.OnMediaSavedListener;
 import com.android.camera.data.LocalData;
 import com.android.camera.exif.ExifInterface;
-import com.android.camera.exif.ExifTag;
-import com.android.camera.exif.Rational;
 import com.android.camera.util.FileUtil;
 
-import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
-import java.io.InputStream;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.Map;
@@ -66,6 +61,7 @@
         private CharSequence mProgressMessage;
         /** A place holder for this capture session. */
         private PlaceholderManager.Session mPlaceHolderSession;
+        private Uri mContentUri;
 
         /**
          * Creates a new {@link CaptureSession}.
@@ -163,8 +159,8 @@
             }
 
             // TODO: This needs to happen outside the UI thread.
-            mPlaceholderManager.finishPlaceholder(mPlaceHolderSession, mLocation, orientation, exif,
-                    data, width, height, LocalData.MIME_TYPE_JPEG);
+            mContentUri = mPlaceholderManager.finishPlaceholder(mPlaceHolderSession, mLocation,
+                    orientation, exif, data, width, height, LocalData.MIME_TYPE_JPEG);
 
             mNotificationManager.notifyCompletion(mNotificationId);
             removeSession(mUri.toString());
@@ -250,6 +246,11 @@
         }
 
         @Override
+        public Uri getContentUri() {
+            return mContentUri;
+        }
+
+        @Override
         public boolean hasPath() {
             return mUri != null;
         }
diff --git a/src/com/android/camera/session/PlaceholderManager.java b/src/com/android/camera/session/PlaceholderManager.java
index 91e0760..19dd4d6 100644
--- a/src/com/android/camera/session/PlaceholderManager.java
+++ b/src/com/android/camera/session/PlaceholderManager.java
@@ -99,13 +99,15 @@
      * @param width the width of the image
      * @param height the height of the image
      * @param mimeType the mime type of the image
+     * @return The content URI of the new media item.
      */
-    public void finishPlaceholder(Session session, Location location, int orientation,
-                                   ExifInterface exif, byte[] jpeg, int width, int height, String mimeType) {
+    public Uri finishPlaceholder(Session session, Location location, int orientation,
+                                 ExifInterface exif, byte[] jpeg, int width, int height, String mimeType) {
 
         Uri resultUri = Storage.updateImage(session.outputUri, mContext.getContentResolver(), session.outputTitle,
                 session.time, location, orientation, exif, jpeg, width, height, mimeType);
         CameraUtil.broadcastNewPicture(mContext, resultUri);
+        return resultUri;
     }
 
     /**