summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorŁukasz Paczos <lukas.paczos@gmail.com>2019-01-22 16:06:39 +0100
committerŁukasz Paczos <lukasz.paczos@mapbox.com>2019-01-24 14:40:17 +0100
commitf2aaac3285130675ea6c3429b5a7675ec47d8555 (patch)
tree4992ac9222c7e117e680ea71ad3a9cae7f9ed1fa
parent41fa4bda516dd5dbe35c03c30c4e966fc629777a (diff)
downloadqtlocation-mapboxgl-f2aaac3285130675ea6c3429b5a7675ec47d8555.tar.gz
[android] fix ViewPagerActivity style not loading after rotation
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/fragment/ViewPagerActivity.java41
1 files changed, 37 insertions, 4 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/fragment/ViewPagerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/fragment/ViewPagerActivity.java
index 63c63b690e..c494842b14 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/fragment/ViewPagerActivity.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/fragment/ViewPagerActivity.java
@@ -3,9 +3,10 @@ package com.mapbox.mapboxsdk.testapp.activity.fragment;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentPagerAdapter;
+import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
+
import com.mapbox.mapboxsdk.camera.CameraPosition;
import com.mapbox.mapboxsdk.geometry.LatLng;
import com.mapbox.mapboxsdk.maps.MapboxMapOptions;
@@ -18,19 +19,51 @@ import com.mapbox.mapboxsdk.testapp.R;
*/
public class ViewPagerActivity extends AppCompatActivity {
+ private ViewPager viewPager;
+ private MapFragmentAdapter adapter;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_viewpager);
- ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
+ viewPager = (ViewPager) findViewById(R.id.viewpager);
if (viewPager != null) {
- MapFragmentAdapter adapter = new MapFragmentAdapter(getSupportFragmentManager());
+ adapter = new MapFragmentAdapter(getSupportFragmentManager());
viewPager.setAdapter(adapter);
}
}
- static class MapFragmentAdapter extends FragmentPagerAdapter {
+ @Override
+ protected void onRestoreInstanceState(Bundle savedInstanceState) {
+ super.onRestoreInstanceState(savedInstanceState);
+
+ int currentPosition = viewPager.getCurrentItem();
+ SupportMapFragment mapFragment;
+
+ if (Math.abs(0 - currentPosition) <= 1) {
+ mapFragment = (SupportMapFragment) adapter.instantiateItem(viewPager, 0);
+ mapFragment.getMapAsync(mapboxMap -> {
+ mapboxMap.setStyle(Style.MAPBOX_STREETS);
+ });
+ }
+
+ if (Math.abs(1 - currentPosition) <= 1) {
+ mapFragment = (SupportMapFragment) adapter.instantiateItem(viewPager, 1);
+ mapFragment.getMapAsync(mapboxMap -> {
+ mapboxMap.setStyle(Style.DARK);
+ });
+ }
+
+ if (Math.abs(2 - currentPosition) <= 1) {
+ mapFragment = (SupportMapFragment) adapter.instantiateItem(viewPager, 2);
+ mapFragment.getMapAsync(mapboxMap -> {
+ mapboxMap.setStyle(Style.SATELLITE);
+ });
+ }
+ }
+
+ static class MapFragmentAdapter extends FragmentStatePagerAdapter {
private static int NUM_ITEMS = 3;