+ ImageView preview = (ImageView) getView().findViewById(R.id.fdPreview);\r
+ try {\r
+ if (mFile.getMimetype().startsWith("image/")) {\r
+ BitmapFactory.Options options = new Options();\r
+ options.inScaled = true;\r
+ options.inPurgeable = true;\r
+ if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD_MR1) {\r
+ options.inPreferQualityOverSpeed = false;\r
+ }\r
+ if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {\r
+ options.inMutable = false;\r
+ }\r
+\r
+ Bitmap bmp = BitmapFactory.decodeFile(mFile.getStoragePath(), options);\r
+\r
+ int width = options.outWidth;\r
+ int height = options.outHeight;\r
+ int scale = 1;\r
+ if (width >= 2048 || height >= 2048) {\r
+ scale = (int) (Math.ceil(Math.max(height, width)/2048.));\r
+ options.inSampleSize = scale;\r
+ bmp.recycle();\r
+\r
+ bmp = BitmapFactory.decodeFile(mFile.getStoragePath(), options);\r
+ }\r
+ preview.setImageBitmap(bmp);\r
+ }\r
+ } catch (OutOfMemoryError e) {\r
+ preview.setVisibility(View.INVISIBLE);\r
+ Log.e(TAG, "Out of memory occured for file with size " + mFile.getFileLength());\r
+ \r
+ } catch (NoSuchFieldError e) {\r
+ preview.setVisibility(View.INVISIBLE);\r
+ Log.e(TAG, "Error from access to unexisting field despite protection " + mFile.getFileLength());\r
+ \r
+ } catch (Throwable t) {\r
+ preview.setVisibility(View.INVISIBLE);\r
+ Log.e(TAG, "Unexpected error while creating image preview " + mFile.getFileLength());\r