diff options
author | Александр Зацепин <az@mapswithme.com> | 2017-10-19 17:47:04 +0300 |
---|---|---|
committer | Roman Kuznetsov <r.kuznetsow@gmail.com> | 2017-10-19 17:54:24 +0300 |
commit | 1b270ce0ba6a90d243fac7220769ed079cd10dd4 (patch) | |
tree | 46b46ca3c7be435544e19a2609f553bac204b770 | |
parent | 30123e8fbbdde48ca6f0909b3170527f52881586 (diff) |
[android] Fixed black screen when come back to map activity from another quicklybeta-1074
-rw-r--r-- | android/src/com/mapswithme/maps/MapFragment.java | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/android/src/com/mapswithme/maps/MapFragment.java b/android/src/com/mapswithme/maps/MapFragment.java index f9537f57c4..c76e9b8df9 100644 --- a/android/src/com/mapswithme/maps/MapFragment.java +++ b/android/src/com/mapswithme/maps/MapFragment.java @@ -162,6 +162,12 @@ public class MapFragment extends BaseMwmFragment @Override public void surfaceCreated(SurfaceHolder surfaceHolder) { + if (isThemeChangingProcess()) + { + LOGGER.d(TAG, "Activity is being recreated due theme changing, skip 'surfaceCreated' callback"); + return; + } + LOGGER.d(TAG, "surfaceCreated, mContextCreated = " + mContextCreated); final Surface surface = surfaceHolder.getSurface(); if (nativeIsEngineCreated()) @@ -210,6 +216,12 @@ public class MapFragment extends BaseMwmFragment @Override public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int width, int height) { + if (isThemeChangingProcess()) + { + LOGGER.d(TAG, "Activity is being recreated due theme changing, skip 'surfaceChanged' callback"); + return; + } + LOGGER.d(TAG, "surfaceChanged, mContextCreated = " + mContextCreated); if (!mContextCreated || (!mRequireResize && surfaceHolder.isCreating())) @@ -237,7 +249,6 @@ public class MapFragment extends BaseMwmFragment if (!mContextCreated || !isAdded()) return; - mSurfaceView.getHolder().removeCallback(this); nativeDetachSurface(!getActivity().isChangingConfigurations()); mContextCreated = false; } @@ -256,14 +267,10 @@ public class MapFragment extends BaseMwmFragment public void onStart() { super.onStart(); - if (isGoingToBeRecreated()) - return; - - LOGGER.d(TAG, "onStart, surface.addCallback"); - mSurfaceView.getHolder().addCallback(this); + LOGGER.d(TAG, "onStart"); } - private boolean isGoingToBeRecreated() + private boolean isThemeChangingProcess() { return mUiThemeOnPause != null && !mUiThemeOnPause.equals(Config.getCurrentUiTheme()); } @@ -280,6 +287,7 @@ public class MapFragment extends BaseMwmFragment { View view = inflater.inflate(R.layout.fragment_map, container, false); mSurfaceView = (SurfaceView) view.findViewById(R.id.map_surfaceview); + mSurfaceView.getHolder().addCallback(this); return view; } |