Boat navigation is enabled with Nautical plugin

This commit is contained in:
PaulStets 2018-01-26 13:31:47 +02:00
parent 3eb7dd5165
commit 14ac84f363

View file

@ -6,6 +6,7 @@ import android.content.DialogInterface.OnClickListener;
import android.content.Intent; import android.content.Intent;
import android.support.v7.app.AlertDialog; import android.support.v7.app.AlertDialog;
import net.osmand.IndexConstants; import net.osmand.IndexConstants;
import net.osmand.plus.ApplicationMode;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin; import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.R; import net.osmand.plus.R;
@ -13,6 +14,9 @@ import net.osmand.plus.download.DownloadActivity;
import net.osmand.plus.download.DownloadResources; import net.osmand.plus.download.DownloadResources;
import net.osmand.plus.render.RendererRegistry; import net.osmand.plus.render.RendererRegistry;
import java.util.LinkedHashSet;
import java.util.Set;
public class NauticalMapsPlugin extends OsmandPlugin { public class NauticalMapsPlugin extends OsmandPlugin {
public static final String ID = "nauticalPlugin.plugin"; public static final String ID = "nauticalPlugin.plugin";
@ -53,6 +57,7 @@ public class NauticalMapsPlugin extends OsmandPlugin {
@Override @Override
public boolean init(final OsmandApplication app, final Activity activity) { public boolean init(final OsmandApplication app, final Activity activity) {
if(activity != null) { if(activity != null) {
addBoatProfile(true);
// called from UI // called from UI
previousRenderer = app.getSettings().RENDERER.get(); previousRenderer = app.getSettings().RENDERER.get();
app.getSettings().RENDERER.set(RendererRegistry.NAUTICAL_RENDER); app.getSettings().RENDERER.set(RendererRegistry.NAUTICAL_RENDER);
@ -82,6 +87,17 @@ public class NauticalMapsPlugin extends OsmandPlugin {
} }
return true; return true;
} }
public void addBoatProfile(boolean flag) {
Set<ApplicationMode> selectedProfiles = new LinkedHashSet<>(ApplicationMode.values(app.getSettings()));
if((!selectedProfiles.contains(ApplicationMode.BOAT) && flag) ||
((selectedProfiles.contains(ApplicationMode.BOAT) && !flag))) {
String s = app.getSettings().AVAILABLE_APP_MODES.get();
String currModes = flag ? s + ApplicationMode.BOAT.getStringKey() + ","
: s.replace(ApplicationMode.BOAT.getStringKey() + ",", "");
app.getSettings().AVAILABLE_APP_MODES.set(currModes);
}
}
@Override @Override
public void disable(OsmandApplication app) { public void disable(OsmandApplication app) {
@ -89,6 +105,7 @@ public class NauticalMapsPlugin extends OsmandPlugin {
if(app.getSettings().RENDERER.get().equals(RendererRegistry.NAUTICAL_RENDER)) { if(app.getSettings().RENDERER.get().equals(RendererRegistry.NAUTICAL_RENDER)) {
app.getSettings().RENDERER.set(previousRenderer); app.getSettings().RENDERER.set(previousRenderer);
} }
addBoatProfile(false);
} }
@Override @Override