If the decoding fails, change the inSampleSize to 1.

Issue: Decoding an image whose inSampleSize is greater
than image width/height returns a invalid bitmap width,
height and config value
Fix: If decoding fails for an image whose inSampleSize
is greater than image width/height; decode the imagewith
inSampleSize=1

CRs-Fixed: 527315

(cherrypicked from: I578e362563f3c648b0a2427cf824198af31d2915)

Change-Id: I1fda51cc0489dc3821f76f8e2f122db7ca4f0b30
(cherry picked from commit 9dcaeca9c7d7c9b0ba9549beb90a418b74440d8b)
(cherry picked from commit 0a3f4414b215482971eb46046385cd2d674e22a2)
gallery: change typo '&&' to '||'

Assertion to ckeck array boundary should
be '&&' instead of '||'. It caused an
Exception that '-1' wasn't detected.

Change-Id: I991ad8efed87a0837d262fe7419c7f007c173b56
Signed-off-by: Leavitt Zhang <leavittz@nvidia.com>
Add WRITE_MEDIA_STORAGE permission

This fixes the issue where the images/pics are not
deleted from the android external 'SD Card' as android does not
allow writing to the external 'SD Card' with just the
WRITE_EXTERNAL_STORAGE permission.

Requires : https://gerrit.slimroms.net/#/c/2723

Change-Id: I34377160b8b8677abc3506d8aca72166b4129425