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});

                        }
                    }
                };