Search in sources :

Example 1 with TravelDbHelper

use of net.osmand.plus.wikivoyage.data.TravelDbHelper in project Osmand by osmandapp.

the class AppInitializer method onCreateApplication.

public void onCreateApplication() {
    // always update application mode to default
    OsmandSettings osmandSettings = app.getSettings();
    if (osmandSettings.FOLLOW_THE_ROUTE.get()) {
        ApplicationMode savedMode = osmandSettings.readApplicationMode();
        if (!osmandSettings.APPLICATION_MODE.get().getStringKey().equals(savedMode.getStringKey())) {
            osmandSettings.setApplicationMode(savedMode);
        }
    } else {
        osmandSettings.setApplicationMode(osmandSettings.DEFAULT_APPLICATION_MODE.get());
    }
    startTime = System.currentTimeMillis();
    getLazyRoutingConfig();
    app.applyTheme(app);
    startupInit(app.reconnectToBRouter(), IBRouterService.class);
    app.backupHelper = startupInit(new BackupHelper(app), BackupHelper.class);
    app.inAppPurchaseHelper = startupInit(new InAppPurchaseHelperImpl(app), InAppPurchaseHelperImpl.class);
    app.poiTypes = startupInit(MapPoiTypes.getDefaultNoInit(), MapPoiTypes.class);
    app.transportRoutingHelper = startupInit(new TransportRoutingHelper(app), TransportRoutingHelper.class);
    app.routingHelper = startupInit(new RoutingHelper(app), RoutingHelper.class);
    app.routingOptionsHelper = startupInit(new RoutingOptionsHelper(app), RoutingOptionsHelper.class);
    app.resourceManager = startupInit(new ResourceManager(app), ResourceManager.class);
    app.daynightHelper = startupInit(new DayNightHelper(app), DayNightHelper.class);
    app.locationProvider = startupInit(new OsmAndLocationProvider(app), OsmAndLocationProvider.class);
    app.avoidSpecificRoads = startupInit(new AvoidSpecificRoads(app), AvoidSpecificRoads.class);
    app.avoidRoadsHelper = startupInit(new AvoidRoadsHelper(app), AvoidRoadsHelper.class);
    app.savingTrackHelper = startupInit(new SavingTrackHelper(app), SavingTrackHelper.class);
    app.analyticsHelper = startupInit(new AnalyticsHelper(app), AnalyticsHelper.class);
    app.notificationHelper = startupInit(new NotificationHelper(app), NotificationHelper.class);
    app.liveMonitoringHelper = startupInit(new LiveMonitoringHelper(app), LiveMonitoringHelper.class);
    app.selectedGpxHelper = startupInit(new GpxSelectionHelper(app, app.savingTrackHelper), GpxSelectionHelper.class);
    app.gpxDbHelper = startupInit(new GpxDbHelper(app), GpxDbHelper.class);
    app.favoritesHelper = startupInit(new FavouritesHelper(app), FavouritesHelper.class);
    app.waypointHelper = startupInit(new WaypointHelper(app), WaypointHelper.class);
    app.aidlApi = startupInit(new OsmandAidlApi(app), OsmandAidlApi.class);
    app.regions = startupInit(new OsmandRegions(), OsmandRegions.class);
    updateRegionVars();
    app.poiFilters = startupInit(new PoiFiltersHelper(app), PoiFiltersHelper.class);
    app.rendererRegistry = startupInit(new RendererRegistry(app), RendererRegistry.class);
    app.geocodingLookupService = startupInit(new GeocodingLookupService(app), GeocodingLookupService.class);
    app.targetPointsHelper = startupInit(new TargetPointsHelper(app), TargetPointsHelper.class);
    app.mapMarkersDbHelper = startupInit(new MapMarkersDbHelper(app), MapMarkersDbHelper.class);
    app.mapMarkersHelper = startupInit(new MapMarkersHelper(app), MapMarkersHelper.class);
    app.searchUICore = startupInit(new QuickSearchHelper(app), QuickSearchHelper.class);
    app.mapViewTrackingUtilities = startupInit(new MapViewTrackingUtilities(app), MapViewTrackingUtilities.class);
    app.osmandMap = startupInit(new OsmandMap(app), OsmandMap.class);
    // TODO TRAVEL_OBF_HELPER check ResourceManager and use TravelObfHelper
    TravelHelper travelHelper = !TravelDbHelper.checkIfDbFileExists(app) ? new TravelObfHelper(app) : new TravelDbHelper(app);
    app.travelHelper = startupInit(travelHelper, TravelHelper.class);
    app.travelRendererHelper = startupInit(new TravelRendererHelper(app), TravelRendererHelper.class);
    app.lockHelper = startupInit(new LockHelper(app), LockHelper.class);
    app.fileSettingsHelper = startupInit(new FileSettingsHelper(app), FileSettingsHelper.class);
    app.networkSettingsHelper = startupInit(new NetworkSettingsHelper(app), NetworkSettingsHelper.class);
    app.quickActionRegistry = startupInit(new QuickActionRegistry(app.getSettings()), QuickActionRegistry.class);
    app.osmOAuthHelper = startupInit(new OsmOAuthHelper(app), OsmOAuthHelper.class);
    app.oprAuthHelper = startupInit(new OprAuthHelper(app), OprAuthHelper.class);
    app.onlineRoutingHelper = startupInit(new OnlineRoutingHelper(app), OnlineRoutingHelper.class);
    app.launcherShortcutsHelper = startupInit(new LauncherShortcutsHelper(app), LauncherShortcutsHelper.class);
    app.gpsFilterHelper = startupInit(new GpsFilterHelper(app), GpsFilterHelper.class);
    app.downloadTilesHelper = startupInit(new DownloadTilesHelper(app), DownloadTilesHelper.class);
    initOpeningHoursParser();
}
Also used : DayNightHelper(net.osmand.plus.helpers.DayNightHelper) OsmOAuthHelper(net.osmand.plus.plugins.osmedit.oauth.OsmOAuthHelper) FavouritesHelper(net.osmand.plus.myplaces.FavouritesHelper) AvoidSpecificRoads(net.osmand.plus.helpers.AvoidSpecificRoads) BackupHelper(net.osmand.plus.backup.BackupHelper) MapViewTrackingUtilities(net.osmand.plus.base.MapViewTrackingUtilities) WaypointHelper(net.osmand.plus.helpers.WaypointHelper) OnlineRoutingHelper(net.osmand.plus.onlinerouting.OnlineRoutingHelper) ApplicationMode(net.osmand.plus.settings.backend.ApplicationMode) SavingTrackHelper(net.osmand.plus.track.helpers.SavingTrackHelper) PoiFiltersHelper(net.osmand.plus.poi.PoiFiltersHelper) TravelObfHelper(net.osmand.plus.wikivoyage.data.TravelObfHelper) AvoidRoadsHelper(net.osmand.plus.routing.AvoidRoadsHelper) GpxDbHelper(net.osmand.plus.track.helpers.GpxDbHelper) OsmandRegions(net.osmand.map.OsmandRegions) LauncherShortcutsHelper(net.osmand.plus.helpers.LauncherShortcutsHelper) RendererRegistry(net.osmand.plus.render.RendererRegistry) DownloadTilesHelper(net.osmand.plus.plugins.rastermaps.DownloadTilesHelper) TargetPointsHelper(net.osmand.plus.helpers.TargetPointsHelper) QuickActionRegistry(net.osmand.plus.quickaction.QuickActionRegistry) AnalyticsHelper(net.osmand.plus.helpers.AnalyticsHelper) TravelHelper(net.osmand.plus.wikivoyage.data.TravelHelper) OsmandMap(net.osmand.plus.views.OsmandMap) TravelDbHelper(net.osmand.plus.wikivoyage.data.TravelDbHelper) MapMarkersDbHelper(net.osmand.plus.mapmarkers.MapMarkersDbHelper) GpsFilterHelper(net.osmand.plus.track.helpers.GpsFilterHelper) OnlineRoutingHelper(net.osmand.plus.onlinerouting.OnlineRoutingHelper) RoutingHelper(net.osmand.plus.routing.RoutingHelper) TransportRoutingHelper(net.osmand.plus.routing.TransportRoutingHelper) ResourceManager(net.osmand.plus.resources.ResourceManager) GpxSelectionHelper(net.osmand.plus.track.helpers.GpxSelectionHelper) TravelRendererHelper(net.osmand.plus.render.TravelRendererHelper) LiveMonitoringHelper(net.osmand.plus.plugins.monitoring.LiveMonitoringHelper) OsmandSettings(net.osmand.plus.settings.backend.OsmandSettings) MapPoiTypes(net.osmand.osm.MapPoiTypes) QuickSearchHelper(net.osmand.plus.search.QuickSearchHelper) NetworkSettingsHelper(net.osmand.plus.backup.NetworkSettingsHelper) RoutingOptionsHelper(net.osmand.plus.routepreparationmenu.RoutingOptionsHelper) MapMarkersHelper(net.osmand.plus.mapmarkers.MapMarkersHelper) NotificationHelper(net.osmand.plus.notifications.NotificationHelper) InAppPurchaseHelperImpl(net.osmand.plus.inapp.InAppPurchaseHelperImpl) TransportRoutingHelper(net.osmand.plus.routing.TransportRoutingHelper) FileSettingsHelper(net.osmand.plus.settings.backend.backup.FileSettingsHelper) OprAuthHelper(net.osmand.plus.plugins.openplacereviews.OprAuthHelper) OsmandAidlApi(net.osmand.aidl.OsmandAidlApi) LockHelper(net.osmand.plus.helpers.LockHelper)

Example 2 with TravelDbHelper

use of net.osmand.plus.wikivoyage.data.TravelDbHelper in project Osmand by osmandapp.

the class DownloadResources method prepareData.

protected boolean prepareData(List<IndexItem> resources) {
    this.rawResources = resources;
    DownloadResourceGroup extraMapsGroup = new DownloadResourceGroup(this, DownloadResourceGroupType.EXTRA_MAPS);
    DownloadResourceGroup otherMapsGroup = new DownloadResourceGroup(this, DownloadResourceGroupType.OTHER_MAPS_GROUP);
    DownloadResourceGroup otherMapsScreen = new DownloadResourceGroup(otherMapsGroup, DownloadResourceGroupType.OTHER_MAPS);
    DownloadResourceGroup otherMaps = new DownloadResourceGroup(otherMapsGroup, DownloadResourceGroupType.OTHER_MAPS_HEADER);
    otherMapsScreen.addGroup(otherMaps);
    otherMapsGroup.addGroup(otherMapsScreen);
    DownloadResourceGroup otherGroup = new DownloadResourceGroup(this, DownloadResourceGroupType.OTHER_GROUP);
    DownloadResourceGroup voiceScreenTTS = new DownloadResourceGroup(otherGroup, DownloadResourceGroupType.VOICE_TTS);
    DownloadResourceGroup voiceScreenRec = new DownloadResourceGroup(otherGroup, DownloadResourceGroupType.VOICE_REC);
    DownloadResourceGroup fontScreen = new DownloadResourceGroup(otherGroup, DownloadResourceGroupType.FONTS);
    DownloadResourceGroup voiceTTS = new DownloadResourceGroup(otherGroup, DownloadResourceGroupType.VOICE_HEADER_TTS);
    DownloadResourceGroup voiceRec = new DownloadResourceGroup(otherGroup, DownloadResourceGroupType.VOICE_HEADER_REC);
    DownloadResourceGroup fonts = new DownloadResourceGroup(otherGroup, DownloadResourceGroupType.FONTS_HEADER);
    DownloadResourceGroup worldMaps = new DownloadResourceGroup(this, DownloadResourceGroupType.WORLD_MAPS);
    DownloadResourceGroup nauticalMapsGroup = new DownloadResourceGroup(this, DownloadResourceGroupType.NAUTICAL_MAPS_GROUP);
    DownloadResourceGroup nauticalMapsScreen = new DownloadResourceGroup(nauticalMapsGroup, DownloadResourceGroupType.NAUTICAL_MAPS);
    DownloadResourceGroup nauticalMaps = new DownloadResourceGroup(nauticalMapsGroup, DownloadResourceGroupType.NAUTICAL_MAPS_HEADER);
    DownloadResourceGroup wikivoyageMapsGroup = new DownloadResourceGroup(this, DownloadResourceGroupType.TRAVEL_GROUP);
    DownloadResourceGroup wikivoyageMapsScreen = new DownloadResourceGroup(wikivoyageMapsGroup, DownloadResourceGroupType.WIKIVOYAGE_MAPS);
    DownloadResourceGroup wikivoyageMaps = new DownloadResourceGroup(wikivoyageMapsGroup, DownloadResourceGroupType.WIKIVOYAGE_HEADER);
    Map<WorldRegion, List<IndexItem>> groupByRegion = new LinkedHashMap<>();
    OsmandRegions regs = app.getRegions();
    for (IndexItem ii : resources) {
        if (ii.getType() == DownloadActivityType.VOICE_FILE) {
            if (DownloadActivityType.isVoiceTTS(ii)) {
                voiceTTS.addItem(ii);
            } else if (DownloadActivityType.isVoiceRec(ii)) {
                voiceRec.addItem(ii);
            }
            continue;
        }
        if (ii.getType() == DownloadActivityType.FONT_FILE) {
            fonts.addItem(ii);
            continue;
        }
        if (ii.getType() == DownloadActivityType.DEPTH_CONTOUR_FILE) {
            if (InAppPurchaseHelper.isDepthContoursPurchased(app) || nauticalMaps.size() == 0) {
                nauticalMaps.addItem(ii);
            }
            continue;
        }
        if (ii.getType() == DownloadActivityType.WIKIVOYAGE_FILE) {
            if (app.getTravelHelper() instanceof TravelDbHelper) {
                wikivoyageMaps.addItem(ii);
            }
            continue;
        }
        if (ii.getType() == DownloadActivityType.TRAVEL_FILE) {
            if (ii.getFileName().contains(WIKIVOYAGE_FILE_FILTER)) {
                wikivoyageMaps.addItem(ii);
            }
            continue;
        }
        String basename = ii.getBasename().toLowerCase();
        WorldRegion wg = regs.getRegionDataByDownloadName(basename);
        if (wg != null) {
            if (!groupByRegion.containsKey(wg)) {
                groupByRegion.put(wg, new ArrayList<IndexItem>());
            }
            groupByRegion.get(wg).add(ii);
        } else {
            if (ii.getFileName().startsWith("World_")) {
                if (ii.getFileName().toLowerCase().startsWith(WORLD_SEAMARKS_KEY) || ii.getFileName().toLowerCase().startsWith(WORLD_SEAMARKS_OLD_KEY)) {
                    nauticalMaps.addItem(ii);
                } else {
                    worldMaps.addItem(ii);
                }
            } else {
                otherMaps.addItem(ii);
            }
        }
    }
    this.groupByRegion = groupByRegion;
    List<WorldRegion> customRegions = OsmandPlugin.getCustomDownloadRegions();
    if (!Algorithms.isEmpty(customRegions)) {
        addGroup(extraMapsGroup);
        for (WorldRegion region : customRegions) {
            buildRegionsGroups(region, extraMapsGroup);
        }
    }
    LinkedList<WorldRegion> queue = new LinkedList<WorldRegion>();
    LinkedList<DownloadResourceGroup> parent = new LinkedList<DownloadResourceGroup>();
    DownloadResourceGroup worldSubregions = new DownloadResourceGroup(this, DownloadResourceGroupType.SUBREGIONS);
    addGroup(worldSubregions);
    for (WorldRegion rg : region.getSubregions()) {
        queue.add(rg);
        parent.add(worldSubregions);
    }
    while (!queue.isEmpty()) {
        WorldRegion reg = queue.pollFirst();
        DownloadResourceGroup parentGroup = parent.pollFirst();
        List<WorldRegion> subregions = reg.getSubregions();
        DownloadResourceGroup mainGrp = new DownloadResourceGroup(parentGroup, DownloadResourceGroupType.REGION, reg.getRegionId());
        mainGrp.region = reg;
        parentGroup.addGroup(mainGrp);
        DownloadResourceGroup flatFiles = new DownloadResourceGroup(mainGrp, REGION_MAPS);
        List<IndexItem> list = groupByRegion.get(reg);
        if (list != null) {
            for (IndexItem ii : list) {
                flatFiles.addItem(ii);
            }
        }
        if (list != null || !reg.isContinent()) {
            mainGrp.addGroup(flatFiles);
        }
        DownloadResourceGroup subRegions = new DownloadResourceGroup(mainGrp, DownloadResourceGroupType.SUBREGIONS);
        mainGrp.addGroup(subRegions);
        // add to processing queue
        for (WorldRegion rg : subregions) {
            queue.add(rg);
            parent.add(subRegions);
        }
    }
    // Possible improvements
    // 1. if there is no subregions no need to create resource group REGIONS_MAPS - objection raise diversity and there is no value
    // 2. if there is no subregions and there only 1 index item it could be merged to the level up - objection there is no such maps
    // 3. if hillshade/srtm is disabled, all maps from inner level could be combined into 1
    addGroup(worldMaps);
    nauticalMapsScreen.addGroup(nauticalMaps);
    nauticalMapsGroup.addGroup(nauticalMapsScreen);
    addGroup(nauticalMapsGroup);
    wikivoyageMapsScreen.addGroup(wikivoyageMaps);
    wikivoyageMapsGroup.addGroup(wikivoyageMapsScreen);
    addGroup(wikivoyageMapsGroup);
    if (otherMaps.size() > 0) {
        addGroup(otherMapsGroup);
    }
    voiceScreenTTS.addGroup(voiceTTS);
    voiceScreenRec.addGroup(voiceRec);
    if (fonts.getIndividualResources() != null) {
        fontScreen.addGroup(fonts);
    }
    otherGroup.addGroup(voiceScreenTTS);
    otherGroup.addGroup(voiceScreenRec);
    if (fonts.getIndividualResources() != null) {
        otherGroup.addGroup(fontScreen);
    }
    addGroup(otherGroup);
    createHillshadeSRTMGroups();
    replaceIndividualSrtmWithGroups(region);
    createMultipleDownloadItems(region);
    trimEmptyGroups();
    updateLoadedFiles();
    return true;
}
Also used : WorldRegion(net.osmand.map.WorldRegion) TravelDbHelper(net.osmand.plus.wikivoyage.data.TravelDbHelper) AssetIndexItem(net.osmand.plus.download.DownloadOsmandIndexesHelper.AssetIndexItem) LinkedList(java.util.LinkedList) LinkedHashMap(java.util.LinkedHashMap) OsmandRegions(net.osmand.map.OsmandRegions) ArrayList(java.util.ArrayList) LinkedList(java.util.LinkedList) List(java.util.List)

Aggregations

OsmandRegions (net.osmand.map.OsmandRegions)2 TravelDbHelper (net.osmand.plus.wikivoyage.data.TravelDbHelper)2 ArrayList (java.util.ArrayList)1 LinkedHashMap (java.util.LinkedHashMap)1 LinkedList (java.util.LinkedList)1 List (java.util.List)1 OsmandAidlApi (net.osmand.aidl.OsmandAidlApi)1 WorldRegion (net.osmand.map.WorldRegion)1 MapPoiTypes (net.osmand.osm.MapPoiTypes)1 BackupHelper (net.osmand.plus.backup.BackupHelper)1 NetworkSettingsHelper (net.osmand.plus.backup.NetworkSettingsHelper)1 MapViewTrackingUtilities (net.osmand.plus.base.MapViewTrackingUtilities)1 AssetIndexItem (net.osmand.plus.download.DownloadOsmandIndexesHelper.AssetIndexItem)1 AnalyticsHelper (net.osmand.plus.helpers.AnalyticsHelper)1 AvoidSpecificRoads (net.osmand.plus.helpers.AvoidSpecificRoads)1 DayNightHelper (net.osmand.plus.helpers.DayNightHelper)1 LauncherShortcutsHelper (net.osmand.plus.helpers.LauncherShortcutsHelper)1 LockHelper (net.osmand.plus.helpers.LockHelper)1 TargetPointsHelper (net.osmand.plus.helpers.TargetPointsHelper)1 WaypointHelper (net.osmand.plus.helpers.WaypointHelper)1