@Override public int compare(PagePart part1, PagePart part2) { if (part1.getCacheOrder() == part2.getCacheOrder()) { return 0; } return part1.getCacheOrder() > part2.getCacheOrder() ? 1 : -1; }
private PagePart find(PriorityQueue<PagePart> vector, PagePart fakePart) { for (PagePart part : vector) { if (part.equals(fakePart)) { return part; } } return null; }
/** Return true if already contains the described PagePart */ public boolean containsThumbnail( int userPage, int page, float width, float height, RectF pageRelativeBounds) { PagePart fakePart = new PagePart(userPage, page, null, width, height, pageRelativeBounds, true, 0); for (PagePart part : thumbnails) { if (part.equals(fakePart)) { return true; } } return false; }
public boolean upPartIfContained( int userPage, int page, float width, float height, RectF pageRelativeBounds, int toOrder) { PagePart fakePart = new PagePart(userPage, page, null, width, height, pageRelativeBounds, false, 0); PagePart found; if ((found = find(passiveCache, fakePart)) != null) { passiveCache.remove(found); found.setCacheOrder(toOrder); activeCache.offer(found); return true; } return find(activeCache, fakePart) != null; }
public void recycle() { for (PagePart part : activeCache) { part.getRenderedBitmap().recycle(); } for (PagePart part : activeCache) { part.getRenderedBitmap().recycle(); } for (PagePart part : thumbnails) { part.getRenderedBitmap().recycle(); } passiveCache.clear(); activeCache.clear(); thumbnails.clear(); }