diff options
author | Leith Bade <leith@mapbox.com> | 2015-11-03 17:25:35 +1100 |
---|---|---|
committer | Leith Bade <leith@mapbox.com> | 2015-11-06 00:52:38 +1100 |
commit | 1fcc606d271c0a643f788c5d79ff763528cfc6b5 (patch) | |
tree | f96c97531dc594a64c5aaa30c4867db4e6ec0e37 /android | |
parent | 177372b83657cda9696ff68fd5cbb872b87ce324 (diff) | |
download | qtlocation-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.java | 26 |
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; |