additional null pointer saftey checks

This commit is contained in:
iNPUTmice 2014-11-21 15:25:57 +01:00
parent de0b36fc78
commit 888475d4fe
1 changed files with 13 additions and 15 deletions

View File

@ -358,11 +358,13 @@ public class FileBackend {
} }
public Bitmap cropCenterSquare(Uri image, int size) { public Bitmap cropCenterSquare(Uri image, int size) {
if (image == null) {
return null;
}
try { try {
BitmapFactory.Options options = new BitmapFactory.Options(); BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = calcSampleSize(image, size); options.inSampleSize = calcSampleSize(image, size);
InputStream is = mXmppConnectionService.getContentResolver() InputStream is = mXmppConnectionService.getContentResolver().openInputStream(image);
.openInputStream(image);
Bitmap input = BitmapFactory.decodeStream(is, null, options); Bitmap input = BitmapFactory.decodeStream(is, null, options);
if (input == null) { if (input == null) {
return null; return null;
@ -379,12 +381,13 @@ public class FileBackend {
} }
public Bitmap cropCenter(Uri image, int newHeight, int newWidth) { public Bitmap cropCenter(Uri image, int newHeight, int newWidth) {
if (image == null) {
return null;
}
try { try {
BitmapFactory.Options options = new BitmapFactory.Options(); BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = calcSampleSize(image, options.inSampleSize = calcSampleSize(image,Math.max(newHeight, newWidth));
Math.max(newHeight, newWidth)); InputStream is = mXmppConnectionService.getContentResolver().openInputStream(image);
InputStream is = mXmppConnectionService.getContentResolver()
.openInputStream(image);
Bitmap source = BitmapFactory.decodeStream(is, null, options); Bitmap source = BitmapFactory.decodeStream(is, null, options);
int sourceWidth = source.getWidth(); int sourceWidth = source.getWidth();
@ -397,13 +400,10 @@ public class FileBackend {
float left = (newWidth - scaledWidth) / 2; float left = (newWidth - scaledWidth) / 2;
float top = (newHeight - scaledHeight) / 2; float top = (newHeight - scaledHeight) / 2;
RectF targetRect = new RectF(left, top, left + scaledWidth, top RectF targetRect = new RectF(left, top, left + scaledWidth, top + scaledHeight);
+ scaledHeight); Bitmap dest = Bitmap.createBitmap(newWidth, newHeight, source.getConfig());
Bitmap dest = Bitmap.createBitmap(newWidth, newHeight,
source.getConfig());
Canvas canvas = new Canvas(dest); Canvas canvas = new Canvas(dest);
canvas.drawBitmap(source, null, targetRect, null); canvas.drawBitmap(source, null, targetRect, null);
return dest; return dest;
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
return null; return null;
@ -429,12 +429,10 @@ public class FileBackend {
return output; return output;
} }
private int calcSampleSize(Uri image, int size) private int calcSampleSize(Uri image, int size) throws FileNotFoundException {
throws FileNotFoundException {
BitmapFactory.Options options = new BitmapFactory.Options(); BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true; options.inJustDecodeBounds = true;
BitmapFactory.decodeStream(mXmppConnectionService.getContentResolver() BitmapFactory.decodeStream(mXmppConnectionService.getContentResolver().openInputStream(image), null, options);
.openInputStream(image), null, options);
return calcSampleSize(options, size); return calcSampleSize(options, size);
} }