diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapFragment.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapFragment.java
index 2ad4837bb..8af9f2c6a 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapFragment.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapFragment.java
@@ -198,6 +198,14 @@ public final class MapFragment extends Fragment implements OnMapReadyCallback {
public void onDestroyView() {
super.onDestroyView();
map.onDestroy();
+ }
+
+ /**
+ * Called when the fragment is destroyed.
+ */
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
mapReadyCallbackList.clear();
}
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/SupportMapFragment.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/SupportMapFragment.java
index e3155c417..011a0bdaa 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/SupportMapFragment.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/SupportMapFragment.java
@@ -187,12 +187,20 @@ public class SupportMapFragment extends Fragment implements OnMapReadyCallback {
}
/**
- * Called when the fragment is view hiearchy is being destroyed.
+ * Called when the fragment is view hierarchy is being destroyed.
*/
@Override
public void onDestroyView() {
super.onDestroyView();
map.onDestroy();
+ }
+
+ /**
+ * Called when the fragment is destroyed.
+ */
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
mapReadyCallbackList.clear();
}
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
index a113fe1d6..c8986d677 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
@@ -162,7 +162,7 @@
+ android:label="@string/activity_map_fragment_support">
@@ -170,6 +170,17 @@
android:name="android.support.PARENT_ACTIVITY"
android:value=".activity.FeatureOverviewActivity" />
+
+
+
+
-
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/fragment/FragmentBackStackActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/fragment/FragmentBackStackActivity.kt
new file mode 100644
index 000000000..be4d3d2f1
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/fragment/FragmentBackStackActivity.kt
@@ -0,0 +1,45 @@
+package com.mapbox.mapboxsdk.testapp.activity.fragment
+
+import android.os.Bundle
+import android.support.v7.app.AppCompatActivity
+import android.view.View
+import com.mapbox.mapboxsdk.maps.MapboxMap
+import com.mapbox.mapboxsdk.maps.Style
+import com.mapbox.mapboxsdk.maps.SupportMapFragment
+import com.mapbox.mapboxsdk.testapp.R
+import kotlinx.android.synthetic.main.activity_backstack_fragment.*
+
+/**
+ * Test activity showcasing using the MapFragment API as part of a backstacked fragment.
+ */
+class FragmentBackStackActivity : AppCompatActivity() {
+
+ private lateinit var mapFragment: SupportMapFragment
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_backstack_fragment)
+
+ mapFragment = SupportMapFragment.newInstance()
+ mapFragment.getMapAsync { initMap(it) }
+
+ supportFragmentManager.beginTransaction().apply {
+ add(R.id.container, mapFragment)
+ }.commit()
+
+ button.setOnClickListener { handleClick(it) }
+ }
+
+ private fun initMap(mapboxMap: MapboxMap) {
+ mapboxMap.setStyle(Style.SATELLITE) {
+ mapboxMap.setPadding(300, 300, 300, 300)
+ }
+ }
+
+ private fun handleClick(button: View) {
+ supportFragmentManager.beginTransaction().apply {
+ replace(R.id.container, NestedViewPagerActivity.ItemAdapter.EmptyFragment())
+ addToBackStack("map_empty_fragment")
+ }.commit()
+ }
+}
\ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_backstack_fragment.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_backstack_fragment.xml
new file mode 100644
index 000000000..b6b672cf7
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_backstack_fragment.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml
index 14eb67879..40698eae7 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml
@@ -5,6 +5,7 @@
CameraPosition capabilities
Showcase MapFragment
Showcase SupportMapFragment
+ Showcase using a Map Fragment with a fragment backstack
Activity with multiple maps on screen
Add marker to map on long press
Different types of zoom methods
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml
index dc4fd89de..290a157dd 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml
@@ -1,7 +1,8 @@
- Support Map Fragment
+ Support Map Fragment
Map Fragment
+ Backstack Map Fragment
Multiple Maps on Screen
Add Markers In Bulk
Animated SymbolLayer
diff --git a/platform/android/scripts/exclude-activity-gen.json b/platform/android/scripts/exclude-activity-gen.json
index 2a70b47c6..841a04e5f 100644
--- a/platform/android/scripts/exclude-activity-gen.json
+++ b/platform/android/scripts/exclude-activity-gen.json
@@ -45,5 +45,6 @@
"RuntimeStyleActivity",
"GridSourceActivity",
"AnimatedImageSourceActivity",
- "EspressoTestActivity"
+ "EspressoTestActivity",
+ "FragmentBackStackActivity"
]