From 2629340470c4b0d41da2822c83b86ebdfd229a52 Mon Sep 17 00:00:00 2001 From: sonalyadav Date: Sat, 21 Jun 2025 22:20:17 +0530 Subject: [PATCH] no more Failed to update Wikidata for green pins --- .../fr/free/nrw/commons/upload/worker/UploadWorker.kt | 10 +++++----- .../free/nrw/commons/wikidata/WikidataEditService.kt | 7 +++++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/worker/UploadWorker.kt b/app/src/main/java/fr/free/nrw/commons/upload/worker/UploadWorker.kt index 88bcbf22a..c8a1d9b98 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/worker/UploadWorker.kt +++ b/app/src/main/java/fr/free/nrw/commons/upload/worker/UploadWorker.kt @@ -472,9 +472,10 @@ class UploadWorker( if (wikiDataPlace != null) { if (!contribution.hasInvalidLocation()) { var revisionID: Long? = null + val p18WasSkipped = !wikiDataPlace.imageValue.isNullOrBlank() try { + if (!p18WasSkipped) { // Only set P18 if the place does not already have a picture - if (wikiDataPlace.imageValue.isNullOrBlank()) { revisionID = wikidataEditService.createClaim( wikiDataPlace, @@ -492,12 +493,10 @@ class UploadWorker( .blockingAwait() Timber.d("Updated WikiItem place ${place.name} with image ${place.pic}") } - showSuccessNotification(contribution) } - } else { - // Place already has a picture, so skip setting P18 but still show success notification - showSuccessNotification(contribution) } + // Always show success notification, whether P18 was set or skipped + showSuccessNotification(contribution) } catch (exception: Exception) { Timber.e(exception) } @@ -506,6 +505,7 @@ class UploadWorker( wikidataEditService.handleImageClaimResult( contribution.wikidataPlace!!, revisionID, + p18WasSkipped = p18WasSkipped ) } } else { diff --git a/app/src/main/java/fr/free/nrw/commons/wikidata/WikidataEditService.kt b/app/src/main/java/fr/free/nrw/commons/wikidata/WikidataEditService.kt index 0b49c03e9..f4bf23073 100644 --- a/app/src/main/java/fr/free/nrw/commons/wikidata/WikidataEditService.kt +++ b/app/src/main/java/fr/free/nrw/commons/wikidata/WikidataEditService.kt @@ -196,13 +196,16 @@ class WikidataEditService @Inject constructor( return wikidataClient.setClaim(claim, COMMONS_APP_TAG).blockingSingle() } - fun handleImageClaimResult(wikidataItem: WikidataItem, revisionId: Long?) { + fun handleImageClaimResult(wikidataItem: WikidataItem, revisionId: Long?, p18WasSkipped: Boolean = false) { if (revisionId != null) { wikidataEditListener?.onSuccessfulWikidataEdit() showSuccessToast(wikidataItem.name) - } else { + } else if (!p18WasSkipped) { Timber.d("Unable to make wiki data edit for entity %s", wikidataItem) showLongToast(context, context.getString(R.string.wikidata_edit_failure)) + } else { + Timber.d("Wikidata edit skipped for entity %s because P18 already exists", wikidataItem) + // No error shown to user, as this is not a failure } }