From 962062894af8252ac5a5f24a0a7b0d0cc720343d Mon Sep 17 00:00:00 2001 From: Khalid Zubair Date: Wed, 18 May 2016 17:05:16 -0700 Subject: CropActivity: notify MediaScanner on save complete MediaScanner should be notified when a file is created or changed. Add an explicit call at the end of the async task writing saving the bitmap. Fixes FEIJ-479 where the cropped file was being shown as a 0 byte file over MTP. Change-Id: I2220654a75f502089f44e1cb24682b73516c43b0 --- src/com/android/camera/crop/CropActivity.java | 13 ++++++++++++- src/com/android/camera/crop/SaveImage.java | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/com/android/camera/crop/CropActivity.java b/src/com/android/camera/crop/CropActivity.java index 9c09b9a87..45455ccad 100644 --- a/src/com/android/camera/crop/CropActivity.java +++ b/src/com/android/camera/crop/CropActivity.java @@ -31,6 +31,7 @@ import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.Rect; import android.graphics.RectF; +import android.media.MediaScannerConnection; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; @@ -46,6 +47,7 @@ import org.codeaurora.snapcam.R; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; +import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; @@ -581,6 +583,16 @@ public class CropActivity extends Activity { } } } + + File dest = SaveImage.getLocalFileFromUri(CropActivity.this, mOutUri); + if (dest != null) { + MediaScannerConnection.scanFile( + CropActivity.this, + new String[] { dest.toString() }, + null /* no mimetype, let scanner guess */, + null /* no callback */); + } + return !failure; // True if any of the operations failed } @@ -590,7 +602,6 @@ public class CropActivity extends Activity { Utils.closeSilently(mInStream); doneBitmapIO(result.booleanValue(), mResultIntent); } - } private void done() { diff --git a/src/com/android/camera/crop/SaveImage.java b/src/com/android/camera/crop/SaveImage.java index f5e89de4b..1701fb6eb 100644 --- a/src/com/android/camera/crop/SaveImage.java +++ b/src/com/android/camera/crop/SaveImage.java @@ -385,7 +385,7 @@ public class SaveImage { * @return The file object. Return null if srcUri is invalid or not a local * file. */ - private static File getLocalFileFromUri(Context context, Uri srcUri) { + static File getLocalFileFromUri(Context context, Uri srcUri) { if (srcUri == null) { Log.e(LOGTAG, "srcUri is null."); return null; -- cgit v1.2.3