appModule.android.onActivityResult = (requestCode: number, resultCode: number, data: android.content.Intent) => { appModule.android.onActivityResult = previousResult; if (requestCode === REQUEST_IMAGE_CAPTURE && resultCode === android.app.Activity.RESULT_OK) { var options = new android.graphics.BitmapFactory.Options(); options.inJustDecodeBounds = true; android.graphics.BitmapFactory.decodeFile(tempPicturePath, options); var sampleSize = calculateInSampleSize(options.outWidth, options.outHeight, reqWidth, reqHeight); var finalBitmapOptions = new android.graphics.BitmapFactory.Options(); finalBitmapOptions.inSampleSize = sampleSize; var bitmap = android.graphics.BitmapFactory.decodeFile(tempPicturePath, finalBitmapOptions); var scaledSizeImage = null; if (reqHeight > 0 && reqWidth > 0) { if (shouldKeepAspectRatio) { var common: typeof cameraCommonModule = require("./camera-common"); var aspectSafeSize = common.getAspectSafeDimensions(bitmap.getWidth(), bitmap.getHeight(), reqWidth, reqHeight); scaledSizeImage = android.graphics.Bitmap.createScaledBitmap(bitmap, aspectSafeSize.width, aspectSafeSize.height, true); } else { scaledSizeImage = android.graphics.Bitmap.createScaledBitmap(bitmap, reqWidth, reqHeight, true); } } else { scaledSizeImage = bitmap; } var imageSource: typeof imageSourceModule = require("image-source"); resolve(imageSource.fromNativeSource(scaledSizeImage)); } };
appModule.android.onActivityResult = (requestCode: number, resultCode: number, data: android.content.Intent) => { appModule.android.onActivityResult = previousResult; if (requestCode === REQUEST_IMAGE_CAPTURE && resultCode === android.app.Activity.RESULT_OK) { var imageSource: typeof imageSourceModule = require("image-source"); if (saveToGallery) { resolve({image:imageSource.fromFile(picturePath) ,path:picturePath}); } else { var options = new android.graphics.BitmapFactory.Options(); options.inJustDecodeBounds = true; android.graphics.BitmapFactory.decodeFile(picturePath, options); var sampleSize = calculateInSampleSize(options.outWidth, options.outHeight, reqWidth, reqHeight); var finalBitmapOptions = new android.graphics.BitmapFactory.Options(); finalBitmapOptions.inSampleSize = sampleSize; var bitmap = android.graphics.BitmapFactory.decodeFile(picturePath, finalBitmapOptions); var scaledSizeImage = null; if (reqHeight > 0 && reqWidth > 0) { if (shouldKeepAspectRatio) { var common: typeof cameraCommonModule = require("./camera-common"); var aspectSafeSize = common.getAspectSafeDimensions(bitmap.getWidth(), bitmap.getHeight(), reqWidth, reqHeight); scaledSizeImage = android.graphics.Bitmap.createScaledBitmap(bitmap, aspectSafeSize.width, aspectSafeSize.height, true); } else { scaledSizeImage = android.graphics.Bitmap.createScaledBitmap(bitmap, reqWidth, reqHeight, true); } } else { scaledSizeImage = bitmap; } var ei = new android.media.ExifInterface(picturePath); var orientation = ei.getAttributeInt(android.media.ExifInterface.TAG_ORIENTATION, android.media.ExifInterface.ORIENTATION_NORMAL); switch (orientation) { case android.media.ExifInterface.ORIENTATION_ROTATE_90: scaledSizeImage = rotateBitmap(scaledSizeImage, 90); break; case android.media.ExifInterface.ORIENTATION_ROTATE_180: scaledSizeImage = rotateBitmap(scaledSizeImage, 180); break; case android.media.ExifInterface.ORIENTATION_ROTATE_270: scaledSizeImage = rotateBitmap(scaledSizeImage, 270); break; } resolve({image:imageSource.fromNativeSource(scaledSizeImage), path:picturePath}); } } };