package net.osmand.plus.quickaction.actions;
import android.support.v7.widget.SwitchCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import net.osmand.data.LatLon;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.osmedit.OsmEditingPlugin;
import net.osmand.plus.quickaction.QuickAction;
public class AddOSMBugAction extends QuickAction {
public static final int TYPE = 12;
private static final String KEY_MESSAGE = "message";
private static final String KEY_SHO_DIALOG = "dialog";
public AddOSMBugAction() {
super(TYPE);
}
public AddOSMBugAction(QuickAction quickAction) {
super(quickAction);
}
@Override
public void execute(MapActivity activity) {
OsmEditingPlugin plugin = OsmandPlugin.getPlugin(OsmEditingPlugin.class);
if (plugin != null) {
LatLon latLon = activity.getMapView()
.getCurrentRotatedTileBox()
.getCenterLatLon();
if (getParams().isEmpty()) {
plugin.openOsmNote(activity, latLon.getLatitude(), latLon.getLongitude(), "", true);
} else {
plugin.openOsmNote(activity, latLon.getLatitude(), latLon.getLongitude(),
getParams().get(KEY_MESSAGE),
!Boolean.valueOf(getParams().get(KEY_SHO_DIALOG)));
}
}
}
@Override
public void drawUI(ViewGroup parent, MapActivity activity) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.quick_action_add_bug, parent, false);
SwitchCompat showDialog = (SwitchCompat) view.findViewById(R.id.dialogSwitch);
EditText message = (EditText) view.findViewById(R.id.message_edit);
if (!getParams().isEmpty()) {
showDialog.setChecked(Boolean.valueOf(getParams().get(KEY_SHO_DIALOG)));
message.setText(getParams().get(KEY_MESSAGE));
}
parent.addView(view);
}
@Override
public boolean fillParams(View root, MapActivity activity) {
SwitchCompat showDialog = (SwitchCompat) root.findViewById(R.id.dialogSwitch);
EditText message = (EditText) root.findViewById(R.id.message_edit);
getParams().put(KEY_SHO_DIALOG, String.valueOf(showDialog.isChecked()));
getParams().put(KEY_MESSAGE, message.getText().toString());
return true;
}
}