package net.osmand.plus.openseamapsplugin;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import net.osmand.IndexConstants;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.R;
import net.osmand.plus.download.DownloadActivity;
import net.osmand.plus.download.DownloadResources;
import net.osmand.plus.render.RendererRegistry;
public class NauticalMapsPlugin extends OsmandPlugin {
public static final String ID = "nauticalPlugin.plugin";
public static final String COMPONENT = "net.osmand.nauticalPlugin";
private static String previousRenderer = RendererRegistry.DEFAULT_RENDER;
private OsmandApplication app;
public NauticalMapsPlugin(OsmandApplication app) {
this.app = app;
}
@Override
public int getLogoResourceId() {
return R.drawable.ic_plugin_nautical_map;
}
@Override
public int getAssetResourceName() {
return R.drawable.nautical_map;
}
@Override
public String getDescription() {
return app.getString(net.osmand.plus.R.string.plugin_nautical_descr);
}
@Override
public String getName() {
return app.getString(net.osmand.plus.R.string.plugin_nautical_name);
}
@Override
public String getHelpFileName() {
return "feature_articles/nautical-charts.html";
}
@Override
public boolean init(final OsmandApplication app, final Activity activity) {
if(activity != null) {
// called from UI
previousRenderer = app.getSettings().RENDERER.get();
app.getSettings().RENDERER.set(RendererRegistry.NAUTICAL_RENDER);
if(!app.getResourceManager().getIndexFileNames().containsKey(DownloadResources.WORLD_SEAMARKS_NAME+
IndexConstants.BINARY_MAP_INDEX_EXT)){
AlertDialog.Builder dlg = new AlertDialog.Builder(activity);
dlg.setMessage(net.osmand.plus.R.string.nautical_maps_missing);
dlg.setPositiveButton(R.string.shared_string_ok, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
final Intent intent = new Intent(activity, app.getAppCustomization().getDownloadIndexActivity());
intent.putExtra(DownloadActivity.TAB_TO_OPEN, DownloadActivity.DOWNLOAD_TAB);
activity.startActivity(intent);
}
});
dlg.setNegativeButton(R.string.shared_string_cancel, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
app.getSettings().RENDERER.set(previousRenderer);
}
});
dlg.show();
}
}
return true;
}
@Override
public void disable(OsmandApplication app) {
super.disable(app);
if(app.getSettings().RENDERER.get().equals(RendererRegistry.NAUTICAL_RENDER)) {
app.getSettings().RENDERER.set(previousRenderer);
}
}
@Override
public String getId() {
return ID;
}
@Override
public Class<? extends Activity> getSettingsActivity() {
return null;
}
}