Merge "Refactoring common methods" into ub-launcher3-burnaby
diff --git a/WallpaperPicker/src/com/android/launcher3/WallpaperCropActivity.java b/WallpaperPicker/src/com/android/launcher3/WallpaperCropActivity.java
index 0ddb79e..a3a3c53 100644
--- a/WallpaperPicker/src/com/android/launcher3/WallpaperCropActivity.java
+++ b/WallpaperPicker/src/com/android/launcher3/WallpaperCropActivity.java
@@ -50,7 +50,6 @@
import com.android.photos.views.TiledImageRenderer.TileSource;
import java.util.Collections;
-import java.util.Iterator;
import java.util.Set;
import java.util.WeakHashMap;
@@ -170,17 +169,23 @@
@Override
public Bitmap forPixelCount(int count) {
+ Bitmap bitmapToReuse = null;
+ // Find the smallest bitmap that satisfies the pixel count limit
synchronized (mReusableBitmaps) {
- Iterator<Bitmap> itr = mReusableBitmaps.iterator();
- while (itr.hasNext()) {
- Bitmap b = itr.next();
- if (b.getWidth() * b.getHeight() >= count) {
- itr.remove();
- return b;
+ int currentBitmapSize = Integer.MAX_VALUE;
+ for (Bitmap b : mReusableBitmaps) {
+ int bitmapSize = b.getWidth() * b.getHeight();
+ if ((bitmapSize >= count) && (bitmapSize < currentBitmapSize)) {
+ bitmapToReuse = b;
+ currentBitmapSize = bitmapSize;
}
}
+
+ if (bitmapToReuse != null) {
+ mReusableBitmaps.remove(bitmapToReuse);
+ }
}
- return null;
+ return bitmapToReuse;
}
});
} catch (SecurityException securityException) {