diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2014-01-21 23:12:34 +0100 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2014-01-21 23:12:34 +0100 |
| commit | 35710025f399c56308de3ff661a0d4ec8a2048b5 (patch) | |
| tree | 1eed49b97f4bd7d1010b0149092e9579fed15193 /main/src | |
| parent | f9e79b08ff25461b9a8f5d7e8d4a564f1f614562 (diff) | |
| parent | f05142340937c67fdab567c168194c7562a7e3e8 (diff) | |
| download | cgeo-35710025f399c56308de3ff661a0d4ec8a2048b5.zip cgeo-35710025f399c56308de3ff661a0d4ec8a2048b5.tar.gz cgeo-35710025f399c56308de3ff661a0d4ec8a2048b5.tar.bz2 | |
Merge branch 'release' into upstream
Diffstat (limited to 'main/src')
| -rw-r--r-- | main/src/cgeo/geocaching/ImageSelectActivity.java | 27 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/files/LocalStorage.java | 2 |
2 files changed, 25 insertions, 4 deletions
diff --git a/main/src/cgeo/geocaching/ImageSelectActivity.java b/main/src/cgeo/geocaching/ImageSelectActivity.java index a9230c9..d6d32ec 100644 --- a/main/src/cgeo/geocaching/ImageSelectActivity.java +++ b/main/src/cgeo/geocaching/ImageSelectActivity.java @@ -4,11 +4,13 @@ import butterknife.ButterKnife; import butterknife.InjectView; import cgeo.geocaching.activity.AbstractActivity; +import cgeo.geocaching.files.LocalStorage; import cgeo.geocaching.settings.Settings; import cgeo.geocaching.ui.dialog.Dialogs; 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; @@ -16,6 +18,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; @@ -28,6 +32,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 { @@ -219,8 +227,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; @@ -250,7 +258,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) { diff --git a/main/src/cgeo/geocaching/files/LocalStorage.java b/main/src/cgeo/geocaching/files/LocalStorage.java index 3dcb200..626f6e6 100644 --- a/main/src/cgeo/geocaching/files/LocalStorage.java +++ b/main/src/cgeo/geocaching/files/LocalStorage.java @@ -335,7 +335,7 @@ public final class LocalStorage { return copyDone; } - private static boolean copy(final InputStream input, final OutputStream output) { + public static boolean copy(final InputStream input, final OutputStream output) { try { int length; final byte[] buffer = new byte[4096]; |
