summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps
diff options
context:
space:
mode:
authorTobrun <tobrun.van.nuland@gmail.com>2016-10-31 13:17:56 +0100
committerGitHub <noreply@github.com>2016-10-31 13:17:56 +0100
commitccc3964270e32145b050d97bf4c678941a5c6092 (patch)
tree7c917036dbe4c542d5bd42a6e997dcec78d6f8e7 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps
parent38ee3408c224194054f7e4941a22dfd8b65f0d6f (diff)
downloadqtlocation-mapboxgl-ccc3964270e32145b050d97bf4c678941a5c6092.tar.gz
Android Nougat compatibility: onstart/onstop on MapView (#6830)
* introduce onstart/onstop on MapView * update wear module * update fragments * update changeling
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapFragment.java2
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java77
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/SupportMapFragment.java2
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java4
4 files changed, 61 insertions, 24 deletions
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 22f42c1d51..ba92926d2f 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
@@ -159,6 +159,7 @@ public final class MapFragment extends Fragment {
@Override
public void onStart() {
super.onStart();
+ map.onStart();
map.getMapAsync(onMapReadyCallback);
}
@@ -197,6 +198,7 @@ public final class MapFragment extends Fragment {
@Override
public void onStop() {
super.onStop();
+ map.onStop();
}
/**
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
index af0eacb378..ee2e32697e 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
@@ -160,6 +160,9 @@ public class MapView extends FrameLayout {
private List<OnMapReadyCallback> onMapReadyCallbackList;
private SnapshotRequest snapshotRequest;
+ private boolean onStartCalled;
+ private boolean onStopCalled;
+
@UiThread
public MapView(@NonNull Context context) {
super(context);
@@ -573,16 +576,35 @@ public class MapView extends FrameLayout {
}
/**
- * You must call this method from the parent's {@link Activity#onDestroy()} or {@link Fragment#onDestroy()}.
+ * You must call this method from the parent's {@link Activity#onStart()} or {@link Fragment#onStart()}
*/
@UiThread
- public void onDestroy() {
- destroyed = true;
- nativeMapView.terminateContext();
- nativeMapView.terminateDisplay();
- nativeMapView.destroySurface();
- nativeMapView.destroy();
- nativeMapView = null;
+ public void onStart() {
+ onStartCalled = true;
+
+ // Register for connectivity changes
+ connectivityReceiver = new ConnectivityReceiver();
+ getContext().registerReceiver(connectivityReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
+
+ nativeMapView.update();
+ myLocationView.onStart();
+
+ // In case that no style was set or was loaded through MapboxMapOptions
+ if (!styleWasSet) {
+ setStyleUrl(styleUrl);
+ }
+ }
+
+ /**
+ * You must call this method from the parent's {@link Activity#onResume()} or {@link Fragment#onResume()}.
+ */
+ @UiThread
+ public void onResume() {
+ if (!onStartCalled) {
+ // TODO: 26/10/16, can be removed after 5.0.0 release
+ throw new IllegalStateException("MapView#onStart() was not called. " +
+ "You must call this method from the parent's {@link Activity#onStart()} or {@link Fragment#onStart()}.");
+ }
}
/**
@@ -590,33 +612,44 @@ public class MapView extends FrameLayout {
*/
@UiThread
public void onPause() {
+ // replaced by onStop in v5.0.0, keep around for future development
+ }
+
+ /**
+ * You must call this method from the parent's {@link Activity#onStop()} or {@link Fragment#onStop()}.
+ */
+ @UiThread
+ public void onStop() {
+ onStopCalled = true;
+
// Unregister for connectivity changes
if (connectivityReceiver != null) {
getContext().unregisterReceiver(connectivityReceiver);
connectivityReceiver = null;
}
- myLocationView.onPause();
+ myLocationView.onStop();
}
/**
- * You must call this method from the parent's {@link Activity#onResume()} or {@link Fragment#onResume()}.
+ * You must call this method from the parent's {@link Activity#onDestroy()} or {@link Fragment#onDestroy()}.
*/
@UiThread
- public void onResume() {
- // Register for connectivity changes
- connectivityReceiver = new ConnectivityReceiver();
- getContext().registerReceiver(connectivityReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
-
- nativeMapView.update();
- myLocationView.onResume();
-
- // In case that no style was set or was loaded through MapboxMapOptions
- if (!styleWasSet) {
- setStyleUrl(styleUrl);
+ public void onDestroy() {
+ if (!onStopCalled) {
+ // TODO: 26/10/16, can be removed after 5.0.0 release
+ throw new IllegalStateException("MapView#onStop() was not called. " +
+ "You must call this method from the parent's {@link Activity#onStop()} or {@link Fragment#onStop()}.");
}
- }
+ destroyed = true;
+ nativeMapView.terminateContext();
+ nativeMapView.terminateDisplay();
+ nativeMapView.destroySurface();
+ nativeMapView.destroy();
+ nativeMapView = null;
+ }
+
void setFocalPoint(PointF focalPoint) {
if (focalPoint == null) {
// resetting focal point,
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 72674c3bc9..31c2ffff14 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
@@ -167,6 +167,7 @@ public class SupportMapFragment extends Fragment {
@Override
public void onStart() {
super.onStart();
+ map.onStart();
map.getMapAsync(onMapReadyCallback);
}
@@ -205,6 +206,7 @@ public class SupportMapFragment extends Fragment {
@Override
public void onStop() {
super.onStop();
+ map.onStop();
}
/**
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java
index 45e0c4903e..36860b1cef 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java
@@ -321,7 +321,7 @@ public class MyLocationView extends View {
setBearing(position.bearing);
}
- public void onResume() {
+ public void onStart() {
if (myBearingTrackingMode == MyBearingTracking.COMPASS) {
compassListener.onResume();
}
@@ -330,7 +330,7 @@ public class MyLocationView extends View {
}
}
- public void onPause() {
+ public void onStop() {
compassListener.onPause();
toggleGps(false);
}