diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2014-01-21 23:10:19 +0100 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2014-01-21 23:10:19 +0100 |
| commit | f05142340937c67fdab567c168194c7562a7e3e8 (patch) | |
| tree | 386b1da8d64a749330f407395c6b2fe318a44ac4 /main/src/cgeo/geocaching/ImageSelectActivity.java | |
| parent | fee3f89e7e4bca33c05b5a88f0295cea752b3106 (diff) | |
| download | cgeo-f05142340937c67fdab567c168194c7562a7e3e8.zip cgeo-f05142340937c67fdab567c168194c7562a7e3e8.tar.gz cgeo-f05142340937c67fdab567c168194c7562a7e3e8.tar.bz2 | |
fix #3559: add picture to log fails on KitKat
Diffstat (limited to 'main/src/cgeo/geocaching/ImageSelectActivity.java')
| -rw-r--r-- | main/src/cgeo/geocaching/ImageSelectActivity.java | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/main/src/cgeo/geocaching/ImageSelectActivity.java b/main/src/cgeo/geocaching/ImageSelectActivity.java index 9e0a37d..2fd7fb9 100644 --- a/main/src/cgeo/geocaching/ImageSelectActivity.java +++ b/main/src/cgeo/geocaching/ImageSelectActivity.java @@ -4,10 +4,12 @@ import butterknife.ButterKnife; import butterknife.InjectView; import cgeo.geocaching.activity.AbstractActivity; +import cgeo.geocaching.files.LocalStorage; import cgeo.geocaching.settings.Settings; import cgeo.geocaching.utils.ImageUtils; import cgeo.geocaching.utils.Log; +import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.eclipse.jdt.annotation.Nullable; @@ -15,6 +17,8 @@ import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.net.Uri; +import android.os.Build; +import android.os.Build.VERSION_CODES; import android.os.Bundle; import android.provider.MediaStore; import android.provider.MediaStore.MediaColumns; @@ -27,6 +31,10 @@ import android.widget.ImageView; import android.widget.Spinner; import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; public class ImageSelectActivity extends AbstractActivity { @@ -216,8 +224,8 @@ public class ImageSelectActivity extends AbstractActivity { return; } - if (data != null) { - Uri selectedImage = data.getData(); + final Uri selectedImage = data.getData(); + if (Build.VERSION.SDK_INT < VERSION_CODES.KITKAT) { String[] filePathColumn = { MediaColumns.DATA }; Cursor cursor = null; @@ -247,7 +255,20 @@ public class ImageSelectActivity extends AbstractActivity { Log.d("SELECT IMAGE data = " + data.toString()); } else { - Log.d("SELECT IMAGE data is null"); + InputStream input = null; + OutputStream output = null; + try { + input = getContentResolver().openInputStream(selectedImage); + final File outputFile = ImageUtils.getOutputImageFile(); + output = new FileOutputStream(outputFile); + LocalStorage.copy(input, output); + imageUri = Uri.fromFile(outputFile); + } catch (FileNotFoundException e) { + Log.e("ImageSelectActivity.onStartResult", e); + } finally { + IOUtils.closeQuietly(input); + IOUtils.closeQuietly(output); + } } if (requestCode == SELECT_NEW_IMAGE) { |
