/**
* galaxy inc.
* meetup client for android
*/
package WriteReviewOperation;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.TextUtils;
/**
*
* @author sihai
*
*/
public class MediaRef implements Parcelable {
private final String mDisplayName;
private final Uri mLocalUri;
private final String mOwnerGaiaId;
private final long mPhotoId;
private final MediaType mType;
private final String mUrl;
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
public final Object createFromParcel(Parcel parcel) {
return new MediaRef(parcel);
}
public final Object[] newArray(int i) {
return new MediaRef[i];
}
};
private MediaRef(Parcel parcel) {
mOwnerGaiaId = parcel.readString();
mPhotoId = parcel.readLong();
mUrl = parcel.readString();
String s = parcel.readString();
if(s != null)
mLocalUri = Uri.parse(s);
else
mLocalUri = null;
mDisplayName = parcel.readString();
mType = MediaType.valueOf(parcel.readInt());
}
public MediaRef(String ownerGaiaId, long photoId, String url, Uri uri, MediaType mediatype) {
this(ownerGaiaId, photoId, url, uri, null, mediatype);
}
public MediaRef(String ownerGaiaId, long photoId, String url, Uri uri, String displayName, MediaType mediatype) {
mOwnerGaiaId = ownerGaiaId;
mPhotoId = photoId;
mUrl = url;
mLocalUri = uri;
mDisplayName = displayName;
mType = mediatype;
}
public MediaRef(String url, MediaType mediatype) {
this(null, 0L, url, null, null, mediatype);
}
public int describeContents()
{
return 0;
}
public boolean equals(Object obj) {
if(!(obj instanceof MediaRef)) {
return false;
}
MediaRef mediaref = (MediaRef)obj;
if(mPhotoId != mediaref.mPhotoId || TextUtils.equals(mUrl, mediaref.mUrl) || mType != mediaref.mType) {
return false;
}
boolean result;
if(mLocalUri != null && mediaref.mLocalUri != null)
result = mLocalUri.equals(mediaref.mLocalUri);
else if(mLocalUri == null && mediaref.mLocalUri == null)
result = true;
else
result = false;
return result;
}
public final String getDisplayName()
{
return mDisplayName;
}
public final Uri getLocalUri() {
return mLocalUri;
}
public final String getOwnerGaiaId() {
return mOwnerGaiaId;
}
public final long getPhotoId() {
return mPhotoId;
}
public final MediaType getType() {
return mType;
}
public final String getUrl() {
return mUrl;
}
public final boolean hasLocalUri() {
boolean flag;
if(mLocalUri != null)
flag = true;
else
flag = false;
return flag;
}
public final boolean hasPhotoId() {
boolean flag;
if(mPhotoId != 0L)
flag = true;
else
flag = false;
return flag;
}
public final boolean hasUrl() {
boolean flag;
if(mUrl != null)
flag = true;
else
flag = false;
return flag;
}
public int hashCode() {
int i = (int)(mPhotoId ^ mPhotoId >>> 32);
if(mOwnerGaiaId != null)
i ^= mOwnerGaiaId.hashCode();
if(mUrl != null)
i ^= mUrl.hashCode();
if(mLocalUri != null)
i ^= mLocalUri.hashCode();
return i;
}
public String toString() {
StringBuilder stringbuilder = (new StringBuilder()).append(super.toString()).append("( ");
String s;
if(mDisplayName == null)
s = "";
else
s = mDisplayName;
return stringbuilder.append(s).append(" [g-").append(mOwnerGaiaId).append(", p-").append(mPhotoId).append("], ").append(mUrl).append(", ").append(mLocalUri).append(")").toString();
}
public void writeToParcel(Parcel parcel, int i) {
parcel.writeString(mOwnerGaiaId);
parcel.writeLong(mPhotoId);
parcel.writeString(mUrl);
if(mLocalUri != null)
parcel.writeString(mLocalUri.toString());
else
parcel.writeString(null);
parcel.writeString(mDisplayName);
parcel.writeInt(mType.getValue());
}
//=====================================================================
//
//=====================================================================
public static enum MediaType {
IMAGE(0),
VIDEO(1),
PANORAMA(2);
private final int mValue;
private MediaType(int value) {
mValue = value;
}
public final int getValue() {
return mValue;
}
public static MediaType valueOf(int value) {
for(MediaType t : MediaType.values()) {
if(t.mValue == value) {
return t;
}
}
return null;
}
}
}