mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
#3077 Hide disambiguation items from depiction search - when fetching depictions get the entity instead of the search result (#3741)
This commit is contained in:
parent
34f02499e4
commit
057d11a0e0
31 changed files with 359 additions and 582 deletions
|
|
@ -2,83 +2,94 @@ package org.wikipedia.wikidata
|
|||
|
||||
import org.wikipedia.json.RuntimeTypeAdapterFactory
|
||||
|
||||
/*"datavalue": {
|
||||
"value": {
|
||||
"entity-type": "item",
|
||||
"id": "Q30",
|
||||
"numeric-id": 30
|
||||
},
|
||||
"type": "wikibase-entityid"
|
||||
}
|
||||
OR
|
||||
"datavalue": {
|
||||
"value": "SomePicture.jpg",
|
||||
"type": "string"
|
||||
}
|
||||
OR
|
||||
"datavalue": {
|
||||
"value": {
|
||||
"latitude": 37.7733,
|
||||
"longitude": -122.412255,
|
||||
"altitude": null,
|
||||
"precision": 1.0e-6,
|
||||
"globe": "http://www.wikidata.org/entity/Q2"
|
||||
},
|
||||
"type": "globecoordinate"
|
||||
}
|
||||
OR
|
||||
"datavalue": {
|
||||
"value": {
|
||||
"time": "+2019-12-03T00:00:00Z",
|
||||
"timezone": 0,
|
||||
"before": 0,
|
||||
"after": 0,
|
||||
"precision": 11,
|
||||
"calendarmodel": "http://www.wikidata.org/entity/Q1985727"
|
||||
},
|
||||
"type": "time"
|
||||
}
|
||||
*/
|
||||
sealed class DataValue(val type: String) {
|
||||
companion object {
|
||||
@JvmStatic
|
||||
val polymorphicTypeAdapter =
|
||||
RuntimeTypeAdapterFactory.of(DataValue::class.java, DataValue::type.name)
|
||||
.registerSubtype(DataValueEntityId::class.java, DataValueEntityId.TYPE)
|
||||
.registerSubtype(DataValueString::class.java, DataValueString.TYPE)
|
||||
.registerSubtype(
|
||||
DataValueGlobeCoordinate_partial::class.java,
|
||||
DataValueGlobeCoordinate_partial.TYPE
|
||||
)
|
||||
.registerSubtype(
|
||||
DataValueTime_partial::class.java,
|
||||
DataValueTime_partial.TYPE
|
||||
)
|
||||
.registerSubtype(EntityId::class.java, EntityId.TYPE)
|
||||
.registerSubtype(ValueString::class.java, ValueString.TYPE)
|
||||
.registerSubtype(GlobeCoordinate_partial::class.java, GlobeCoordinate_partial.TYPE)
|
||||
.registerSubtype(Time_partial::class.java, Time_partial.TYPE)
|
||||
.registerSubtype(Quantity_partial::class.java, Quantity_partial.TYPE)
|
||||
.registerSubtype(MonoLingualText_partial::class.java, MonoLingualText_partial.TYPE)
|
||||
}
|
||||
|
||||
data class DataValueEntityId(val value: WikiBaseEntityValue) :
|
||||
DataValue(TYPE) {
|
||||
// "value": {
|
||||
// "entity-type": "item",
|
||||
// "id": "Q30",
|
||||
// "numeric-id": 30
|
||||
// },
|
||||
// "type": "wikibase-entityid"
|
||||
// }
|
||||
data class EntityId(val value: WikiBaseEntityValue) : DataValue(TYPE) {
|
||||
companion object {
|
||||
const val TYPE = "wikibase-entityid"
|
||||
}
|
||||
}
|
||||
|
||||
data class DataValueString(val value: String) : DataValue(TYPE) {
|
||||
// {
|
||||
// "value": "SomePicture.jpg",
|
||||
// "type": "string"
|
||||
// }
|
||||
data class ValueString(val value: String) : DataValue(TYPE) {
|
||||
companion object {
|
||||
const val TYPE = "string"
|
||||
}
|
||||
}
|
||||
|
||||
class DataValueGlobeCoordinate_partial() :
|
||||
DataValue(TYPE) {
|
||||
// "value": {
|
||||
// "latitude": 37.7733,
|
||||
// "longitude": -122.412255,
|
||||
// "altitude": null,
|
||||
// "precision": 1.0e-6,
|
||||
// "globe": "http://www.wikidata.org/entity/Q2"
|
||||
// },
|
||||
// "type": "globecoordinate"
|
||||
// }
|
||||
class GlobeCoordinate_partial() : DataValue(TYPE) {
|
||||
companion object {
|
||||
const val TYPE = "globecoordinate"
|
||||
}
|
||||
}
|
||||
|
||||
class DataValueTime_partial() : DataValue(TYPE) {
|
||||
// "value": {
|
||||
// "time": "+2019-12-03T00:00:00Z",
|
||||
// "timezone": 0,
|
||||
// "before": 0,
|
||||
// "after": 0,
|
||||
// "precision": 11,
|
||||
// "calendarmodel": "http://www.wikidata.org/entity/Q1985727"
|
||||
// },
|
||||
// "type": "time"
|
||||
// }
|
||||
class Time_partial() : DataValue(TYPE) {
|
||||
companion object {
|
||||
const val TYPE = "time"
|
||||
}
|
||||
}
|
||||
|
||||
// {
|
||||
// "value": {
|
||||
// "amount": "+587",
|
||||
// "unit": "http://www.wikidata.org/entity/Q828224"
|
||||
// }
|
||||
// }
|
||||
class Quantity_partial() : DataValue(TYPE) {
|
||||
companion object {
|
||||
const val TYPE = "quantity"
|
||||
}
|
||||
}
|
||||
|
||||
// {
|
||||
// "value": {
|
||||
// "text": "활",
|
||||
// "language": "ko"
|
||||
// }
|
||||
// }
|
||||
class MonoLingualText_partial() : DataValue(TYPE) {
|
||||
companion object {
|
||||
const val TYPE = "monolingualtext"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package org.wikipedia.wikidata
|
||||
|
||||
import org.wikipedia.wikidata.DataValue.DataValueEntityId
|
||||
import org.wikipedia.wikidata.DataValue.EntityId
|
||||
|
||||
|
||||
data class EditClaim(val claims: List<Statement_partial>) {
|
||||
|
|
@ -14,7 +14,7 @@ data class EditClaim(val claims: List<Statement_partial>) {
|
|||
Snak_partial(
|
||||
"value",
|
||||
propertyName,
|
||||
DataValueEntityId(
|
||||
EntityId(
|
||||
WikiBaseEntityValue(
|
||||
"item",
|
||||
entityId,
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package org.wikipedia.wikidata;
|
|||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
|
@ -42,7 +43,7 @@ public class Entities extends MwResponse implements PostProcessingTypeAdapter.Po
|
|||
@Nullable private Map<String, Label> labels;
|
||||
@Nullable private Map<String, Label> descriptions;
|
||||
@Nullable private Map<String, SiteLink> sitelinks;
|
||||
@Nullable private Map<String, List<Statement_partial>> statements;
|
||||
@Nullable @SerializedName(value = "statements", alternate = "claims") private Map<String, List<Statement_partial>> statements;
|
||||
@Nullable private String missing;
|
||||
|
||||
@NonNull public String id() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue