Skip to content

Commit 133e11f

Browse files
committed
Fix image loading for peer review
1 parent 73dff40 commit 133e11f

File tree

3 files changed

+14
-6
lines changed

3 files changed

+14
-6
lines changed

app/src/main/java/fr/free/nrw/commons/review/ReviewActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ private void updateImage(Media media) {
135135
simpleDraweeView.setImageURI(media.getImageUrl());
136136

137137
reviewController.onImageRefreshed(fileName); //file name is updated
138-
compositeDisposable.add(reviewHelper.getFirstRevisionOfFile("File:" + fileName)
138+
compositeDisposable.add(reviewHelper.getFirstRevisionOfFile(fileName)
139139
.subscribeOn(Schedulers.io())
140140
.observeOn(AndroidSchedulers.mainThread())
141141
.subscribe(revision -> {

app/src/main/java/fr/free/nrw/commons/review/ReviewHelper.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,23 +31,28 @@ public ReviewHelper(OkHttpJsonApiClient okHttpJsonApiClient, MediaWikiApi mediaW
3131
this.mediaWikiApi = mediaWikiApi;
3232
}
3333

34+
Single<Media> getRandomMedia() {
35+
return getRandomFileChange()
36+
.flatMap(fileName -> okHttpJsonApiClient.getMedia(fileName, false));
37+
}
38+
3439
/**
35-
* Gets a random media file for review.
40+
* Gets a random file change for review.
3641
* - Picks the most recent changes in the last 30 day window
3742
* - Picks a random file from those changes
3843
* - Checks if the file is nominated for deletion
3944
* - Retries upto 5 times for getting a file which is not nominated for deletion
4045
*
4146
* @return
4247
*/
43-
Single<Media> getRandomMedia() {
48+
private Single<String> getRandomFileChange() {
4449
return okHttpJsonApiClient.getRecentFileChanges()
4550
.map(this::findImageInRecentChanges)
4651
.flatMap(title -> mediaWikiApi.pageExists("Commons:Deletion_requests/" + title)
4752
.map(pageExists -> new Pair<>(title, pageExists)))
4853
.map((Pair<String, Boolean> pair) -> {
4954
if (!pair.second) {
50-
return new Media(pair.first.replace("File:", ""));
55+
return pair.first;
5156
}
5257
throw new Exception("Already nominated for deletion");
5358
}).retry(MAX_RANDOM_TRIES);

app/src/test/kotlin/fr/free/nrw/commons/review/ReviewHelperTest.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ import org.junit.Test
1010
import org.mockito.ArgumentMatchers
1111
import org.mockito.InjectMocks
1212
import org.mockito.Mock
13-
import org.mockito.Mockito.`when`
14-
import org.mockito.Mockito.mock
13+
import org.mockito.Mockito.*
1514
import org.mockito.MockitoAnnotations
1615
import org.wikipedia.dataclient.mwapi.MwQueryPage
1716
import org.wikipedia.dataclient.mwapi.RecentChange
@@ -51,6 +50,10 @@ class ReviewHelperTest {
5150

5251
`when`(mediaWikiApi?.pageExists(ArgumentMatchers.anyString()))
5352
.thenReturn(Single.just(false))
53+
`when`(okHttpJsonApiClient?.getMedia(ArgumentMatchers.anyString(), ArgumentMatchers.anyBoolean()))
54+
.thenReturn(Single.just(mock(Media::class.java)))
55+
56+
5457
val randomMedia = reviewHelper?.randomMedia?.blockingGet()
5558

5659
assertTrue(randomMedia is Media)

0 commit comments

Comments
 (0)