Niedzielski has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/333286 )

Change subject: Fix: use app language when new nearby results are requested
......................................................................

Fix: use app language when new nearby results are requested

Previously, the nearby screen would use a copy of app language from
NearbyFragment birth. This caused app language changes to have no effect
on the map until the Fragment was recreated

Change-Id: I445f54e0984be8adaccfa654946fc9c37d971316
---
M app/src/main/java/org/wikipedia/nearby/NearbyClient.java
M app/src/main/java/org/wikipedia/nearby/NearbyFragment.java
M app/src/main/java/org/wikipedia/nearby/NearbyResult.java
M app/src/test/java/org/wikipedia/nearby/NearbyClientTest.java
4 files changed, 22 insertions(+), 12 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/86/333286/1

diff --git a/app/src/main/java/org/wikipedia/nearby/NearbyClient.java 
b/app/src/main/java/org/wikipedia/nearby/NearbyClient.java
index 57cb69d..5d3f08e 100644
--- a/app/src/main/java/org/wikipedia/nearby/NearbyClient.java
+++ b/app/src/main/java/org/wikipedia/nearby/NearbyClient.java
@@ -30,10 +30,11 @@
     public Call<MwQueryResponse<Nearby>> request(@NonNull WikiSite wiki, 
double latitude,
                                                  double longitude, double 
radius,
                                                  @NonNull Callback cb) {
-        return request(cachedService.service(wiki), latitude, longitude, 
radius, cb);
+        return request(wiki, cachedService.service(wiki), latitude, longitude, 
radius, cb);
     }
 
-    @VisibleForTesting Call<MwQueryResponse<Nearby>> request(@NonNull Service 
service,
+    @VisibleForTesting Call<MwQueryResponse<Nearby>> request(@NonNull final 
WikiSite wiki,
+                                                             @NonNull Service 
service,
                                                              double latitude, 
double longitude,
                                                              double radius,
                                                              @NonNull final 
Callback cb) {
@@ -51,11 +52,11 @@
                     // Accordingly, let's assume that we just got an empty 
result set unless the
                     // API explicitly tells us we have an error.
                     if (response.body().success()) {
-                        cb.success(call, new 
NearbyResult(response.body().query().list()));
+                        cb.success(call, new NearbyResult(wiki, 
response.body().query().list()));
                     } else if (response.body().hasError()) {
                         cb.failure(call, new 
MwApiException(response.body().getError()));
                     } else {
-                        cb.success(call, new NearbyResult(new 
ArrayList<NearbyPage>()));
+                        cb.success(call, new NearbyResult(wiki, new 
ArrayList<NearbyPage>()));
                     }
                 } else {
                     cb.failure(call, RetrofitException.httpError(response, 
cachedService.retrofit()));
diff --git a/app/src/main/java/org/wikipedia/nearby/NearbyFragment.java 
b/app/src/main/java/org/wikipedia/nearby/NearbyFragment.java
index 9fe16ff..5a572aa 100644
--- a/app/src/main/java/org/wikipedia/nearby/NearbyFragment.java
+++ b/app/src/main/java/org/wikipedia/nearby/NearbyFragment.java
@@ -78,7 +78,6 @@
     @Nullable private MapboxMap mapboxMap;
     private Icon markerIconPassive;
 
-    private WikiSite wiki;
     private NearbyClient client;
     private NearbyResult lastResult;
 
@@ -92,7 +91,6 @@
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        wiki = WikipediaApp.getInstance().getWikiSite();
         client = new NearbyClient();
         disableTelemetry();
     }
@@ -213,7 +211,7 @@
                     public boolean onMarkerClick(@NonNull Marker marker) {
                         NearbyPage page = findNearbyPageFromMarker(marker);
                         if (page != null) {
-                            PageTitle title = new PageTitle(page.getTitle(), 
wiki, page.getThumbUrl());
+                            PageTitle title = new PageTitle(page.getTitle(), 
lastResult.getWiki(), page.getThumbUrl());
                             onLoadPage(title, HistoryEntry.SOURCE_NEARBY, 
page.getLocation());
                             return true;
                         } else {
@@ -338,6 +336,7 @@
             currentLocation = fromLatLng(mapboxMap.getCameraPosition().target);
             onLoading();
 
+            WikiSite wiki = WikipediaApp.getInstance().getWikiSite();
             client.request(wiki, currentLocation.getLatitude(),
                     currentLocation.getLongitude(), getMapRadius(), new 
NearbyClient.Callback() {
                         @Override public void success(@NonNull 
Call<MwQueryResponse<Nearby>> call,
@@ -462,4 +461,4 @@
     private Callback callback() {
         return FragmentUtil.getCallback(this, Callback.class);
     }
-}
+}
\ No newline at end of file
diff --git a/app/src/main/java/org/wikipedia/nearby/NearbyResult.java 
b/app/src/main/java/org/wikipedia/nearby/NearbyResult.java
index 2abe01e..24ceff4 100644
--- a/app/src/main/java/org/wikipedia/nearby/NearbyResult.java
+++ b/app/src/main/java/org/wikipedia/nearby/NearbyResult.java
@@ -2,16 +2,24 @@
 
 import android.support.annotation.NonNull;
 
+import org.wikipedia.dataclient.WikiSite;
+
 import java.util.List;
 
 class NearbyResult {
-    @NonNull private List<NearbyPage> list;
+    @NonNull private final WikiSite wiki;
+    @NonNull private final List<NearbyPage> list;
 
-    NearbyResult(@NonNull List<NearbyPage> list) {
+    NearbyResult(@NonNull WikiSite wiki, @NonNull List<NearbyPage> list) {
+        this.wiki = wiki;
         this.list = list;
+    }
+
+    @NonNull public WikiSite getWiki() {
+        return wiki;
     }
 
     @NonNull public List<NearbyPage> getList() {
         return list;
     }
-}
+}
\ No newline at end of file
diff --git a/app/src/test/java/org/wikipedia/nearby/NearbyClientTest.java 
b/app/src/test/java/org/wikipedia/nearby/NearbyClientTest.java
index 3f40fec..61dbd02 100644
--- a/app/src/test/java/org/wikipedia/nearby/NearbyClientTest.java
+++ b/app/src/test/java/org/wikipedia/nearby/NearbyClientTest.java
@@ -6,6 +6,7 @@
 
 import org.junit.Test;
 import org.mockito.ArgumentCaptor;
+import org.wikipedia.dataclient.WikiSite;
 import org.wikipedia.dataclient.mwapi.MwApiException;
 import org.wikipedia.dataclient.mwapi.MwQueryResponse;
 import org.wikipedia.dataclient.retrofit.RetrofitException;
@@ -143,6 +144,7 @@
     }
 
     private Call<MwQueryResponse<Nearby>> request(@NonNull 
NearbyClient.Callback cb) {
-        return subject.request(service(NearbyClient.Service.class), 0, 0, 0, 
cb);
+        return subject.request(WikiSite.forLanguageCode("test"),
+                service(NearbyClient.Service.class), 0, 0, 0, cb);
     }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/333286
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I445f54e0984be8adaccfa654946fc9c37d971316
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Niedzielski <[email protected]>
Gerrit-Reviewer: Sniedzielski <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to