summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorLeith Bade <leith@mapbox.com>2015-11-03 17:25:35 +1100
committerLeith Bade <leith@mapbox.com>2015-11-06 00:52:38 +1100
commit1fcc606d271c0a643f788c5d79ff763528cfc6b5 (patch)
treef96c97531dc594a64c5aaa30c4867db4e6ec0e37 /android
parent177372b83657cda9696ff68fd5cbb872b87ce324 (diff)
downloadqtlocation-mapboxgl-1fcc606d271c0a643f788c5d79ff763528cfc6b5.tar.gz
[android] Save polylines
Fixes #2906
Diffstat (limited to 'android')
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/PolylineActivity.java26
1 files changed, 19 insertions, 7 deletions
diff --git a/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/PolylineActivity.java b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/PolylineActivity.java
index 919053a22b..e000cf079d 100644
--- a/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/PolylineActivity.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/PolylineActivity.java
@@ -21,7 +21,10 @@ import java.util.List;
public class PolylineActivity extends AppCompatActivity {
- private List<Polyline> mPolyLines;
+ private static final String STATE_POLYLINE_OPTIONS = "polylineOptions";
+
+ private List<Polyline> mPolylines;
+ private ArrayList<PolylineOptions> mPolylineOptions = new ArrayList<>();
private MapView mMapView;
@Override
@@ -42,21 +45,28 @@ public class PolylineActivity extends AppCompatActivity {
mMapView.setAccessToken(ApiAccess.getToken(this));
mMapView.onCreate(savedInstanceState);
- mPolyLines = mMapView.addPolylines(PolylineProvider.getAll());
+ if (savedInstanceState != null) {
+ mPolylineOptions = savedInstanceState.getParcelableArrayList(STATE_POLYLINE_OPTIONS);
+ } else {
+ mPolylineOptions.addAll(PolylineProvider.getAll());
+ }
+ mPolylines = mMapView.addPolylines(mPolylineOptions);
findViewById(R.id.fab).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- if (mPolyLines != null && mPolyLines.size() > 0) {
- if (mPolyLines.size() == 1) {
+ if (mPolylines != null && mPolylines.size() > 0) {
+ if (mPolylines.size() == 1) {
// test for removing annotation
- mMapView.removeAnnotation(mPolyLines.get(0));
+ mMapView.removeAnnotation(mPolylines.get(0));
} else {
// test for removing annotations
- mMapView.removeAnnotations(mPolyLines);
+ mMapView.removeAnnotations(mPolylines);
}
}
- mPolyLines = mMapView.addPolylines(PolylineProvider.getRandomLine());
+ mPolylineOptions.clear();
+ mPolylineOptions.addAll(PolylineProvider.getRandomLine());
+ mPolylines = mMapView.addPolylines(mPolylineOptions);
}
});
}
@@ -90,6 +100,7 @@ public class PolylineActivity extends AppCompatActivity {
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mMapView.onSaveInstanceState(outState);
+ outState.putParcelableArrayList(STATE_POLYLINE_OPTIONS, mPolylineOptions);
}
@Override
@@ -115,6 +126,7 @@ public class PolylineActivity extends AppCompatActivity {
switch (item.getItemId()) {
case R.id.action_id_remove:
// test to remove all annotations
+ mPolylineOptions.clear();
mMapView.removeAllAnnotations();
return true;