@@ -0,0 +1,1330 @@
+package com.nutiteq.advancedmap3.datasource;%0A%0A%0Aimport com.nutiteq.core.MapTile;%0Aimport com.nutiteq.core.TileData;%0Aimport com.nutiteq.datasources.TileDataSource;%0A%0A/**%0A * A custom raster tile data source that loads tiles from two sources: uses second one if tile does not exist in first.%0A * Useful for offline-online hybrid source - if tile is not in offline, use online data, for example:%0A * hybridDataSource = new OfflineOnlineTileDataSource(new PackageManagerTileDataSource(packageManager), new NutiteqOnlineTileDataSource(%22nutiteq.osm%22));%0A */%0Apublic class OfflineOnlineTileDataSource extends TileDataSource %7B%0A    private TileDataSource dataSource1;%0A    private TileDataSource dataSource2;%0A%0A    public OfflineOnlineTileDataSource(TileDataSource dataSource1, TileDataSource dataSource2) %7B%0A        super(Math.min(dataSource1.getMinZoom(), dataSource2.getMinZoom()), Math.max(dataSource1.getMaxZoom(), dataSource2.getMaxZoom()));%0A        this.dataSource1 = dataSource1;%0A        this.dataSource2 = dataSource2;%0A    %7D%0A%0A    public TileData loadTile(MapTile tile) %7B%0A        TileData tileData1 = dataSource1.loadTile(tile);%0A%0A        if (tileData1 == null %7C%7C tileData1.getData() == null %7C%7C tileData1.isReplaceWithParent()) %7B%0A            return dataSource2.loadTile(tile);%0A        %7D else %7B%0A            return tileData1;%0A        %7D%0A    %7D%0A%0A%7D%0A

add Offline-Online hybrid data source