Skip to content

Commit

Permalink
Merge branch 'release/4.0' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
maxme committed Apr 30, 2015
2 parents 706c116 + 9f204b8 commit 57c7130
Showing 1 changed file with 91 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,19 @@
import android.content.Context;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.style.ImageSpan;

public class WPImageSpan extends ImageSpan {
public class WPImageSpan extends ImageSpan implements Parcelable {
protected Uri mImageSource = null;
protected boolean mNetworkImageLoaded = false;
protected MediaFile mMediaFile;
protected int mStartPosition, mEndPosition;

protected WPImageSpan() {
super((Bitmap) null);
}

public WPImageSpan(Context context, Bitmap b, Uri src) {
super(context, b);
Expand All @@ -24,6 +31,19 @@ public WPImageSpan(Context context, int resId, Uri src) {
mMediaFile = new MediaFile();
}

public void setPosition(int start, int end) {
mStartPosition = start;
mEndPosition = end;
}

public int getStartPosition() {
return mStartPosition >= 0 ? mStartPosition : 0;
}

public int getEndPosition() {
return mEndPosition < getStartPosition() ? getStartPosition() : mEndPosition;
}

public MediaFile getMediaFile() {
return mMediaFile;
}
Expand All @@ -47,4 +67,74 @@ public boolean isNetworkImageLoaded() {
public void setNetworkImageLoaded(boolean networkImageLoaded) {
this.mNetworkImageLoaded = networkImageLoaded;
}

protected void setupFromParcel(Parcel in) {
MediaFile mediaFile = new MediaFile();

boolean[] booleans = new boolean[2];
in.readBooleanArray(booleans);
setNetworkImageLoaded(booleans[0]);
mediaFile.setVideo(booleans[1]);

setImageSource(Uri.parse(in.readString()));
mediaFile.setMediaId(in.readString());
mediaFile.setBlogId(in.readString());
mediaFile.setPostID(in.readLong());
mediaFile.setCaption(in.readString());
mediaFile.setDescription(in.readString());
mediaFile.setTitle(in.readString());
mediaFile.setMimeType(in.readString());
mediaFile.setFileName(in.readString());
mediaFile.setThumbnailURL(in.readString());
mediaFile.setVideoPressShortCode(in.readString());
mediaFile.setFileURL(in.readString());
mediaFile.setFilePath(in.readString());
mediaFile.setDateCreatedGMT(in.readLong());
mediaFile.setWidth(in.readInt());
mediaFile.setHeight(in.readInt());
setPosition(in.readInt(), in.readInt());

setMediaFile(mediaFile);
}

public static final Parcelable.Creator<WPImageSpan> CREATOR
= new Parcelable.Creator<WPImageSpan>() {
public WPImageSpan createFromParcel(Parcel in) {
WPImageSpan imageSpan = new WPImageSpan();
imageSpan.setupFromParcel(in);
return imageSpan;
}

public WPImageSpan[] newArray(int size) {
return new WPImageSpan[size];
}
};

@Override
public int describeContents() {
return 0;
}

@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeBooleanArray(new boolean[] {mNetworkImageLoaded, mMediaFile.isVideo()});
parcel.writeString(mImageSource.toString());
parcel.writeString(mMediaFile.getMediaId());
parcel.writeString(mMediaFile.getBlogId());
parcel.writeLong(mMediaFile.getPostID());
parcel.writeString(mMediaFile.getCaption());
parcel.writeString(mMediaFile.getDescription());
parcel.writeString(mMediaFile.getTitle());
parcel.writeString(mMediaFile.getMimeType());
parcel.writeString(mMediaFile.getFileName());
parcel.writeString(mMediaFile.getThumbnailURL());
parcel.writeString(mMediaFile.getVideoPressShortCode());
parcel.writeString(mMediaFile.getFileURL());
parcel.writeString(mMediaFile.getFilePath());
parcel.writeLong(mMediaFile.getDateCreatedGMT());
parcel.writeInt(mMediaFile.getWidth());
parcel.writeInt(mMediaFile.getHeight());
parcel.writeInt(getStartPosition());
parcel.writeInt(getEndPosition());
}
}

0 comments on commit 57c7130

Please sign in to comment.