From 384afa6c44ce72bb49bdd5e5b9b2a510b5276d59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=C3=A1n=20Mac=20Gillicuddy?= Date: Thu, 21 May 2020 00:54:09 +0100 Subject: [PATCH] #3753 Item label/description: Fall back to non-empty language - attempt to read labels by language or the first one in the list (#3759) --- .../free/nrw/commons/explore/depictions/DepictsClient.kt | 2 +- .../free/nrw/commons/upload/depicts/DepictsInterface.java | 2 +- .../commons/upload/structure/depictions/DepictedItem.kt | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/explore/depictions/DepictsClient.kt b/app/src/main/java/fr/free/nrw/commons/explore/depictions/DepictsClient.kt index 043bf9c41..829c4fc8f 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/depictions/DepictsClient.kt +++ b/app/src/main/java/fr/free/nrw/commons/explore/depictions/DepictsClient.kt @@ -75,7 +75,7 @@ class DepictsClient @Inject constructor( } fun getEntities(ids: String): Single { - return depictsInterface.getEntities(ids, Locale.getDefault().language) + return depictsInterface.getEntities(ids) } fun toDepictions(sparqlResponse: Observable): Observable> { diff --git a/app/src/main/java/fr/free/nrw/commons/upload/depicts/DepictsInterface.java b/app/src/main/java/fr/free/nrw/commons/upload/depicts/DepictsInterface.java index ed7ab1680..00aa81287 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/depicts/DepictsInterface.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/depicts/DepictsInterface.java @@ -24,5 +24,5 @@ public interface DepictsInterface { Single searchForDepicts(@Query("search") String query, @Query("limit") String limit, @Query("language") String language, @Query("uselang") String uselang, @Query("continue") String offset); @GET("/w/api.php?format=json&action=wbgetentities") - Single getEntities(@Query("ids")String ids, @Query("languages")String language); + Single getEntities(@Query("ids") String ids); } diff --git a/app/src/main/java/fr/free/nrw/commons/upload/structure/depictions/DepictedItem.kt b/app/src/main/java/fr/free/nrw/commons/upload/structure/depictions/DepictedItem.kt index 7a2ba99ef..0ed29cc46 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/structure/depictions/DepictedItem.kt +++ b/app/src/main/java/fr/free/nrw/commons/upload/structure/depictions/DepictedItem.kt @@ -9,6 +9,7 @@ import fr.free.nrw.commons.wikidata.WikidataProperties.* import org.wikipedia.wikidata.DataValue import org.wikipedia.wikidata.Entities import org.wikipedia.wikidata.Statement_partial +import java.util.* /** * Model class for Depicted Item in Upload and Explore @@ -25,8 +26,8 @@ data class DepictedItem constructor( constructor(entity: Entities.Entity) : this( entity, - entity.labels().values.firstOrNull()?.value() ?: "", - entity.descriptions().values.firstOrNull()?.value() ?: "" + entity.labels().byLanguageOrFirstOrEmpty(), + entity.descriptions().byLanguageOrFirstOrEmpty() ) constructor(entity: Entities.Entity, place: Place) : this( @@ -73,3 +74,5 @@ private val List?.primaryImageValue: DataValue.ValueString? operator fun Entities.Entity.get(property: WikidataProperties) = statements?.get(property.propertyName) +private fun Map.byLanguageOrFirstOrEmpty() = + let { it[Locale.getDefault().language] ?: it.values.firstOrNull() }?.value() ?: ""