aboutsummaryrefslogtreecommitdiffstats
path: root/main/src
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2014-01-21 23:12:34 +0100
committerSamuel Tardieu <sam@rfc1149.net>2014-01-21 23:12:34 +0100
commit35710025f399c56308de3ff661a0d4ec8a2048b5 (patch)
tree1eed49b97f4bd7d1010b0149092e9579fed15193 /main/src
parentf9e79b08ff25461b9a8f5d7e8d4a564f1f614562 (diff)
parentf05142340937c67fdab567c168194c7562a7e3e8 (diff)
downloadcgeo-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.java27
-rw-r--r--main/src/cgeo/geocaching/files/LocalStorage.java2
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];