mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 04:43:54 +01:00
Fix issue 3526 Unlike "Items" tab, "child classes" tab does not display description nor image thumbnail (#3619)
* fix thumbnail issue 3526 * Fix Description issue 3526 * revert changes on this file, not finished with it yet * Fix Description for Child and Parent classes - issue 3526 * Remove conflict text in file * Remove retrofit.HEAD import * Incorporated review comments
This commit is contained in:
parent
628a6056e0
commit
62f176443b
5 changed files with 98 additions and 6 deletions
|
|
@ -13,7 +13,9 @@ public class Binding {
|
||||||
@SerializedName("subclassLabel")
|
@SerializedName("subclassLabel")
|
||||||
@Expose
|
@Expose
|
||||||
private SubclassLabel subclassLabel;
|
private SubclassLabel subclassLabel;
|
||||||
|
@SerializedName("subclassDescription")
|
||||||
|
@Expose
|
||||||
|
private SubclassDescription subclassDescription;
|
||||||
/**
|
/**
|
||||||
* No args constructor for use in serialization
|
* No args constructor for use in serialization
|
||||||
*
|
*
|
||||||
|
|
@ -26,10 +28,11 @@ public class Binding {
|
||||||
* @param subclassLabel
|
* @param subclassLabel
|
||||||
* @param subclass
|
* @param subclass
|
||||||
*/
|
*/
|
||||||
public Binding(Subclass subclass, SubclassLabel subclassLabel) {
|
public Binding(Subclass subclass, SubclassLabel subclassLabel, SubclassDescription subclassDescription) {
|
||||||
super();
|
super();
|
||||||
this.subclass = subclass;
|
this.subclass = subclass;
|
||||||
this.subclassLabel = subclassLabel;
|
this.subclassLabel = subclassLabel;
|
||||||
|
this.subclassDescription = subclassDescription;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Subclass getSubclass() {
|
public Subclass getSubclass() {
|
||||||
|
|
@ -44,8 +47,16 @@ public class Binding {
|
||||||
return subclassLabel;
|
return subclassLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SubclassDescription getSubclassDescription(){
|
||||||
|
return subclassDescription;
|
||||||
|
}
|
||||||
|
|
||||||
public void setSubclassLabel(SubclassLabel subclassLabel) {
|
public void setSubclassLabel(SubclassLabel subclassLabel) {
|
||||||
this.subclassLabel = subclassLabel;
|
this.subclassLabel = subclassLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setSubclassDescription(SubclassDescription subclassDescription) {
|
||||||
|
this.subclassDescription = subclassDescription;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,68 @@
|
||||||
|
package fr.free.nrw.commons.depictions.SubClass.models;
|
||||||
|
import com.google.gson.annotations.Expose;
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Model class for parsing SparqlQueryResponse
|
||||||
|
*/
|
||||||
|
public class SubclassDescription {
|
||||||
|
|
||||||
|
@SerializedName("type")
|
||||||
|
@Expose
|
||||||
|
private String type;
|
||||||
|
@SerializedName("value")
|
||||||
|
@Expose
|
||||||
|
private String value;
|
||||||
|
@SerializedName("xml:lang")
|
||||||
|
@Expose
|
||||||
|
private String xmlLang;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* No args constructor for use in serialization
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public SubclassDescription() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* @param xmlLang
|
||||||
|
* @param type
|
||||||
|
*/
|
||||||
|
public SubclassDescription(String type, String value, String xmlLang) {
|
||||||
|
super();
|
||||||
|
this.type = type;
|
||||||
|
this.value = value;
|
||||||
|
this.xmlLang = xmlLang;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns type
|
||||||
|
*/
|
||||||
|
public void setType(String type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gets value of the depiction
|
||||||
|
*/
|
||||||
|
public String getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValue(String value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get language in which the depiction was requested
|
||||||
|
*/
|
||||||
|
public String getXmlLang() {
|
||||||
|
return xmlLang;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -6,6 +6,7 @@ import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
|
|
||||||
|
import fr.free.nrw.commons.depictions.SubClass.models.SubclassDescription;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
@ -242,7 +243,13 @@ public class OkHttpJsonApiClient {
|
||||||
String label = binding.getSubclassLabel().getValue();
|
String label = binding.getSubclassLabel().getValue();
|
||||||
String entityId = binding.getSubclass().getValue();
|
String entityId = binding.getSubclass().getValue();
|
||||||
entityId = entityId.substring(entityId.lastIndexOf("/") + 1);
|
entityId = entityId.substring(entityId.lastIndexOf("/") + 1);
|
||||||
subItems.add(new DepictedItem(label, "", "", false,entityId ));
|
String description = "";
|
||||||
|
SubclassDescription subclassDescription = binding.getSubclassDescription();
|
||||||
|
if (subclassDescription != null
|
||||||
|
&& subclassDescription.getXmlLang() != null) {
|
||||||
|
description = subclassDescription.getValue();
|
||||||
|
}
|
||||||
|
subItems.add(new DepictedItem(label, description, "", false, entityId));
|
||||||
Timber.e(label);
|
Timber.e(label);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -288,7 +295,13 @@ public class OkHttpJsonApiClient {
|
||||||
if (parentClass.get("value") != null) {
|
if (parentClass.get("value") != null) {
|
||||||
String entityId = parentClass.getString("value");
|
String entityId = parentClass.getString("value");
|
||||||
entityId = entityId.substring(entityId.lastIndexOf("/") + 1);
|
entityId = entityId.substring(entityId.lastIndexOf("/") + 1);
|
||||||
subItems.add(new DepictedItem(labelString, "", "", false, entityId));
|
String description = "";
|
||||||
|
if (!object.isNull("parentClassDescription")) {
|
||||||
|
JSONObject parentClassDescription = (JSONObject) object
|
||||||
|
.get("parentClassDescription");
|
||||||
|
description = parentClassDescription.getString("value");
|
||||||
|
}
|
||||||
|
subItems.add(new DepictedItem(labelString, description, "", false, entityId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
SELECT ?parentClass ?parentClassLabel WHERE {
|
SELECT ?parentClass ?parentClassLabel ?parentClassDescription WHERE {
|
||||||
wd:${QID} wdt:P279 ?parentClass.
|
wd:${QID} wdt:P279 ?parentClass.
|
||||||
SERVICE wikibase:label { bd:serviceParam wikibase:language ${LANG}. }
|
SERVICE wikibase:label { bd:serviceParam wikibase:language ${LANG}. }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
SELECT ?subclass ?subclassLabel WHERE {
|
SELECT ?subclass ?subclassLabel ?subclassDescription WHERE {
|
||||||
?subclass wdt:P279 wd:${QID}.
|
?subclass wdt:P279 wd:${QID}.
|
||||||
SERVICE wikibase:label { bd:serviceParam wikibase:language ${LANG}. }
|
SERVICE wikibase:label { bd:serviceParam wikibase:language ${LANG}. }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue