@Override
    public boolean onPrepareOptionsMenu(final Menu menu) {
        final boolean result = super.onPrepareOptionsMenu(menu);
        TileProviderFactory.addMapViewLanguageMenuItems(menu);
        ViewUtils.extendMenuActionBarDisplayItemCount(this, menu);
        HistoryTrackUtils.onPrepareOptionsMenu(menu);

        // init followMyLocation
        initFollowMyLocation(TRUE.equals(viewModel.followMyLocation.getValue()));

        // live map mode
        final MenuItem itemMapLive = menu.findItem(R.id.menu_map_live);
        ToggleItemType.LIVE_MODE.toggleMenuItem(itemMapLive, TRUE.equals(viewModel.transientIsLiveEnabled.getValue()));
        itemMapLive.setVisible(true);

        final View liveButton = findViewById(R.id.menu_map_live);
        if (liveButton != null) {
            liveButton.setOnLongClickListener(v -> {
                viewModel.mapType = new UnifiedMapType(); // switch to PLAIN mode
                viewModel.transientIsLiveEnabled.setValue(false);
                Settings.setLiveMap(false);
                reloadCachesAndWaypoints();
                return true;
            });
        }

        // map rotation state
        menu.findItem(R.id.menu_map_rotation).setVisible(true); // @todo: can be visible always (xml definition) when CGeoMap/NewMap is removed
        final int mapRotation = Settings.getMapRotation();
        switch (mapRotation) {
            case MAPROTATION_OFF:
                menu.findItem(R.id.menu_map_rotation_off).setChecked(true);
                break;
            case MAPROTATION_MANUAL:
                menu.findItem(R.id.menu_map_rotation_manual).setChecked(true);
                break;
            case MAPROTATION_AUTO_LOWPOWER:
                menu.findItem(R.id.menu_map_rotation_auto_lowpower).setChecked(true);
                break;
            case MAPROTATION_AUTO_PRECISE:
                menu.findItem(R.id.menu_map_rotation_auto_precise).setChecked(true);
                break;
            default:
                break;
        }
        menu.findItem(R.id.menu_map_rotation_auto_precise).setVisible(true); // UnifiedMap supports high precision auto-rotate

        // map and theming options
        menu.findItem(R.id.menu_theme_mode).setVisible(tileProvider.supportsThemes());
        menu.findItem(R.id.menu_theme_options).setVisible(tileProvider.supportsThemeOptions());

        menu.findItem(R.id.menu_as_list).setVisible(true);

        MenuUtils.tintToolbarAndOverflowIcons(menu);

        return result;
    }
centers map on coords given + resets "followMyLocation" state
main/src/main/java/cgeo/geocaching/unifiedmap/UnifiedMapActivity.java