Skip to content

Commit 8cb4e28

Browse files
authored
Wiki itemname displaying in toast (#3569)
* Wiki itemname displaying in toast * Wikidata label displaying in toast * Wikidata label displaying in toast * wikiItemName added to parcelable methods * Wikidata label displayed in toast * Wikidata label displayed in toast
1 parent f7efa0e commit 8cb4e28

File tree

5 files changed

+26
-15
lines changed

5 files changed

+26
-15
lines changed

app/src/main/java/fr/free/nrw/commons/contributions/Contribution.java

+11
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ public Contribution[] newArray(int i) {
6868
public String decimalCoords;
6969
public boolean isMultiple;
7070
public String wikiDataEntityId;
71+
public String wikiItemName;
7172
private String p18Value;
7273
public Uri contentProviderUri;
7374
public String dateCreatedSource;
@@ -112,6 +113,7 @@ public Contribution(Parcel in) {
112113
state = in.readInt();
113114
transferred = in.readLong();
114115
isMultiple = in.readInt() == 1;
116+
wikiItemName = in.readString();
115117
}
116118

117119
@Override
@@ -122,6 +124,7 @@ public void writeToParcel(Parcel parcel, int flags) {
122124
parcel.writeInt(state);
123125
parcel.writeLong(transferred);
124126
parcel.writeInt(isMultiple ? 1 : 0);
127+
parcel.writeString(wikiItemName);
125128
}
126129

127130
public void setDateCreatedSource(String dateCreatedSource) {
@@ -263,6 +266,10 @@ public String getWikiDataEntityId() {
263266
return wikiDataEntityId;
264267
}
265268

269+
public String getWikiItemName() {
270+
return wikiItemName;
271+
}
272+
266273
/**
267274
* When the corresponding wikidata entity is known as in case of nearby uploads, it can be set
268275
* using the setter method
@@ -272,6 +279,10 @@ public void setWikiDataEntityId(String wikiDataEntityId) {
272279
this.wikiDataEntityId = wikiDataEntityId;
273280
}
274281

282+
public void setWikiItemName(String wikiItemName) {
283+
this.wikiItemName = wikiItemName;
284+
}
285+
275286
public String getP18Value() {
276287
return p18Value;
277288
}

app/src/main/java/fr/free/nrw/commons/upload/UploadModel.java

+1
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ public Observable<Contribution> buildContributions() {
160160
CommonsApplication.DEFAULT_EDIT_SUMMARY, item.gpsCoords.getDecimalCoords());
161161
if (item.place != null) {
162162
contribution.setWikiDataEntityId(item.place.getWikiDataEntityId());
163+
contribution.setWikiItemName(item.place.getName());
163164
// If item already has an image, we need to know it. We don't want to override existing image later
164165
contribution.setP18Value(item.place.pic);
165166
}

app/src/main/java/fr/free/nrw/commons/upload/UploadService.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ private void uploadContribution(Contribution contribution) {
281281
Timber.d("Contribution upload success. Initiating Wikidata edit for"
282282
+ " entity id %s if necessary (if P18 is null). P18 value is %s",
283283
contribution.getWikiDataEntityId(), contribution.getP18Value());
284-
wikidataEditService.createClaimWithLogging(contribution.getWikiDataEntityId(), canonicalFilename, contribution.getP18Value());
284+
wikidataEditService.createClaimWithLogging(contribution.getWikiDataEntityId(), contribution.getWikiItemName(), canonicalFilename, contribution.getP18Value());
285285
contribution.setFilename(canonicalFilename);
286286
contribution.setImageUrl(uploadResult.getImageinfo().getOriginalUrl());
287287
contribution.setState(Contribution.STATE_COMPLETED);

app/src/main/java/fr/free/nrw/commons/wikidata/WikidataEditService.java

+8-9
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public class WikidataEditService {
5050
* @param fileName name of the file we will upload
5151
* @param p18Value pic attribute of Wikidata item
5252
*/
53-
public void createClaimWithLogging(String wikidataEntityId, String fileName, @NonNull String p18Value) {
53+
public void createClaimWithLogging(String wikidataEntityId, String wikiItemName, String fileName, @NonNull String p18Value) {
5454
if (wikidataEntityId == null) {
5555
Timber.d("Skipping creation of claim as Wikidata entity ID is null");
5656
return;
@@ -71,7 +71,7 @@ public void createClaimWithLogging(String wikidataEntityId, String fileName, @No
7171
return;
7272
}
7373

74-
editWikidataProperty(wikidataEntityId, fileName);
74+
editWikidataProperty(wikidataEntityId, wikiItemName, fileName);
7575
}
7676

7777
/**
@@ -82,7 +82,7 @@ public void createClaimWithLogging(String wikidataEntityId, String fileName, @No
8282
* @param fileName
8383
*/
8484
@SuppressLint("CheckResult")
85-
private void editWikidataProperty(String wikidataEntityId, String fileName) {
85+
private void editWikidataProperty(String wikidataEntityId, String wikiItemName, String fileName) {
8686
Timber.d("Upload successful with wiki data entity id as %s", wikidataEntityId);
8787
Timber.d("Attempting to edit Wikidata property %s", wikidataEntityId);
8888

@@ -98,18 +98,18 @@ private void editWikidataProperty(String wikidataEntityId, String fileName) {
9898
})
9999
.subscribeOn(Schedulers.io())
100100
.observeOn(AndroidSchedulers.mainThread())
101-
.subscribe(revisionId -> handleClaimResult(wikidataEntityId, String.valueOf(revisionId)), throwable -> {
101+
.subscribe(revisionId -> handleClaimResult(wikidataEntityId, wikiItemName, String.valueOf(revisionId)), throwable -> {
102102
Timber.e(throwable, "Error occurred while making claim");
103103
ViewUtil.showLongToast(context, context.getString(R.string.wikidata_edit_failure));
104104
});
105105
}
106106

107-
private void handleClaimResult(String wikidataEntityId, String revisionId) {
107+
private void handleClaimResult(String wikidataEntityId, String wikiItemName, String revisionId) {
108108
if (revisionId != null) {
109109
if (wikidataEditListener != null) {
110110
wikidataEditListener.onSuccessfulWikidataEdit();
111111
}
112-
showSuccessToast();
112+
showSuccessToast(wikiItemName);
113113
} else {
114114
Timber.d("Unable to make wiki data edit for entity %s", wikidataEntityId);
115115
ViewUtil.showLongToast(context, context.getString(R.string.wikidata_edit_failure));
@@ -119,10 +119,9 @@ private void handleClaimResult(String wikidataEntityId, String revisionId) {
119119
/**
120120
* Show a success toast when the edit is made successfully
121121
*/
122-
private void showSuccessToast() {
123-
String title = directKvStore.getString("Title", "");
122+
private void showSuccessToast(String wikiItemName) {
124123
String successStringTemplate = context.getString(R.string.successful_wikidata_edit);
125-
String successMessage = String.format(Locale.getDefault(), successStringTemplate, title);
124+
String successMessage = String.format(Locale.getDefault(), successStringTemplate, wikiItemName);
126125
ViewUtil.showLongToast(context, successMessage);
127126
}
128127

app/src/test/kotlin/fr/free/nrw/commons/wikidata/WikidataEditServiceTest.kt

+5-5
Original file line numberDiff line numberDiff line change
@@ -34,27 +34,27 @@ class WikidataEditServiceTest {
3434

3535
@Test
3636
fun noClaimsWhenEntityIdIsNull() {
37-
wikidataEditService!!.createClaimWithLogging(null, "Test.jpg","")
37+
wikidataEditService!!.createClaimWithLogging(null, null,"Test.jpg","")
3838
verifyZeroInteractions(wikidataClient!!)
3939
}
4040

4141
@Test
4242
fun noClaimsWhenFileNameIsNull() {
43-
wikidataEditService!!.createClaimWithLogging("Q1", null,"")
43+
wikidataEditService!!.createClaimWithLogging("Q1", "Test", null,"")
4444
verifyZeroInteractions(wikidataClient!!)
4545
}
4646

4747
@Test
4848
fun noClaimsWhenP18IsNotEmpty() {
49-
wikidataEditService!!.createClaimWithLogging("Q1", "Test.jpg","Previous.jpg")
49+
wikidataEditService!!.createClaimWithLogging("Q1", "Test","Test.jpg","Previous.jpg")
5050
verifyZeroInteractions(wikidataClient!!)
5151
}
5252

5353
@Test
5454
fun noClaimsWhenLocationIsNotCorrect() {
5555
`when`(directKvStore!!.getBoolean("Picture_Has_Correct_Location", true))
5656
.thenReturn(false)
57-
wikidataEditService!!.createClaimWithLogging("Q1", "Test.jpg","")
57+
wikidataEditService!!.createClaimWithLogging("Q1", "","Test.jpg","")
5858
verifyZeroInteractions(wikidataClient!!)
5959
}
6060

@@ -66,7 +66,7 @@ class WikidataEditServiceTest {
6666
.thenReturn(Observable.just(1L))
6767
`when`(wikidataClient!!.addEditTag(anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString()))
6868
.thenReturn(Observable.just(mock(AddEditTagResponse::class.java)))
69-
wikidataEditService!!.createClaimWithLogging("Q1", "Test.jpg","")
69+
wikidataEditService!!.createClaimWithLogging("Q1", "Test","Test.jpg","")
7070
verify(wikidataClient!!, times(1))
7171
.createClaim(ArgumentMatchers.anyString(), ArgumentMatchers.anyString())
7272
}

0 commit comments

Comments
 (0)