diff --git a/app/src/main/java/fr/free/nrw/commons/explore/images/SearchImagesRenderer.java b/app/src/main/java/fr/free/nrw/commons/explore/images/SearchImagesRenderer.java index 42c044d70..022e8307e 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/images/SearchImagesRenderer.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/images/SearchImagesRenderer.java @@ -65,11 +65,11 @@ class SearchImagesRenderer extends Renderer { */ private void setAuthorView(Media item, TextView author) { if (item.getCreator() != null && !item.getCreator().equals("")) { - author.setVisibility(View.GONE); + author.setVisibility(View.VISIBLE); String uploadedByTemplate = getContext().getString(R.string.image_uploaded_by); author.setText(String.format(uploadedByTemplate, item.getCreator())); } else { - author.setVisibility(View.VISIBLE); + author.setVisibility(View.GONE); } } } diff --git a/app/src/main/java/fr/free/nrw/commons/mwapi/ApacheHttpClientMediaWikiApi.java b/app/src/main/java/fr/free/nrw/commons/mwapi/ApacheHttpClientMediaWikiApi.java index 2eb3f9b71..4cf0d8253 100644 --- a/app/src/main/java/fr/free/nrw/commons/mwapi/ApacheHttpClientMediaWikiApi.java +++ b/app/src/main/java/fr/free/nrw/commons/mwapi/ApacheHttpClientMediaWikiApi.java @@ -736,17 +736,21 @@ public class ApacheHttpClientMediaWikiApi implements MediaWikiApi { @NonNull public List searchImages(String query, int offset) { List imageNodes = null; + List authorNodes = null; + CustomApiResult customApiResult; try { - imageNodes = api.action("query") + customApiResult= api.action("query") .param("format", "xml") - .param("list", "search") - .param("srwhat", "text") - .param("srnamespace", "6") - .param("srlimit", "25") - .param("sroffset",offset) - .param("srsearch", query) - .get() - .getNodes("/api/query/search/p/@title"); + .param("generator", "search") + .param("gsrwhat", "text") + .param("gsrnamespace", "6") + .param("gsrlimit", "25") + .param("gsroffset",offset) + .param("gsrsearch", query) + .param("prop", "imageinfo") + .get(); + imageNodes= customApiResult.getNodes("/api/query/pages/page/@title"); + authorNodes= customApiResult.getNodes("/api/query/pages/page/imageinfo/ii/@user"); } catch (IOException e) { Timber.e("Failed to obtain searchImages", e); } @@ -756,11 +760,13 @@ public class ApacheHttpClientMediaWikiApi implements MediaWikiApi { } List images = new ArrayList<>(); - for (CustomApiResult imageNode : imageNodes) { - String imgName = imageNode.getDocument().getTextContent(); - images.add(new Media(imgName)); - } + for (int i=0; i< imageNodes.size();i++){ + String imgName = imageNodes.get(i).getDocument().getTextContent(); + Media media = new Media(imgName); + media.setCreator(authorNodes.get(i).getDocument().getTextContent()); + images.add(media); + } return images; }