Skip to content

Commit 63f1ed8

Browse files
Fix for #5808: Update the cached Place Items on the successful association of Wiki Item (#5864)
* (fixes #5855) fetch item label in nearby based on user configured language. * implement a method to delete Place entity from database * clear the cache for a item when a wikiItem is updated. * fix style issue * Update placesRepository on successful WikiItemEdit * Revert the delete operations added to the PlaceDAO * Set name of the place to avoid race condition with NearbyParentFragment. Update Success Notification to show only after the pin has been updated. * Clean-up --------- Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
1 parent c77e5ab commit 63f1ed8

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

app/src/main/java/fr/free/nrw/commons/nearby/PlaceDao.java

-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import androidx.room.Insert;
55
import androidx.room.OnConflictStrategy;
66
import androidx.room.Query;
7-
import fr.free.nrw.commons.location.LatLng;
87
import io.reactivex.Completable;
98

109
/**

app/src/main/java/fr/free/nrw/commons/nearby/PlacesLocalDataSource.java

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package fr.free.nrw.commons.nearby;
22

3-
import fr.free.nrw.commons.location.LatLng;
43
import io.reactivex.Completable;
54
import javax.inject.Inject;
65

app/src/main/java/fr/free/nrw/commons/upload/worker/UploadWorker.kt

+17-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import androidx.work.Data
1717
import androidx.work.ForegroundInfo
1818
import androidx.work.WorkerParameters
1919
import dagger.android.ContributesAndroidInjector
20+
import fr.free.nrw.commons.BuildConfig.HOME_URL
2021
import fr.free.nrw.commons.CommonsApplication
2122
import fr.free.nrw.commons.Media
2223
import fr.free.nrw.commons.R
@@ -30,6 +31,7 @@ import fr.free.nrw.commons.customselector.database.UploadedStatus
3031
import fr.free.nrw.commons.customselector.database.UploadedStatusDao
3132
import fr.free.nrw.commons.di.ApplicationlessInjection
3233
import fr.free.nrw.commons.media.MediaClient
34+
import fr.free.nrw.commons.nearby.PlacesRepository
3335
import fr.free.nrw.commons.theme.BaseActivity
3436
import fr.free.nrw.commons.upload.FileUtilsWrapper
3537
import fr.free.nrw.commons.upload.StashUploadResult
@@ -38,6 +40,7 @@ import fr.free.nrw.commons.upload.UploadClient
3840
import fr.free.nrw.commons.upload.UploadProgressActivity
3941
import fr.free.nrw.commons.upload.UploadResult
4042
import fr.free.nrw.commons.wikidata.WikidataEditService
43+
import io.reactivex.schedulers.Schedulers
4144
import kotlinx.coroutines.Dispatchers
4245
import kotlinx.coroutines.MainScope
4346
import kotlinx.coroutines.launch
@@ -74,6 +77,9 @@ class UploadWorker(
7477
@Inject
7578
lateinit var fileUtilsWrapper: FileUtilsWrapper
7679

80+
@Inject
81+
lateinit var placesRepository: PlacesRepository
82+
7783
private val processingUploadsNotificationTag = BuildConfig.APPLICATION_ID + " : upload_tag"
7884

7985
private val processingUploadsNotificationId = 101
@@ -379,7 +385,7 @@ class UploadWorker(
379385
saveCompletedContribution(contribution, uploadResult)
380386
} else {
381387
Timber.d(
382-
"WikiDataEdit not required, making wikidata edit",
388+
"WikiDataEdit required, making wikidata edit",
383389
)
384390
makeWikiDataEdit(uploadResult, contribution)
385391
}
@@ -471,6 +477,16 @@ class UploadWorker(
471477
contribution.media.captions,
472478
)
473479
if (null != revisionID) {
480+
withContext(Dispatchers.IO) {
481+
val place = placesRepository.fetchPlace(wikiDataPlace.id);
482+
place.name = wikiDataPlace.name;
483+
place.pic = HOME_URL + uploadResult.createCanonicalFileName()
484+
placesRepository
485+
.save(place)
486+
.subscribeOn(Schedulers.io())
487+
.blockingAwait()
488+
Timber.d("Updated WikiItem place ${place.name} with image ${place.pic}")
489+
}
474490
showSuccessNotification(contribution)
475491
}
476492
} catch (exception: Exception) {

0 commit comments

Comments
 (0)