Skip to content

Commit 4a7ebff

Browse files
committed
#3529 Captions/depictions are not saved to Commons - weaken type of categories - copy list on Contribution creation
1 parent 50261ce commit 4a7ebff

File tree

5 files changed

+14
-16
lines changed

5 files changed

+14
-16
lines changed

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

+4-5
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public class Media implements Parcelable {
5353
* Wikibase Identifier associated with media files
5454
*/
5555
public String pageId;
56-
public ArrayList<String> categories; // as loaded at runtime?
56+
private List<String> categories; // as loaded at runtime?
5757
/**
5858
* Depicts is a feature part of Structured data. Multiple Depictions can be added for an image just like categories.
5959
* However unlike categories depictions is multi-lingual
@@ -447,8 +447,8 @@ public void setCoordinates(@Nullable LatLng coordinates) {
447447
* @return file categories as an ArrayList of Strings
448448
*/
449449
@SuppressWarnings("unchecked")
450-
public ArrayList<String> getCategories() {
451-
return (ArrayList<String>) categories.clone(); // feels dirty
450+
public List<String> getCategories() {
451+
return categories;
452452
}
453453

454454

@@ -460,8 +460,7 @@ public ArrayList<String> getCategories() {
460460
* @param categories file categories as a list of Strings
461461
*/
462462
public void setCategories(List<String> categories) {
463-
this.categories.clear();
464-
this.categories.addAll(categories);
463+
this.categories = categories;
465464
}
466465

467466
/**

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

+3-4
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import fr.free.nrw.commons.upload.WikidataPlace;
1111
import fr.free.nrw.commons.upload.structure.depictions.DepictedItem;
1212
import java.util.ArrayList;
13-
import java.util.Collection;
1413
import java.util.Date;
1514
import java.util.HashMap;
1615
import java.util.List;
@@ -44,13 +43,13 @@ public Contribution() {
4443

4544
public Contribution(final UploadItem item, final SessionManager sessionManager,
4645
final List<DepictedItem> depictedItems,
47-
final Collection<String> categories) {
46+
final List<String> categories) {
4847
super(item.getMediaUri(), null, item.getFileName(), UploadMediaDetail.formatCaptions(item.getUploadMediaDetails()), UploadMediaDetail.formatList(item.getUploadMediaDetails()), -1, null, new Date(), sessionManager.getAuthorName());
4948
decimalCoords = item.getGpsCoords().getDecimalCoords();
5049
dateCreatedSource = "";
51-
this.depictedItems.addAll(depictedItems);
50+
this.depictedItems = depictedItems;
5251
wikidataPlace = WikidataPlace.from(item.getPlace());
53-
this.categories.addAll(categories);
52+
this.categories = categories;
5453
}
5554

5655
public Contribution(final MwQueryLogEvent queryLogEvent, final String user) {

app/src/main/java/fr/free/nrw/commons/db/Converters.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,13 @@ public static String uriToString(Uri uri) {
4545
}
4646

4747
@TypeConverter
48-
public static String listObjectToString(ArrayList<String> objectList) {
48+
public static String listObjectToString(List<String> objectList) {
4949
return writeObjectToString(objectList);
5050
}
5151

5252
@TypeConverter
53-
public static ArrayList<String> stringToArrayListObject(String objectList) {
54-
return readObjectWithTypeToken(objectList, new TypeToken<ArrayList<String>>() {});
53+
public static List<String> stringToArrayListObject(String objectList) {
54+
return readObjectWithTypeToken(objectList, new TypeToken<List<String>>() {});
5555
}
5656

5757
@TypeConverter

app/src/main/java/fr/free/nrw/commons/upload/PageContentsCreator.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
import fr.free.nrw.commons.settings.Prefs.Licenses;
88
import fr.free.nrw.commons.utils.ConfigUtils;
99
import java.text.SimpleDateFormat;
10-
import java.util.ArrayList;
1110
import java.util.Date;
11+
import java.util.List;
1212
import java.util.Locale;
1313
import javax.inject.Inject;
1414
import org.apache.commons.lang3.StringUtils;
@@ -56,7 +56,7 @@ public String createFrom(Contribution contribution) {
5656
.append(licenseTemplateFor(contribution.getLicense())).append("\n\n")
5757
.append("{{Uploaded from Mobile|platform=Android|version=")
5858
.append(ConfigUtils.getVersionNameWithSha(context)).append("}}\n");
59-
final ArrayList<String> categories = contribution.getCategories();
59+
final List<String> categories = contribution.getCategories();
6060
if (categories != null && categories.size() != 0) {
6161
for (int i = 0; i < categories.size(); i++) {
6262
buffer.append("\n[[Category:").append(categories.get(i)).append("]]");

app/src/main/java/fr/free/nrw/commons/upload/UploadModel.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public void cleanUp() {
7575
}
7676

7777
public void setSelectedCategories(List<String> selectedCategories) {
78-
this.selectedCategories = newListOf(selectedCategories);
78+
this.selectedCategories = selectedCategories;
7979
}
8080

8181
/**
@@ -144,7 +144,7 @@ public Observable<Contribution> buildContributions() {
144144
return Observable.fromIterable(items).map(item ->
145145
{
146146
final Contribution contribution = new Contribution(
147-
item, sessionManager, selectedDepictions, selectedCategories);
147+
item, sessionManager, newListOf(selectedDepictions), newListOf(selectedCategories));
148148
Timber.d("Created timestamp while building contribution is %s, %s",
149149
item.getCreatedTimestamp(),
150150
new Date(item.getCreatedTimestamp()));

0 commit comments

Comments
 (0)