public static void acquireUnifiedMap(final UnifiedMapActivity newUnifiedMapActivity) {
        if (!Settings.isFeatureEnabledDefaultTrue(R.string.pref_useDelayedMapFragment)) {
            return;
        }
        final UnifiedMapActivity oldUnifiedMapActivity = unifiedMapActivity.get();
        if (oldUnifiedMapActivity != null) {
            // may be optimized further to only destroy map fragment if it's a VTM instance
            oldUnifiedMapActivity.destroyMapFragment();
        }
        unifiedMapActivity = new WeakReference<>(newUnifiedMapActivity);
    }
to be called by map fragments' observers for zoom level change
main/src/main/java/cgeo/geocaching/unifiedmap/UnifiedMapActivity.java