You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by bo...@apache.org on 2012/03/12 21:30:31 UTC
android commit: Fixing CB-210 with patch and adding fix for CB-210
Updated Branches:
refs/heads/master f3c96ce1a -> 8a7af9376
Fixing CB-210 with patch and adding fix for CB-210
Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/commit/8a7af937
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/tree/8a7af937
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/diff/8a7af937
Branch: refs/heads/master
Commit: 8a7af937656c0e81256662824b0976bf596b7bff
Parents: f3c96ce
Author: Joe Bowser <bo...@apache.org>
Authored: Mon Mar 12 13:30:16 2012 -0700
Committer: Joe Bowser <bo...@apache.org>
Committed: Mon Mar 12 13:30:16 2012 -0700
----------------------------------------------------------------------
.../src/org/apache/cordova/CameraLauncher.java | 42 ++++++++++++---
framework/src/org/apache/cordova/FileTransfer.java | 5 ++-
2 files changed, 38 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/8a7af937/framework/src/org/apache/cordova/CameraLauncher.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/CameraLauncher.java b/framework/src/org/apache/cordova/CameraLauncher.java
index 4960f91..03cf1fb 100755
--- a/framework/src/org/apache/cordova/CameraLauncher.java
+++ b/framework/src/org/apache/cordova/CameraLauncher.java
@@ -39,6 +39,7 @@ import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
+import android.graphics.Matrix;
import android.graphics.Bitmap.CompressFormat;
import android.net.Uri;
import android.provider.MediaStore;
@@ -272,19 +273,24 @@ public class CameraLauncher extends Plugin {
// Get src and dest types from request code
int srcType = (requestCode/16) - 1;
int destType = (requestCode % 16) - 1;
+ int rotate = 0;
+ // Create an ExifHelper to save the exif data that is lost during compression
+ ExifHelper exif = new ExifHelper();
+ try {
+ if (this.encodingType == JPEG) {
+ exif.createInFile(DirectoryManager.getTempDirectoryPath(ctx.getContext()) + "/Pic.jpg");
+ exif.readExifData();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
// If CAMERA
if (srcType == CAMERA) {
// If image available
if (resultCode == Activity.RESULT_OK) {
try {
- // Create an ExifHelper to save the exif data that is lost during compression
- ExifHelper exif = new ExifHelper();
- if (this.encodingType == JPEG) {
- exif.createInFile(DirectoryManager.getTempDirectoryPath(ctx.getContext()) + "/Pic.jpg");
- exif.readExifData();
- }
-
// Read in bitmap of captured image
Bitmap bitmap;
try {
@@ -375,6 +381,20 @@ public class CameraLauncher extends Plugin {
if (destType == DATA_URL) {
try {
Bitmap bitmap = android.graphics.BitmapFactory.decodeStream(resolver.openInputStream(uri));
+ String[] cols = { MediaStore.Images.Media.ORIENTATION };
+ Cursor cursor = this.ctx.getContentResolver().query(intent.getData(),
+ cols,
+ null, null, null);
+ if (cursor != null) {
+ cursor.moveToPosition(0);
+ rotate = cursor.getInt(0);
+ cursor.close();
+ }
+ if (rotate != 0) {
+ Matrix matrix = new Matrix();
+ matrix.setRotate(rotate);
+ bitmap = bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
+ }
bitmap = scaleBitmap(bitmap);
this.processPicture(bitmap);
bitmap.recycle();
@@ -399,6 +419,12 @@ public class CameraLauncher extends Plugin {
bitmap.compress(Bitmap.CompressFormat.JPEG, this.mQuality, os);
os.close();
+ // Restore exif data to file
+ if (this.encodingType == JPEG) {
+ exif.createOutFile(FileUtils.getRealPathFromURI(uri, this.ctx));
+ exif.writeExifData();
+ }
+
bitmap.recycle();
bitmap = null;
@@ -497,4 +523,4 @@ public class CameraLauncher extends Plugin {
public void failPicture(String err) {
this.error(new PluginResult(PluginResult.Status.ERROR, err), this.callbackId);
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/8a7af937/framework/src/org/apache/cordova/FileTransfer.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/FileTransfer.java b/framework/src/org/apache/cordova/FileTransfer.java
index be0cbdb..05a950b 100644
--- a/framework/src/org/apache/cordova/FileTransfer.java
+++ b/framework/src/org/apache/cordova/FileTransfer.java
@@ -320,7 +320,10 @@ public class FileTransfer extends Plugin {
}
dos.writeBytes(LINE_START + BOUNDRY + LINE_END);
- dos.writeBytes("Content-Disposition: form-data; name=\"" + fileKey + "\";" + " filename=\"" + fileName +"\"" + LINE_END);
+ dos.writeBytes("Content-Disposition: form-data; name=\"" + fileKey + "\";" + " filename=\"");
+ //We don't want to chagne encoding, we just want this to write for all Unicode.
+ dos.write(fileName.getBytes("UTF-8"));
+ dos.writeBytes("\"" + LINE_END);
dos.writeBytes("Content-Type: " + mimeType + LINE_END);
dos.writeBytes(LINE_END);