package com.dozuki.ifixit.model;
import com.google.gson.annotations.SerializedName;
import java.io.Serializable;
public class Image implements Serializable {
private static final long serialVersionUID = 772113480839309007L;
/**
* Local images (captured by the camera) will not have an imageid until it's been uploaded and processed by the
* server. Until then, we set the imageid to -1 so we can tell which image needs to be updated.
*/
private static final int LOCAL_IMAGE_ID = -1;
private static final String TAG = "Image";
@SerializedName("id") private int mId;
@SerializedName("original") private String mPath;
private String mLocalPath;
public Image() {
this(LOCAL_IMAGE_ID);
}
public Image(int id) {
this(id, "");
}
public Image(int id, String path) {
mId = id;
mPath = path;
mLocalPath = "";
}
public void setLocalImage(String path) {
mId = LOCAL_IMAGE_ID;
mPath = path;
mLocalPath = mPath;
}
public void setId(int id) {
mId = id;
}
public int getId() {
return mId;
}
public boolean hasLocalPath() {
return mLocalPath != null && mLocalPath.length() > 0;
}
public String getLocalPath() {
return mLocalPath;
}
public void setLocalPath(String path) {
mLocalPath = path;
}
public void setPath(String path) {
mPath = path;
}
public String getPath() {
return mPath;
}
public String getPath(String size) {
return mPath + size;
}
/**
* Return true if this is an actual image. Really this image shouldn't exist if
* it isn't valid but this is currently how the JSON parsing and guide creation code
* is currently setup.
*/
public boolean isValid() {
return mId != LOCAL_IMAGE_ID;
}
public boolean isLocal() {
return mId == LOCAL_IMAGE_ID;
}
@Override
public String toString() {
return "{\n" +
"path: " + mPath + ",\n" +
"localPath: " + mLocalPath + ",\n" +
"id: " + mId + "\n" +
"}";
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof Image)) {
return false;
}
return ((Image)obj).getId() == mId && ((Image)obj).getPath().equals(mPath);
}
}