From 77b8ab0c4c2cd37343fe6b6bb708f31e24e65468 Mon Sep 17 00:00:00 2001 From: misaochan Date: Wed, 23 Dec 2015 20:57:36 +1300 Subject: [PATCH] Minor changes As per @Niedzielski's feedback --- .../free/nrw/commons/upload/MwVolleyApi.java | 33 ++++++++++++++++ .../nrw/commons/upload/ShareActivity.java | 38 ++----------------- 2 files changed, 36 insertions(+), 35 deletions(-) diff --git a/commons/src/main/java/fr/free/nrw/commons/upload/MwVolleyApi.java b/commons/src/main/java/fr/free/nrw/commons/upload/MwVolleyApi.java index 3e1c363ac..59d3bb153 100644 --- a/commons/src/main/java/fr/free/nrw/commons/upload/MwVolleyApi.java +++ b/commons/src/main/java/fr/free/nrw/commons/upload/MwVolleyApi.java @@ -1,6 +1,7 @@ package fr.free.nrw.commons.upload; import android.content.Context; +import android.net.Uri; import android.util.Log; import com.android.volley.Cache; @@ -28,7 +29,39 @@ public class MwVolleyApi { public MwVolleyApi(Context context) { this.context = context; } + + /** + * Builds URL with image coords for MediaWiki API calls + * Example URL: https://commons.wikimedia.org/w/api.php?action=query&prop=categories|coordinates|pageprops&format=json&clshow=!hidden&coprop=type|name|dim|country|region|globe&codistancefrompoint=38.11386944444445|13.356263888888888& + * generator=geosearch&redirects=&ggscoord=38.11386944444445|13.356263888888888&ggsradius=100&ggslimit=10&ggsnamespace=6&ggsprop=type|name|dim|country|region|globe&ggsprimary=all&formatversion=2 + */ + public String buildUrl (String coords){ + + Uri.Builder builder = Uri.parse("https://commons.wikimedia.org/").buildUpon(); + + builder.appendPath("w") + .appendPath("api.php") + .appendQueryParameter("action", "query") + .appendQueryParameter("prop", "categories|coordinates|pageprops") + .appendQueryParameter("format", "json") + .appendQueryParameter("clshow", "!hidden") + .appendQueryParameter("coprop", "type|name|dim|country|region|globe") + .appendQueryParameter("codistancefrompoint", coords) + .appendQueryParameter("generator", "geosearch") + .appendQueryParameter("ggscoord", coords) + .appendQueryParameter("ggsradius", "100") + .appendQueryParameter("ggslimit", "10") + .appendQueryParameter("ggsnamespace", "6") + .appendQueryParameter("ggsprop", "type|name|dim|country|region|globe") + .appendQueryParameter("ggsprimary", "all") + .appendQueryParameter("formatversion", "2"); + + return builder.toString(); + } + + public void request(String apiUrl) { + JsonRequest request = new QueryRequest(apiUrl, new LogResponseListener(), new LogResponseErrorListener()); getQueue().add(request); diff --git a/commons/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java b/commons/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java index 0ead49cb5..f51c4703c 100644 --- a/commons/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java +++ b/commons/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java @@ -184,16 +184,15 @@ public class ShareActivity String coords = imageObj.getCoords(); Log.d("Image", "Coords of image: " + coords); + MwVolleyApi apiCall = new MwVolleyApi(this); + //build URL with image coords for MediaWiki API calls - String apiUrl = UrlBuilder.buildUrl(coords); + String apiUrl = apiCall.buildUrl(coords); Log.d("Image", "URL: " + apiUrl); - //asynchronous calls to MediaWiki Commons API to match image coords with nearby Commons categories - MwVolleyApi apiCall = new MwVolleyApi(this); apiCall.request(apiUrl); - ImageLoader.getInstance().displayImage(mediaUriString, backgroundImageView); if(savedInstanceState != null) { @@ -220,35 +219,4 @@ public class ShareActivity return super.onOptionsItemSelected(item); } - /** - * Builds URL with image coords for MediaWiki API calls - * Example URL: https://commons.wikimedia.org/w/api.php?action=query&prop=categories|coordinates|pageprops&format=json&clshow=!hidden&coprop=type|name|dim|country|region|globe&codistancefrompoint=38.11386944444445|13.356263888888888& - * generator=geosearch&redirects=&ggscoord=38.11386944444445|13.356263888888888&ggsradius=100&ggslimit=10&ggsnamespace=6&ggsprop=type|name|dim|country|region|globe&ggsprimary=all&formatversion=2 - */ - public static class UrlBuilder { - private static String buildUrl (String coords){ - - Uri.Builder builder = Uri.parse("https://commons.wikimedia.org/").buildUpon(); - - builder.appendPath("w") - .appendPath("api.php") - .appendQueryParameter("action", "query") - .appendQueryParameter("prop", "categories|coordinates|pageprops") - .appendQueryParameter("format", "json") - .appendQueryParameter("clshow", "!hidden") - .appendQueryParameter("coprop", "type|name|dim|country|region|globe") - .appendQueryParameter("codistancefrompoint", coords) - .appendQueryParameter("generator", "geosearch") - .appendQueryParameter("ggscoord", coords) - .appendQueryParameter("ggsradius", "100") - .appendQueryParameter("ggslimit", "10") - .appendQueryParameter("ggsnamespace", "6") - .appendQueryParameter("ggsprop", "type|name|dim|country|region|globe") - .appendQueryParameter("ggsprimary", "all") - .appendQueryParameter("formatversion", "2"); - - return builder.toString(); - } - } - }