Skip to content

Commit 677191c

Browse files
* Regenerated Parcealable for all possible fields for Contribution & Media
1 parent 5e3760a commit 677191c

File tree

2 files changed

+111
-97
lines changed

2 files changed

+111
-97
lines changed

app/src/main/java/fr/free/nrw/commons/Media.java

Lines changed: 64 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,6 @@
2929
public class Media implements Parcelable {
3030

3131
public static final Media EMPTY = new Media("");
32-
public static Creator<Media> CREATOR = new Creator<Media>() {
33-
@Override
34-
public Media createFromParcel(Parcel parcel) {
35-
return new Media(parcel);
36-
}
37-
38-
@Override
39-
public Media[] newArray(int i) {
40-
return new Media[0];
41-
}
42-
};
4332

4433
// Primary metadata fields
4534
protected Uri localUri;
@@ -107,27 +96,6 @@ public Media(Uri localUri, String imageUrl, String filename, String description,
10796
this.descriptions = new HashMap<>();
10897
}
10998

110-
@SuppressWarnings("unchecked")
111-
public Media(Parcel in) {
112-
localUri = in.readParcelable(Uri.class.getClassLoader());
113-
thumbUrl = in.readString();
114-
imageUrl = in.readString();
115-
filename = in.readString();
116-
description = in.readString();
117-
dataLength = in.readLong();
118-
dateCreated = (Date) in.readSerializable();
119-
dateUploaded = (Date) in.readSerializable();
120-
creator = in.readString();
121-
tags = (HashMap<String, Object>) in.readSerializable();
122-
width = in.readInt();
123-
height = in.readInt();
124-
license = in.readString();
125-
if (categories != null) {
126-
in.readStringList(categories);
127-
}
128-
descriptions = in.readHashMap(ClassLoader.getSystemClassLoader());
129-
}
130-
13199
/**
132100
* Creating Media object from MWQueryPage.
133101
* Earlier only basic details were set for the media object but going forward,
@@ -499,40 +467,6 @@ public String getDescription(String preferredLanguage) {
499467
}
500468
}
501469

502-
/**
503-
* Method of Parcelable interface
504-
* @return zero
505-
*/
506-
@Override
507-
public int describeContents() {
508-
return 0;
509-
}
510-
511-
/**
512-
* Creates a way to transfer information between two or more
513-
* activities.
514-
* @param parcel Instance of Parcel
515-
* @param flags Parcel flag
516-
*/
517-
@Override
518-
public void writeToParcel(Parcel parcel, int flags) {
519-
parcel.writeParcelable(localUri, flags);
520-
parcel.writeString(thumbUrl);
521-
parcel.writeString(imageUrl);
522-
parcel.writeString(filename);
523-
parcel.writeString(description);
524-
parcel.writeLong(dataLength);
525-
parcel.writeSerializable(dateCreated);
526-
parcel.writeSerializable(dateUploaded);
527-
parcel.writeString(creator);
528-
parcel.writeSerializable(tags);
529-
parcel.writeInt(width);
530-
parcel.writeInt(height);
531-
parcel.writeString(license);
532-
parcel.writeStringList(categories);
533-
parcel.writeMap(descriptions);
534-
}
535-
536470
/**
537471
* Set requested deletion to true
538472
*/
@@ -556,4 +490,68 @@ public boolean getRequestedDeletion(){
556490
public void setLicense(String license) {
557491
this.license = license;
558492
}
493+
494+
495+
@Override
496+
public int describeContents() {
497+
return 0;
498+
}
499+
500+
@Override
501+
public void writeToParcel(Parcel dest, int flags) {
502+
dest.writeParcelable(this.localUri, flags);
503+
dest.writeString(this.thumbUrl);
504+
dest.writeString(this.imageUrl);
505+
dest.writeString(this.filename);
506+
dest.writeString(this.description);
507+
dest.writeString(this.discussion);
508+
dest.writeLong(this.dataLength);
509+
dest.writeLong(this.dateCreated != null ? this.dateCreated.getTime() : -1);
510+
dest.writeLong(this.dateUploaded != null ? this.dateUploaded.getTime() : -1);
511+
dest.writeInt(this.width);
512+
dest.writeInt(this.height);
513+
dest.writeString(this.license);
514+
dest.writeString(this.licenseUrl);
515+
dest.writeString(this.creator);
516+
dest.writeStringList(this.categories);
517+
dest.writeByte(this.requestedDeletion ? (byte) 1 : (byte) 0);
518+
dest.writeInt(this.descriptions.size());
519+
for (Map.Entry<String, String> entry : this.descriptions.entrySet()) {
520+
dest.writeString(entry.getKey());
521+
dest.writeString(entry.getValue());
522+
}
523+
dest.writeSerializable(this.tags);
524+
dest.writeParcelable(this.coordinates, flags);
525+
}
526+
527+
protected Media(Parcel in) {
528+
this.localUri = in.readParcelable(Uri.class.getClassLoader());
529+
this.thumbUrl = in.readString();
530+
this.imageUrl = in.readString();
531+
this.filename = in.readString();
532+
this.description = in.readString();
533+
this.discussion = in.readString();
534+
this.dataLength = in.readLong();
535+
long tmpDateCreated = in.readLong();
536+
this.dateCreated = tmpDateCreated == -1 ? null : new Date(tmpDateCreated);
537+
long tmpDateUploaded = in.readLong();
538+
this.dateUploaded = tmpDateUploaded == -1 ? null : new Date(tmpDateUploaded);
539+
this.width = in.readInt();
540+
this.height = in.readInt();
541+
this.license = in.readString();
542+
this.licenseUrl = in.readString();
543+
this.creator = in.readString();
544+
this.categories = in.createStringArrayList();
545+
this.requestedDeletion = in.readByte() != 0;
546+
int descriptionsSize = in.readInt();
547+
this.descriptions = new HashMap<>(descriptionsSize);
548+
for (int i = 0; i < descriptionsSize; i++) {
549+
String key = in.readString();
550+
String value = in.readString();
551+
this.descriptions.put(key, value);
552+
}
553+
this.tags = (HashMap<String, Object>) in.readSerializable();
554+
this.coordinates = in.readParcelable(LatLng.class.getClassLoader());
555+
}
556+
559557
}

app/src/main/java/fr/free/nrw/commons/contributions/Contribution.java

Lines changed: 47 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,6 @@ public class Contribution extends Media {
3131
//2009-01-09 → 9 January 2009
3232
private static final String TEMPLATE_DATA_OTHER_SOURCE = "%s";
3333

34-
public static Creator<Contribution> CREATOR = new Creator<Contribution>() {
35-
@Override
36-
public Contribution createFromParcel(Parcel parcel) {
37-
return new Contribution(parcel);
38-
}
39-
40-
@Override
41-
public Contribution[] newArray(int i) {
42-
return new Contribution[0];
43-
}
44-
};
45-
4634
// No need to be bitwise - they're mutually exclusive
4735
public static final int STATE_COMPLETED = -1;
4836
public static final int STATE_FAILED = 1;
@@ -101,25 +89,6 @@ public Contribution(Uri localUri, String imageUrl, String filename, String descr
10189
this.state=state;
10290
}
10391

104-
public Contribution(Parcel in) {
105-
super(in);
106-
contentUri = in.readParcelable(Uri.class.getClassLoader());
107-
source = in.readString();
108-
state = in.readInt();
109-
transferred = in.readLong();
110-
isMultiple = in.readInt() == 1;
111-
}
112-
113-
@Override
114-
public void writeToParcel(Parcel parcel, int flags) {
115-
super.writeToParcel(parcel, flags);
116-
parcel.writeParcelable(contentUri, flags);
117-
parcel.writeString(source);
118-
parcel.writeInt(state);
119-
parcel.writeLong(transferred);
120-
parcel.writeInt(isMultiple ? 1 : 0);
121-
}
122-
12392
public String getDateCreatedSource() {
12493
return dateCreatedSource;
12594
}
@@ -287,4 +256,51 @@ public void setContentProviderUri(Uri contentProviderUri) {
287256
public Uri getContentProviderUri() {
288257
return contentProviderUri;
289258
}
259+
260+
261+
@Override
262+
public int describeContents() {
263+
return 0;
264+
}
265+
266+
@Override
267+
public void writeToParcel(Parcel dest, int flags) {
268+
super.writeToParcel(dest, flags);
269+
dest.writeParcelable(this.contentUri, flags);
270+
dest.writeString(this.source);
271+
dest.writeString(this.editSummary);
272+
dest.writeInt(this.state);
273+
dest.writeLong(this.transferred);
274+
dest.writeString(this.decimalCoords);
275+
dest.writeByte(this.isMultiple ? (byte) 1 : (byte) 0);
276+
dest.writeString(this.wikiDataEntityId);
277+
dest.writeParcelable(this.contentProviderUri, flags);
278+
dest.writeString(this.dateCreatedSource);
279+
}
280+
281+
protected Contribution(Parcel in) {
282+
super(in);
283+
this.contentUri = in.readParcelable(Uri.class.getClassLoader());
284+
this.source = in.readString();
285+
this.editSummary = in.readString();
286+
this.state = in.readInt();
287+
this.transferred = in.readLong();
288+
this.decimalCoords = in.readString();
289+
this.isMultiple = in.readByte() != 0;
290+
this.wikiDataEntityId = in.readString();
291+
this.contentProviderUri = in.readParcelable(Uri.class.getClassLoader());
292+
this.dateCreatedSource = in.readString();
293+
}
294+
295+
public static final Creator<Contribution> CREATOR = new Creator<Contribution>() {
296+
@Override
297+
public Contribution createFromParcel(Parcel source) {
298+
return new Contribution(source);
299+
}
300+
301+
@Override
302+
public Contribution[] newArray(int size) {
303+
return new Contribution[size];
304+
}
305+
};
290306
}

0 commit comments

Comments
 (0)