summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorTobrun <tobrun@mapbox.com>2016-01-19 12:37:52 +0100
committerTobrun <tobrun@mapbox.com>2016-01-19 13:27:08 +0100
commit06e420939f1dc172260adc2a7a8ee1a4e5ba62fc (patch)
treeab509a057d6297c066e0ec5bea2cf91b79379b5b /platform
parent6b3745c68dcfe98d746d478539b035ea8699f736 (diff)
downloadqtlocation-mapboxgl-06e420939f1dc172260adc2a7a8ee1a4e5ba62fc.tar.gz
[android] #3604 - polyline activity memory leak fix
Diffstat (limited to 'platform')
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/PolylineActivity.java75
1 files changed, 35 insertions, 40 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/PolylineActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/PolylineActivity.java
index e000cf079d..d2d266a31b 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/PolylineActivity.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/PolylineActivity.java
@@ -22,6 +22,12 @@ import java.util.List;
public class PolylineActivity extends AppCompatActivity {
private static final String STATE_POLYLINE_OPTIONS = "polylineOptions";
+ private static final LatLng ANDORRA = new LatLng(42.505777, 1.52529);
+ private static final LatLng LUXEMBOURG = new LatLng(49.815273, 6.129583);
+ private static final LatLng MONACO = new LatLng(43.738418, 7.424616);
+ private static final LatLng VATICAN_CITY = new LatLng(41.902916, 12.453389);
+ private static final LatLng SAN_MARINO = new LatLng(43.942360, 12.457777);
+ private static final LatLng LIECHTENSTEIN = new LatLng(47.166000, 9.555373);
private List<Polyline> mPolylines;
private ArrayList<PolylineOptions> mPolylineOptions = new ArrayList<>();
@@ -48,8 +54,9 @@ public class PolylineActivity extends AppCompatActivity {
if (savedInstanceState != null) {
mPolylineOptions = savedInstanceState.getParcelableArrayList(STATE_POLYLINE_OPTIONS);
} else {
- mPolylineOptions.addAll(PolylineProvider.getAll());
+ mPolylineOptions.addAll(getAllPolylines());
}
+
mPolylines = mMapView.addPolylines(mPolylineOptions);
findViewById(R.id.fab).setOnClickListener(new View.OnClickListener() {
@@ -65,12 +72,38 @@ public class PolylineActivity extends AppCompatActivity {
}
}
mPolylineOptions.clear();
- mPolylineOptions.addAll(PolylineProvider.getRandomLine());
+ mPolylineOptions.addAll(getRandomLine());
mPolylines = mMapView.addPolylines(mPolylineOptions);
}
});
}
+ private List<PolylineOptions> getAllPolylines() {
+ List<PolylineOptions> options = new ArrayList<>();
+ options.add(generatePolyline(ANDORRA, LUXEMBOURG, "#F44336"));
+ options.add(generatePolyline(ANDORRA, MONACO, "#FF5722"));
+ options.add(generatePolyline(MONACO, VATICAN_CITY, "#673AB7"));
+ options.add(generatePolyline(VATICAN_CITY, SAN_MARINO, "#009688"));
+ options.add(generatePolyline(SAN_MARINO, LIECHTENSTEIN, "#795548"));
+ options.add(generatePolyline(LIECHTENSTEIN, LUXEMBOURG, "#3F51B5"));
+ return options;
+ }
+
+ private PolylineOptions generatePolyline(LatLng start, LatLng end, String color) {
+ PolylineOptions line = new PolylineOptions();
+ line.add(start);
+ line.add(end);
+ line.color(Color.parseColor(color));
+ return line;
+ }
+
+ public List<PolylineOptions> getRandomLine() {
+ final List<PolylineOptions> randomLines = getAllPolylines();
+ Collections.shuffle(randomLines);
+ return new ArrayList<PolylineOptions>(){{
+ add(randomLines.get(0));
+ }};
+ }
@Override
protected void onStart() {
@@ -139,42 +172,4 @@ public class PolylineActivity extends AppCompatActivity {
}
}
- private static class PolylineProvider {
- private static final LatLng ANDORRA = new LatLng(42.505777, 1.52529);
- private static final LatLng LUXEMBOURG = new LatLng(49.815273, 6.129583);
- private static final LatLng MONACO = new LatLng(43.738418, 7.424616);
- private static final LatLng VATICAN_CITY = new LatLng(41.902916, 12.453389);
- private static final LatLng SAN_MARINO = new LatLng(43.942360, 12.457777);
- private static final LatLng LIECHTENSTEIN = new LatLng(47.166000, 9.555373);
-
- private static final List<PolylineOptions> POLYLINES = new ArrayList<PolylineOptions>() {{
- add(generatePolyline(ANDORRA, LUXEMBOURG, "#F44336"));
- add(generatePolyline(ANDORRA, MONACO, "#FF5722"));
- add(generatePolyline(MONACO, VATICAN_CITY, "#673AB7"));
- add(generatePolyline(VATICAN_CITY, SAN_MARINO, "#009688"));
- add(generatePolyline(SAN_MARINO, LIECHTENSTEIN, "#795548"));
- add(generatePolyline(LIECHTENSTEIN, LUXEMBOURG, "#3F51B5"));
- }};
-
- private static PolylineOptions generatePolyline(LatLng start, LatLng end, String color) {
- PolylineOptions line = new PolylineOptions();
- line.add(start);
- line.add(end);
- line.color(Color.parseColor(color));
- return line;
- }
-
- public static List<PolylineOptions> getAll() {
- return POLYLINES;
- }
-
- public static List<PolylineOptions> getRandomLine() {
- List<PolylineOptions> randomLines = new ArrayList<>();
- Collections.shuffle(POLYLINES);
- randomLines.add(POLYLINES.get(0));
- return randomLines;
- }
-
- }
-
}