That was it, thanks!
I still can't open the external theme so can you please look at the following code and see if there is something wrong:
onActivityResult:protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(data != null && resultCode == Activity.
RESULT_OK) {
Uri uri = data.getData();
if (requestCode ==
SELECT_MAP_FILE) {
openMap(uri);
} else if(requestCode ==
SELECT_THEME_FILE) {
openTheme(uri);
}
}
}
openTheme:private void openTheme(Uri uri) {
XmlRenderTheme xmlRenderTheme = new ContentRenderTheme(getContentResolver(), uri);
TileCache tileCache = AndroidUtil.
createTileCache(this, "mapcache",
mapView.getModel().displayModel.getTileSize(), 1f,
mapView.getModel().frameBufferModel.getOverdrawFactor());
MultiMapDataStore multiMapDataStore = new MultiMapDataStore(MultiMapDataStore.DataPolicy.
RETURN_ALL);
multiMapDataStore.addMapDataStore(mapDataStore, true, true);
multiMapDataStore.addMapDataStore(dvDataStore, false, false);
TileRendererLayer tileRendererLayer = new TileRendererLayer(tileCache, multiMapDataStore,
mapView.getModel().mapViewPosition, AndroidGraphicFactory.
INSTANCE);
tileRendererLayer.setXmlRenderTheme(xmlRenderTheme);
mapView.getLayerManager().getLayers().add(tileRendererLayer);
}
Method that starts Intent for theme picking:public void loadThemeOnClick(View view) {
Intent intent = new Intent(Build.VERSION.
SDK_INT >= Build.VERSION_CODES.
KITKAT ? Intent.
ACTION_OPEN_DOCUMENT : Intent.
ACTION_GET_CONTENT);
intent.addCategory(Intent.
CATEGORY_OPENABLE);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setType("*/*");
startActivityForResult(intent,
SELECT_THEME_FILE);
}
If I set the render theme to InternalRenderTheme.DEFAULT both .map files are displayed correctly.
Once again thanks for all the help!