diff --git a/android/app/src/main/cpp/app/organicmaps/MapManager.cpp b/android/app/src/main/cpp/app/organicmaps/MapManager.cpp index f07e1195ba..3b0a5bfc9f 100644 --- a/android/app/src/main/cpp/app/organicmaps/MapManager.cpp +++ b/android/app/src/main/cpp/app/organicmaps/MapManager.cpp @@ -496,7 +496,6 @@ Java_app_organicmaps_downloader_MapManager_nativeUnsubscribeOnCountryChanged(JNI { g_framework->NativeFramework()->SetCurrentCountryChangedListener(nullptr); - ASSERT(g_countryChangedListener, ()); env->DeleteGlobalRef(g_countryChangedListener); g_countryChangedListener = nullptr; } diff --git a/android/app/src/main/java/app/organicmaps/Map.java b/android/app/src/main/java/app/organicmaps/Map.java index 58514be8c2..656b94442d 100644 --- a/android/app/src/main/java/app/organicmaps/Map.java +++ b/android/app/src/main/java/app/organicmaps/Map.java @@ -71,7 +71,6 @@ public final class Map @Nullable private CallbackUnsupported mCallbackUnsupported; - // Anyway it is not working as expected and looks suspicious for me. private static int sCurrentDpi = 0; public Map(DisplayType mapType) @@ -147,9 +146,7 @@ public final class Map { if (sCurrentDpi != surfaceDpi) { - // Do not invoke Framework::UdateDpi after initial surface creation. - if (sCurrentDpi != 0) - nativeUpdateEngineDpi(surfaceDpi); + nativeUpdateEngineDpi(surfaceDpi); sCurrentDpi = surfaceDpi; setupWidgets(context, surfaceFrame.width(), surfaceFrame.height()); @@ -179,6 +176,7 @@ public final class Map mCallbackUnsupported.report(); return; } + sCurrentDpi = surfaceDpi; if (firstStart) UiThread.runLater(locationHelper::onExitFromFirstRun); diff --git a/android/app/src/main/java/app/organicmaps/MapFragment.java b/android/app/src/main/java/app/organicmaps/MapFragment.java index 557dd1fb5b..958aa564f2 100644 --- a/android/app/src/main/java/app/organicmaps/MapFragment.java +++ b/android/app/src/main/java/app/organicmaps/MapFragment.java @@ -26,9 +26,6 @@ public class MapFragment extends BaseMwmFragment implements View.OnTouchListener private static final String TAG = MapFragment.class.getSimpleName(); private final Map mMap = new Map(DisplayType.Device); - @Nullable - private Runnable mNotifyOnSurfaceDestroyed; - public void updateCompassOffset(int offsetX, int offsetY) { mMap.updateCompassOffset(requireContext(), offsetX, offsetY, true); @@ -80,11 +77,6 @@ public class MapFragment extends BaseMwmFragment implements View.OnTouchListener { Logger.d(TAG); mMap.onSurfaceDestroyed(requireActivity().isChangingConfigurations(), true); - if (mNotifyOnSurfaceDestroyed != null) - { - mNotifyOnSurfaceDestroyed.run(); - mNotifyOnSurfaceDestroyed = null; - } } @Override @@ -192,10 +184,8 @@ public class MapFragment extends BaseMwmFragment implements View.OnTouchListener public void notifyOnSurfaceDestroyed(@NonNull Runnable task) { - if (mMap.isContextCreated()) - mNotifyOnSurfaceDestroyed = task; - else - task.run(); + mMap.onSurfaceDestroyed(false, true); + task.run(); } private void reportUnsupported()