From de395022926c91a2a0728499db4c732db06863d7 Mon Sep 17 00:00:00 2001 From: YuviPanda Date: Thu, 21 Feb 2013 21:04:45 +0530 Subject: [PATCH] Moved Media and Contributions to be Parcelable --- .../java/org/wikimedia/commons/Media.java | 30 ++++++++++++++++++- .../commons/contributions/Contribution.java | 29 +++++++++++++++--- 2 files changed, 54 insertions(+), 5 deletions(-) diff --git a/commons/src/main/java/org/wikimedia/commons/Media.java b/commons/src/main/java/org/wikimedia/commons/Media.java index c70cd5d8b..3e3079b3d 100644 --- a/commons/src/main/java/org/wikimedia/commons/Media.java +++ b/commons/src/main/java/org/wikimedia/commons/Media.java @@ -1,12 +1,14 @@ package org.wikimedia.commons; import android.net.Uri; +import android.os.Parcel; +import android.os.Parcelable; import org.wikimedia.commons.contributions.Contribution; import java.io.Serializable; import java.util.Date; -public class Media implements Serializable { +public class Media implements Parcelable { protected Media() { } @@ -70,4 +72,30 @@ public class Media implements Serializable { this.dateUploaded = dateUploaded; this.creator = creator; } + + public int describeContents() { + return 0; + } + + public void writeToParcel(Parcel parcel, int flags) { + parcel.writeParcelable(localUri, flags); + parcel.writeString(imageUrl); + parcel.writeString(filename); + parcel.writeString(description); + parcel.writeLong(dataLength); + parcel.writeSerializable(dateCreated); + parcel.writeSerializable(dateUploaded); + parcel.writeString(creator); + } + + public Media(Parcel in) { + localUri = (Uri)in.readParcelable(Uri.class.getClassLoader()); + imageUrl = in.readString(); + filename = in.readString(); + description = in.readString(); + dataLength = in.readLong(); + dateCreated = (Date) in.readSerializable(); + dateUploaded = (Date) in.readSerializable(); + creator = in.readString(); + } } diff --git a/commons/src/main/java/org/wikimedia/commons/contributions/Contribution.java b/commons/src/main/java/org/wikimedia/commons/contributions/Contribution.java index cf9980f48..e962fa57f 100644 --- a/commons/src/main/java/org/wikimedia/commons/contributions/Contribution.java +++ b/commons/src/main/java/org/wikimedia/commons/contributions/Contribution.java @@ -8,6 +8,7 @@ import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.net.*; +import android.os.Parcel; import android.os.RemoteException; import android.text.TextUtils; import org.wikimedia.commons.CommonsApplication; @@ -29,9 +30,33 @@ public class Contribution extends Media { private ContentProviderClient client; private Uri contentUri; private String source; + private String editSummary; + private Date timestamp; + private int state; + private long transferred; public EventLog.LogBuilder event; + + @Override + public void writeToParcel(Parcel parcel, int flags) { + super.writeToParcel(parcel, flags); + parcel.writeParcelable(contentUri, flags); + parcel.writeString(source); + parcel.writeSerializable(timestamp); + parcel.writeInt(state); + parcel.writeLong(transferred); + } + + public Contribution(Parcel in) { + super(in); + contentUri = (Uri)in.readParcelable(Uri.class.getClassLoader()); + source = in.readString(); + timestamp = (Date) in.readSerializable(); + state = in.readInt(); + transferred = in.readLong(); + } + public long getTransferred() { return transferred; } @@ -40,7 +65,6 @@ public class Contribution extends Media { this.transferred = transferred; } - private long transferred; public String getEditSummary() { return editSummary != null ? editSummary : CommonsApplication.DEFAULT_EDIT_SUMMARY; @@ -49,14 +73,11 @@ public class Contribution extends Media { public Uri getContentUri() { return contentUri; } - private String editSummary; public Date getTimestamp() { return timestamp; } - private Date timestamp; - private int state; public Contribution(Uri localUri, String remoteUri, String filename, String description, long dataLength, Date dateCreated, Date dateUploaded, String creator, String editSummary) { super(localUri, remoteUri, filename, description, dataLength, dateCreated, dateUploaded, creator);