summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorzdi <zdi@codeaurora.org>2016-03-23 12:34:19 +0800
committerzdi <zdi@codeaurora.org>2016-03-23 12:36:23 +0800
commitb7f894b19b83e9a91fa76dec002fff4125d514f3 (patch)
tree17dc0069f27875e196e4d5e3c3cee5e6e6c9ca57 /src
parent2c07233db1d15bc5cae3dc899cd1982693b7377b (diff)
downloadandroid_packages_apps_Gallery2-b7f894b19b83e9a91fa76dec002fff4125d514f3.tar.gz
android_packages_apps_Gallery2-b7f894b19b83e9a91fa76dec002fff4125d514f3.tar.bz2
android_packages_apps_Gallery2-b7f894b19b83e9a91fa76dec002fff4125d514f3.zip
Gallery2: Add judgement to avoid IndexOutOfBoundsException.
Add judgement to avoid IndexOutOfBoundsException in ClusterAlbumSet. Change-Id: I23965bc4b8a2eb6ce31c2327ea85581a8fe93f61 CRs-Fixed: 990061
Diffstat (limited to 'src')
-rw-r--r--src/com/android/gallery3d/data/ClusterAlbumSet.java21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/com/android/gallery3d/data/ClusterAlbumSet.java b/src/com/android/gallery3d/data/ClusterAlbumSet.java
index 97d5fbe13..4046a1595 100644
--- a/src/com/android/gallery3d/data/ClusterAlbumSet.java
+++ b/src/com/android/gallery3d/data/ClusterAlbumSet.java
@@ -232,15 +232,18 @@ public class ClusterAlbumSet extends MediaSet implements ContentListener {
int endAlbum = findTimelineAlbumIndex(start + count - 1);
int s;
int lCount;
- s = mAlbums.get(startAlbum).getTotalMediaItemCount() - (mAlbumItemCountList.get(startAlbum) - start);
- for (int i = startAlbum; i <= endAlbum && i < mAlbums.size(); ++i) {
- int albumCount = mAlbums.get(i).getTotalMediaItemCount();
- lCount = Math.min(albumCount - s, count);
- ArrayList<MediaItem> items = mAlbums.get(i).getMediaItem(s, lCount);
- if (items != null)
- mediaItems.addAll(items);
- count -= lCount;
- s = 0;
+ if (mAlbums.size() > 0 && mAlbumItemCountList.size() > 0) {
+ s = mAlbums.get(startAlbum).getTotalMediaItemCount() -
+ (mAlbumItemCountList.get(startAlbum) - start);
+ for (int i = startAlbum; i <= endAlbum && i < mAlbums.size(); ++i) {
+ int albumCount = mAlbums.get(i).getTotalMediaItemCount();
+ lCount = Math.min(albumCount - s, count);
+ ArrayList<MediaItem> items = mAlbums.get(i).getMediaItem(s, lCount);
+ if (items != null)
+ mediaItems.addAll(items);
+ count -= lCount;
+ s = 0;
+ }
}
return mediaItems;
}