Moved Media and Contributions to be Parcelable

This commit is contained in:
YuviPanda 2013-02-21 21:04:45 +05:30
parent 9476ec6484
commit de39502292
2 changed files with 54 additions and 5 deletions

View file

@ -1,12 +1,14 @@
package org.wikimedia.commons; package org.wikimedia.commons;
import android.net.Uri; import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
import org.wikimedia.commons.contributions.Contribution; import org.wikimedia.commons.contributions.Contribution;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
public class Media implements Serializable { public class Media implements Parcelable {
protected Media() { protected Media() {
} }
@ -70,4 +72,30 @@ public class Media implements Serializable {
this.dateUploaded = dateUploaded; this.dateUploaded = dateUploaded;
this.creator = creator; 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();
}
} }

View file

@ -8,6 +8,7 @@ import android.content.ContentValues;
import android.database.Cursor; import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase;
import android.net.*; import android.net.*;
import android.os.Parcel;
import android.os.RemoteException; import android.os.RemoteException;
import android.text.TextUtils; import android.text.TextUtils;
import org.wikimedia.commons.CommonsApplication; import org.wikimedia.commons.CommonsApplication;
@ -29,9 +30,33 @@ public class Contribution extends Media {
private ContentProviderClient client; private ContentProviderClient client;
private Uri contentUri; private Uri contentUri;
private String source; private String source;
private String editSummary;
private Date timestamp;
private int state;
private long transferred;
public EventLog.LogBuilder event; 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() { public long getTransferred() {
return transferred; return transferred;
} }
@ -40,7 +65,6 @@ public class Contribution extends Media {
this.transferred = transferred; this.transferred = transferred;
} }
private long transferred;
public String getEditSummary() { public String getEditSummary() {
return editSummary != null ? editSummary : CommonsApplication.DEFAULT_EDIT_SUMMARY; return editSummary != null ? editSummary : CommonsApplication.DEFAULT_EDIT_SUMMARY;
@ -49,14 +73,11 @@ public class Contribution extends Media {
public Uri getContentUri() { public Uri getContentUri() {
return contentUri; return contentUri;
} }
private String editSummary;
public Date getTimestamp() { public Date getTimestamp() {
return timestamp; 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) { 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); super(localUri, remoteUri, filename, description, dataLength, dateCreated, dateUploaded, creator);