package in.srain.cube.image; public class ImageLoadRequest { public String mUrl; private int mViewWidth; private int mViewHeight; private int mSpecifiedWidth; private int mSpecifiedHeight; private int mPriority; private ImageReuseInfo mImageReuseInfo; private static final int AUTO_DECIDE_LOAD_SIZE = 0x01; private int mFlag = AUTO_DECIDE_LOAD_SIZE; public static ImageLoadRequest create(String url) { ImageLoadRequest request = new ImageLoadRequest(url); return request; } public ImageLoadRequest(String url, int specifiedWidth, int specifiedHeight, int priority, ImageReuseInfo reuseInfo) { mUrl = url; mSpecifiedWidth = specifiedWidth; mSpecifiedHeight = specifiedHeight; mPriority = priority; mImageReuseInfo = reuseInfo; } public ImageLoadRequest(String url) { mUrl = url; } public ImageLoadRequest(String url, int priority) { mUrl = url; mPriority = priority; } public int getRequestWidth() { if (mSpecifiedWidth != 0) { return mSpecifiedWidth; } return mViewWidth; } public ImageLoadRequest setLayoutSize(int w, int h) { mViewWidth = w; mViewHeight = h; return this; } public String getUrl() { return mUrl; } public int getPriority() { return mPriority; } public ImageReuseInfo getImageReuseInfo() { return mImageReuseInfo; } public int getRequestHeight() { if (mSpecifiedHeight != 0) { return mSpecifiedHeight; } return mViewHeight; } public ImageLoadRequest setAutoDecideLoadSize(boolean autoDecideSize) { if (autoDecideSize) { mFlag |= AUTO_DECIDE_LOAD_SIZE; } else { mFlag &= ~AUTO_DECIDE_LOAD_SIZE; } return this; } public boolean autoDecideLoadSize() { return (mFlag & AUTO_DECIDE_LOAD_SIZE) != 0; } }