Skip to content

Commit 9b4fb89

Browse files
committed
#45 FPListener in MapActivity and FPAtlas is a MapListener
1 parent d4c878c commit 9b4fb89

File tree

3 files changed

+108
-2
lines changed

3 files changed

+108
-2
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package org.fieldpapers.listeners;
2+
3+
public interface FPListener {
4+
5+
void onMapCenterPageChangeMessage(String msg);
6+
7+
}

MapboxAndroidSDK/src/main/java/org/fieldpapers/model/FPAtlas.java

Lines changed: 77 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,18 @@
44
import android.content.Context;
55
import android.content.SharedPreferences;
66

7+
import com.mapbox.mapboxsdk.api.ILatLng;
8+
import com.mapbox.mapboxsdk.events.MapListener;
9+
import com.mapbox.mapboxsdk.events.RotateEvent;
10+
import com.mapbox.mapboxsdk.events.ScrollEvent;
11+
import com.mapbox.mapboxsdk.events.ZoomEvent;
12+
import com.mapbox.mapboxsdk.overlay.Marker;
713
import com.mapbox.mapboxsdk.views.MapView;
14+
import com.mapbox.mapboxsdk.views.MapViewListener;
815
import com.vividsolutions.jts.index.quadtree.Quadtree;
916

1017
import org.apache.commons.io.FileUtils;
18+
import org.fieldpapers.listeners.FPListener;
1119
import org.json.JSONArray;
1220
import org.json.JSONException;
1321
import org.json.JSONObject;
@@ -17,7 +25,7 @@
1725
import java.util.HashMap;
1826
import java.util.Map;
1927

20-
public class FPAtlas {
28+
public class FPAtlas implements MapViewListener, MapListener {
2129

2230
private static final String PREVIOUS_FP_FILE_PATH = "org.redcross.openmapkit.PREVIOUS_FP_FILE_PATH";
2331
private static File fpGeoJson;
@@ -26,6 +34,8 @@ public class FPAtlas {
2634
private JSONObject geoJson;
2735
private String title;
2836

37+
private Activity activity;
38+
2939
private Quadtree spatialIndex = new Quadtree();
3040
private Map<String, FPPage> pages = new HashMap<>();
3141

@@ -52,7 +62,14 @@ public static void addToMap(Activity activity, MapView mapView) throws IOExcepti
5262
editor.putString(PREVIOUS_FP_FILE_PATH, fpGeoJson.getAbsolutePath());
5363
}
5464

65+
if (atlas == null) return;
66+
67+
atlas.setActivity(activity);
5568

69+
mapView.setMapViewListener(atlas);
70+
mapView.addListener(atlas);
71+
// mapView.getOverlays().add(osmOverlay);
72+
// mapView.invalidate();
5673
}
5774

5875
/**
@@ -100,4 +117,63 @@ public String title() {
100117
return title;
101118
}
102119

120+
public void setActivity(Activity activity) {
121+
this.activity = activity;
122+
}
123+
124+
private FPPage findMapCenterPage() {
125+
126+
return null;
127+
}
128+
129+
130+
/**
131+
* LISTENERS
132+
*/
133+
134+
@Override
135+
public void onScroll(ScrollEvent event) {
136+
findMapCenterPage();
137+
}
138+
139+
@Override
140+
public void onZoom(ZoomEvent event) {
141+
findMapCenterPage();
142+
}
143+
144+
@Override
145+
public void onRotate(RotateEvent event) {
146+
findMapCenterPage();
147+
}
148+
149+
@Override
150+
public void onShowMarker(MapView pMapView, Marker pMarker) {
151+
152+
}
153+
154+
@Override
155+
public void onHideMarker(MapView pMapView, Marker pMarker) {
156+
157+
}
158+
159+
@Override
160+
public void onTapMarker(MapView pMapView, Marker pMarker) {
161+
162+
}
163+
164+
@Override
165+
public void onLongPressMarker(MapView pMapView, Marker pMarker) {
166+
167+
}
168+
169+
@Override
170+
public void onTapMap(MapView pMapView, ILatLng pPosition) {
171+
172+
}
173+
174+
@Override
175+
public void onLongPressMap(MapView pMapView, ILatLng pPosition) {
176+
177+
}
178+
103179
}

app/src/main/java/org/redcross/openmapkit/MapActivity.java

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@
4141
import com.spatialdev.osm.model.OSMElement;
4242
import com.spatialdev.osm.model.OSMNode;
4343

44+
import org.fieldpapers.listeners.FPListener;
45+
import org.fieldpapers.model.FPAtlas;
46+
import org.json.JSONException;
4447
import org.redcross.openmapkit.deployments.DeploymentsActivity;
4548
import org.redcross.openmapkit.odkcollect.ODKCollectHandler;
4649
import org.redcross.openmapkit.odkcollect.tag.ODKTag;
@@ -54,7 +57,7 @@
5457
import java.util.LinkedList;
5558
import java.util.Set;
5659

57-
public class MapActivity extends AppCompatActivity implements OSMSelectionListener {
60+
public class MapActivity extends AppCompatActivity implements OSMSelectionListener, FPListener {
5861

5962
protected static final String PREVIOUS_LAT = "org.redcross.openmapkit.PREVIOUS_LAT";
6063
protected static final String PREVIOUS_LNG = "org.redcross.openmapkit.PREVIOUS_LNG";
@@ -142,6 +145,8 @@ protected void onCreate(Bundle savedInstanceState) {
142145
// initialize basemap object
143146
basemap = new Basemap(this);
144147

148+
initializeFP();
149+
145150
initializeOsmXml();
146151

147152
// add user location toggle button
@@ -332,6 +337,19 @@ protected void proportionMapAndList(int topWeight, int bottomWeight) {
332337
mBottomLinearLayout.setLayoutParams(new LinearLayout.LayoutParams(bottomLayoutParams.width, bottomLayoutParams.height, bottomWeight));
333338
}
334339

340+
/**
341+
* Adds FieldPapers Overlay to the map (if we have one).
342+
*/
343+
protected void initializeFP() {
344+
try {
345+
FPAtlas.addToMap(this, mapView);
346+
} catch (IOException e) {
347+
e.printStackTrace();
348+
} catch (JSONException e) {
349+
e.printStackTrace();
350+
}
351+
}
352+
335353
/**
336354
* Loads OSM XML stored on the device.
337355
*/
@@ -789,4 +807,9 @@ private boolean isAppInstalled(String uri) {
789807
return app_installed;
790808
}
791809

810+
@Override
811+
public void onMapCenterPageChangeMessage(String msg) {
812+
813+
}
814+
792815
}

0 commit comments

Comments
 (0)