package com.qubling.sidekick.instance;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.qubling.sidekick.model.Model;
import com.qubling.sidekick.search.Schema;
import android.graphics.Bitmap;
import android.os.Parcel;
import android.os.Parcelable;
public class Gravatar extends Instance<Gravatar> {
private static final Pattern RESIZE_GRAVATAR_PATTERN = Pattern.compile("([?&])s(ize)?=[0-9]+\\b");
private String url;
private Bitmap bitmap;
public Gravatar(Model<Gravatar> model, String url) {
super(model);
this.url = url;
}
public Gravatar(Parcel in) {
url = in.readString();
bitmap = in.readParcelable(Gravatar.class.getClassLoader());
}
public String getKey() {
return url;
}
public String getUrl() {
return url;
}
public String getUrl(int pixels) {
Matcher resizeGravatarMatcher = RESIZE_GRAVATAR_PATTERN.matcher(url);
return resizeGravatarMatcher.replaceFirst("$1s=" + pixels);
}
public Bitmap getBitmap() {
return bitmap;
}
public void setBitmap(Bitmap bitmap) {
this.bitmap = bitmap;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int flags) {
out.writeString(url);
out.writeParcelable(bitmap, flags);
}
public static final Parcelable.Creator<Gravatar> CREATOR
= new Parcelable.Creator<Gravatar>() {
@Override
public Gravatar createFromParcel(Parcel in) {
return new Gravatar(in);
}
@Override
public Gravatar[] newArray(int size) {
return new Gravatar[size];
}
};
@Override
public void attachRelatedModels(Schema schema) {
}
@Override
public void addToCache() {
getModel().cache(this);
}
@Override
public String toString() {
return "Gravatar(" + getUrl() + ")";
}
}