Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
fe247626b6
11 changed files with 176 additions and 186 deletions
|
@ -9,6 +9,7 @@
|
|||
3. All your modified/created strings are in the top of the file (to make easier find what\'s translated).
|
||||
PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy
|
||||
-->
|
||||
<string name="osm_save_offline">Save offline</string>
|
||||
<string name="osm_edit_modified_poi">Modified OSM POI</string>
|
||||
<string name="osm_edit_deleted_poi">Deleted OSM POI</string>
|
||||
<string name="context_menu_item_open_note">Open OSM Note</string>
|
||||
|
|
|
@ -29,9 +29,9 @@ public class OsmBugMenuController extends MenuController {
|
|||
if (plugin != null) {
|
||||
OpenStreetNote bg = getBug();
|
||||
if(bg.isOpened()) {
|
||||
plugin.getBugsLayer(getMapActivity()).commentBug(bg);
|
||||
plugin.getBugsLayer(getMapActivity()).commentBug(bg, "");
|
||||
} else {
|
||||
plugin.getBugsLayer(getMapActivity()).reopenBug(bg);
|
||||
plugin.getBugsLayer(getMapActivity()).reopenBug(bg, "");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -47,7 +47,7 @@ public class OsmBugMenuController extends MenuController {
|
|||
@Override
|
||||
public void buttonPressed() {
|
||||
if (plugin != null) {
|
||||
plugin.getBugsLayer(getMapActivity()).closeBug(getBug());
|
||||
plugin.getBugsLayer(getMapActivity()).closeBug(getBug(), "");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -44,7 +44,7 @@ import android.widget.ImageButton;
|
|||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import net.osmand.CallbackWithObject;
|
||||
import net.osmand.PlatformUtil;
|
||||
import net.osmand.access.AccessibleToast;
|
||||
import net.osmand.data.Amenity;
|
||||
|
@ -97,6 +97,7 @@ public class EditPoiDialogFragment extends DialogFragment {
|
|||
|
||||
private OpenstreetmapUtil mOpenstreetmapUtil;
|
||||
private TextInputLayout poiTypeTextInputLayout;
|
||||
private View view;
|
||||
|
||||
@Override
|
||||
public void onAttach(Activity activity) {
|
||||
|
@ -128,7 +129,7 @@ public class EditPoiDialogFragment extends DialogFragment {
|
|||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
final View view = inflater.inflate(R.layout.fragment_edit_poi, container, false);
|
||||
view = inflater.inflate(R.layout.fragment_edit_poi, container, false);
|
||||
final OsmandSettings settings = getMyApplication().getSettings();
|
||||
boolean isLightTheme = settings.OSMAND_THEME.get() == OsmandSettings.OSMAND_LIGHT_THEME;
|
||||
|
||||
|
@ -327,27 +328,37 @@ public class EditPoiDialogFragment extends DialogFragment {
|
|||
node.putTag(tag.getKey(), tag.getValue());
|
||||
}
|
||||
}
|
||||
commitNode(action, node, mOpenstreetmapUtil.getEntityInfo(node.getId()),
|
||||
"",
|
||||
false,
|
||||
new Runnable() {
|
||||
commitNode(action, node, mOpenstreetmapUtil.getEntityInfo(node.getId()), "", false,
|
||||
new CallbackWithObject<Node>() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
OsmEditingPlugin plugin = OsmandPlugin.getPlugin(OsmEditingPlugin.class);
|
||||
if (plugin != null && offlineEdit) {
|
||||
List<OpenstreetmapPoint> points = plugin.getDBPOI().getOpenstreetmapPoints();
|
||||
if (getActivity() instanceof MapActivity && points.size() > 0) {
|
||||
OsmPoint point = points.get(points.size() - 1);
|
||||
MapActivity mapActivity = (MapActivity) getActivity();
|
||||
mapActivity.getContextMenu().showOrUpdate(new LatLon(point.getLatitude(), point.getLongitude()),
|
||||
plugin.getOsmEditsLayer(mapActivity).getObjectName(point), point);
|
||||
public boolean processResult(Node result) {
|
||||
if (result != null) {
|
||||
OsmEditingPlugin plugin = OsmandPlugin.getPlugin(OsmEditingPlugin.class);
|
||||
if (plugin != null && offlineEdit) {
|
||||
List<OpenstreetmapPoint> points = plugin.getDBPOI().getOpenstreetmapPoints();
|
||||
if (getActivity() instanceof MapActivity && points.size() > 0) {
|
||||
OsmPoint point = points.get(points.size() - 1);
|
||||
MapActivity mapActivity = (MapActivity) getActivity();
|
||||
mapActivity.getContextMenu().showOrUpdate(
|
||||
new LatLon(point.getLatitude(), point.getLongitude()),
|
||||
plugin.getOsmEditsLayer(mapActivity).getObjectName(point), point);
|
||||
}
|
||||
}
|
||||
|
||||
if (getActivity() instanceof MapActivity) {
|
||||
((MapActivity) getActivity()).getMapView().refreshMap(true);
|
||||
}
|
||||
dismiss();
|
||||
} else {
|
||||
OsmEditingPlugin plugin = OsmandPlugin.getPlugin(OsmEditingPlugin.class);
|
||||
mOpenstreetmapUtil = plugin.getPoiModificationLocalUtil();
|
||||
Button saveButton = (Button) view.findViewById(R.id.saveButton);
|
||||
saveButton.setText(mOpenstreetmapUtil instanceof OpenstreetmapRemoteUtil
|
||||
? R.string.shared_string_upload : R.string.shared_string_save);
|
||||
}
|
||||
|
||||
if (getActivity() instanceof MapActivity) {
|
||||
((MapActivity) getActivity()).getMapView().refreshMap(true);
|
||||
}
|
||||
dismiss();
|
||||
return false;
|
||||
}
|
||||
}, getActivity(), mOpenstreetmapUtil);
|
||||
}
|
||||
|
@ -399,7 +410,7 @@ public class EditPoiDialogFragment extends DialogFragment {
|
|||
final EntityInfo info,
|
||||
final String comment,
|
||||
final boolean closeChangeSet,
|
||||
final Runnable successAction,
|
||||
final CallbackWithObject<Node> postExecute,
|
||||
final Activity activity,
|
||||
final OpenstreetmapUtil openstreetmapUtil) {
|
||||
if (info == null && OsmPoint.Action.CREATE != action && openstreetmapUtil instanceof OpenstreetmapRemoteUtil) {
|
||||
|
@ -423,8 +434,8 @@ public class EditPoiDialogFragment extends DialogFragment {
|
|||
@Override
|
||||
protected void onPostExecute(Node result) {
|
||||
progress.dismiss();
|
||||
if (result != null) {
|
||||
successAction.run();
|
||||
if(postExecute != null) {
|
||||
postExecute.processResult(result);
|
||||
}
|
||||
}
|
||||
}.execute();
|
||||
|
@ -640,26 +651,37 @@ public class EditPoiDialogFragment extends DialogFragment {
|
|||
String c = comment == null ? null : comment.getText().toString();
|
||||
boolean closeChangeSet = closeChangesetCheckBox != null
|
||||
&& closeChangesetCheckBox.isChecked();
|
||||
commitNode(OsmPoint.Action.DELETE, n, openstreetmapUtil.getEntityInfo(n.getId()), c,
|
||||
closeChangeSet, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (isLocalEdit) {
|
||||
AccessibleToast.makeText(
|
||||
activity, R.string.osm_changes_added_to_local_edits,
|
||||
Toast.LENGTH_LONG).show();
|
||||
} else {
|
||||
AccessibleToast.makeText(activity, R.string.poi_remove_success, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
if (activity instanceof MapActivity) {
|
||||
((MapActivity) activity).getMapView().refreshMap(true);
|
||||
}
|
||||
}
|
||||
}, activity, openstreetmapUtil);
|
||||
deleteNode(n, c, closeChangeSet);
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
builder.create().show();
|
||||
}
|
||||
|
||||
private void deleteNode(final Node n, final String c, final boolean closeChangeSet) {
|
||||
final boolean isLocalEdit = openstreetmapUtil instanceof OpenstreetmapLocalUtil;
|
||||
commitNode(OsmPoint.Action.DELETE, n, openstreetmapUtil.getEntityInfo(n.getId()), c, closeChangeSet,
|
||||
new CallbackWithObject<Node>() {
|
||||
|
||||
@Override
|
||||
public boolean processResult(Node result) {
|
||||
if (result != null) {
|
||||
if (isLocalEdit) {
|
||||
AccessibleToast.makeText(activity, R.string.osm_changes_added_to_local_edits,
|
||||
Toast.LENGTH_LONG).show();
|
||||
} else {
|
||||
AccessibleToast.makeText(activity, R.string.poi_remove_success, Toast.LENGTH_LONG)
|
||||
.show();
|
||||
}
|
||||
if (activity instanceof MapActivity) {
|
||||
((MapActivity) activity).getMapView().refreshMap(true);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}, activity, openstreetmapUtil);
|
||||
}
|
||||
}
|
||||
|
||||
public static class SaveWithAdvancedTagsDialogFragment extends DialogFragment {
|
||||
|
|
|
@ -23,11 +23,12 @@ import net.osmand.plus.OsmandSettings;
|
|||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.activities.DialogProvider;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
import net.osmand.plus.osmedit.OsmBugsUtil.Action;
|
||||
import net.osmand.plus.osmedit.OsmBugsUtil.OsmBugResult;
|
||||
import net.osmand.plus.osmedit.OsmPoint.Action;
|
||||
import net.osmand.plus.views.ContextMenuLayer.IContextMenuProvider;
|
||||
import net.osmand.plus.views.OsmandMapLayer;
|
||||
import net.osmand.plus.views.OsmandMapTileView;
|
||||
import net.osmand.util.Algorithms;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
|
@ -65,6 +66,7 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider
|
|||
|
||||
private final MapActivity activity;
|
||||
protected static final String KEY_BUG = "bug";
|
||||
protected static final String KEY_TEXT = "text";
|
||||
protected static final String KEY_ACTION = "action";
|
||||
private static final int DIALOG_BUG = 305;
|
||||
private static Bundle dialogBundle = new Bundle();
|
||||
|
@ -74,7 +76,7 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider
|
|||
public OsmBugsLayer(MapActivity activity, OsmEditingPlugin plugin){
|
||||
this.activity = activity;
|
||||
this.plugin = plugin;
|
||||
local = new OsmBugsLocalUtil(activity, plugin.getDBBug());
|
||||
local = plugin.getOsmNotesLocalUtil();
|
||||
}
|
||||
|
||||
public OsmBugsUtil getOsmbugsUtil(OpenStreetNote bug) {
|
||||
|
@ -320,16 +322,11 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider
|
|||
@Override
|
||||
protected OsmBugResult doInBackground(Void... params) {
|
||||
osmbugsUtil = getOsmbugsUtil(bug);
|
||||
if(action == Action.REOPEN) {
|
||||
return osmbugsUtil.reopenBug(bug.getLatitude(), bug.getLongitude(), bug.getId(), text);
|
||||
} else if(action == Action.MODIFY) {
|
||||
return osmbugsUtil.addingComment(bug.getLatitude(), bug.getLongitude(), bug.getId(), text);
|
||||
} else if(action == Action.CLOSE) {
|
||||
return osmbugsUtil.closingBug(bug.getLatitude(), bug.getLongitude(), bug.getId(), text);
|
||||
} else if(action == Action.CREATE) {
|
||||
return osmbugsUtil.createNewBug(bug.getLatitude(), bug.getLongitude(), text);
|
||||
}
|
||||
return null;
|
||||
OsmNotesPoint pnt = new OsmNotesPoint();
|
||||
pnt.setId(bug.getId());
|
||||
pnt.setLatitude(bug.getLatitude());
|
||||
pnt.setLongitude(bug.getLongitude());
|
||||
return osmbugsUtil.commit(pnt, text, action);
|
||||
}
|
||||
protected void onPostExecute(OsmBugResult obj) {
|
||||
if (obj != null && obj.warning == null) {
|
||||
|
@ -344,7 +341,7 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider
|
|||
AccessibleToast.makeText(activity, R.string.osn_add_dialog_success, Toast.LENGTH_LONG).show();
|
||||
} else if(action == Action.MODIFY) {
|
||||
AccessibleToast.makeText(activity, R.string.osb_comment_dialog_success, Toast.LENGTH_LONG).show();
|
||||
} else if(action == Action.CLOSE) {
|
||||
} else if(action == Action.DELETE) {
|
||||
AccessibleToast.makeText(activity, R.string.osn_close_dialog_success, Toast.LENGTH_LONG).show();
|
||||
} else if(action == Action.CREATE) {
|
||||
AccessibleToast.makeText(activity, R.string.osn_add_dialog_success, Toast.LENGTH_LONG).show();
|
||||
|
@ -356,10 +353,15 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider
|
|||
int r = R.string.osb_comment_dialog_error;
|
||||
if(action == Action.REOPEN) {
|
||||
r = R.string.osn_add_dialog_error;
|
||||
} else if(action == Action.CLOSE) {
|
||||
reopenBug(bug, text);
|
||||
} else if(action == Action.DELETE) {
|
||||
r = R.string.osn_close_dialog_error;
|
||||
closeBug(bug, text);
|
||||
} else if(action == Action.CREATE) {
|
||||
r = R.string.osn_add_dialog_error;
|
||||
openBug(bug.getLatitude(), bug.getLongitude(), text);
|
||||
} else {
|
||||
commentBug(bug, text);
|
||||
}
|
||||
AccessibleToast.makeText(activity, activity.getResources().getString(r) + "\n" + obj, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
@ -373,39 +375,43 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider
|
|||
OpenStreetNote bug = new OpenStreetNote();
|
||||
bug.setLatitude(latitude);
|
||||
bug.setLongitude(longitude);
|
||||
bug.comments.add(message);
|
||||
dialogBundle = new Bundle();
|
||||
dialogBundle.putSerializable(KEY_BUG, bug);
|
||||
dialogBundle.putSerializable(KEY_ACTION, OsmBugsUtil.Action.CREATE.name());
|
||||
dialogBundle.putSerializable(KEY_TEXT, message);
|
||||
dialogBundle.putSerializable(KEY_ACTION, Action.CREATE.name());
|
||||
activity.showDialog(DIALOG_BUG);
|
||||
}
|
||||
|
||||
public void closeBug(final OpenStreetNote bug){
|
||||
public void closeBug(final OpenStreetNote bug, String txt){
|
||||
dialogBundle = new Bundle();
|
||||
dialogBundle.putSerializable(KEY_BUG, bug);
|
||||
dialogBundle.putSerializable(KEY_ACTION, OsmBugsUtil.Action.CLOSE.name());
|
||||
dialogBundle.putSerializable(KEY_TEXT, txt);
|
||||
dialogBundle.putSerializable(KEY_ACTION, Action.DELETE.name());
|
||||
activity.showDialog(DIALOG_BUG);
|
||||
}
|
||||
|
||||
public void reopenBug(final OpenStreetNote bug){
|
||||
public void reopenBug(final OpenStreetNote bug, String txt){
|
||||
dialogBundle = new Bundle();
|
||||
dialogBundle.putSerializable(KEY_BUG, bug);
|
||||
dialogBundle.putSerializable(KEY_ACTION, OsmBugsUtil.Action.REOPEN.name());
|
||||
dialogBundle.putSerializable(KEY_TEXT, txt);
|
||||
dialogBundle.putSerializable(KEY_ACTION, Action.REOPEN.name());
|
||||
activity.showDialog(DIALOG_BUG);
|
||||
}
|
||||
|
||||
public void commentBug(final OpenStreetNote bug){
|
||||
public void commentBug(final OpenStreetNote bug, String txt){
|
||||
dialogBundle = new Bundle();
|
||||
dialogBundle.putSerializable(KEY_BUG, bug);
|
||||
dialogBundle.putSerializable(KEY_ACTION, OsmBugsUtil.Action.MODIFY.name());
|
||||
dialogBundle.putSerializable(KEY_TEXT, txt);
|
||||
dialogBundle.putSerializable(KEY_ACTION, Action.MODIFY.name());
|
||||
activity.showDialog(DIALOG_BUG);
|
||||
}
|
||||
|
||||
private void prepareBugDialog(Bundle args, Dialog dialog) {
|
||||
final OpenStreetNote bug = (OpenStreetNote) args.getSerializable(KEY_BUG);
|
||||
final Action action = OsmBugsUtil.Action.valueOf((String) args.getSerializable(KEY_ACTION));
|
||||
final Action action = Action.valueOf((String) args.getSerializable(KEY_ACTION));
|
||||
String text =(String) args.getSerializable(KEY_TEXT);
|
||||
int title ;
|
||||
if(action == Action.CLOSE) {
|
||||
if(action == Action.DELETE) {
|
||||
title = R.string.osn_close_dialog_title;
|
||||
} else if(action == Action.MODIFY) {
|
||||
title = R.string.osn_comment_dialog_title;
|
||||
|
@ -431,8 +437,8 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider
|
|||
((EditText)view.findViewById(R.id.userNameEditText)).setText(getUserName());
|
||||
((EditText)view.findViewById(R.id.passwordEditText)).setText(((OsmandApplication) activity.getApplication()).getSettings().USER_PASSWORD.get());
|
||||
}
|
||||
if(action == Action.CREATE && bug.comments.size() > 0) {
|
||||
((EditText)view.findViewById(R.id.messageEditText)).setText(bug.comments.get(0));
|
||||
if(!Algorithms.isEmpty(text)) {
|
||||
((EditText)view.findViewById(R.id.messageEditText)).setText(text);
|
||||
}
|
||||
AndroidUtils.softKeyboardDelayed((EditText) view.findViewById(R.id.messageEditText));
|
||||
btn.setOnClickListener(new View.OnClickListener() {
|
||||
|
|
|
@ -4,28 +4,33 @@ package net.osmand.plus.osmedit;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import android.content.Context;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.osmedit.OsmPoint.Action;
|
||||
|
||||
public class OsmBugsLocalUtil implements OsmBugsUtil {
|
||||
|
||||
|
||||
private final Context ctx;
|
||||
private final OsmBugsDbHelper db;
|
||||
|
||||
public OsmBugsLocalUtil(Context uiContext, OsmBugsDbHelper db) {
|
||||
this.ctx = uiContext;
|
||||
public OsmBugsLocalUtil(OsmandApplication app, OsmBugsDbHelper db) {
|
||||
this.db = db;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public OsmBugResult createNewBug(double latitude, double longitude, String text){
|
||||
OsmNotesPoint p = new OsmNotesPoint();
|
||||
p.setId(Math.min(-2, db.getMinID() -1));
|
||||
p.setText(text);
|
||||
p.setLatitude(latitude);
|
||||
p.setLongitude(longitude);
|
||||
p.setAction(OsmPoint.Action.CREATE);
|
||||
return wrap(p, db.addOsmbugs(p));
|
||||
public OsmBugResult commit(OsmNotesPoint point, String text, Action action) {
|
||||
if(action == OsmPoint.Action.CREATE) {
|
||||
point.setId(Math.min(-2, db.getMinID() -1));
|
||||
point.setText(text);
|
||||
point.setAction(action);
|
||||
} else {
|
||||
OsmNotesPoint pnt = new OsmNotesPoint();
|
||||
pnt.setId(point.getId());
|
||||
pnt.setLatitude(point.getLatitude());
|
||||
pnt.setLongitude(point.getLongitude());
|
||||
pnt.setAction(action);
|
||||
pnt.setText(text);
|
||||
point = pnt;
|
||||
}
|
||||
return wrap(point, db.addOsmbugs(point));
|
||||
}
|
||||
|
||||
private OsmBugResult wrap(OsmNotesPoint p, boolean success) {
|
||||
|
@ -35,41 +40,8 @@ public class OsmBugsLocalUtil implements OsmBugsUtil {
|
|||
return s;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OsmBugResult reopenBug(double latitude, double longitude, long id, String text){
|
||||
OsmNotesPoint p = new OsmNotesPoint();
|
||||
p.setId(id);
|
||||
p.setText(text);
|
||||
p.setLatitude(latitude);
|
||||
p.setLongitude(longitude);
|
||||
p.setAction(OsmPoint.Action.REOPEN);
|
||||
return wrap(p, db.addOsmbugs(p));
|
||||
}
|
||||
|
||||
public List<OsmNotesPoint> getOsmbugsPoints() {
|
||||
return db.getOsmbugsPoints();
|
||||
}
|
||||
|
||||
@Override
|
||||
public OsmBugResult addingComment(double latitude, double longitude, long id, String text){
|
||||
OsmNotesPoint p = new OsmNotesPoint();
|
||||
p.setId(id);
|
||||
p.setText(text);
|
||||
p.setLatitude(latitude);
|
||||
p.setLongitude(longitude);
|
||||
p.setAction(OsmPoint.Action.MODIFY);
|
||||
return wrap(p, db.addOsmbugs(p));
|
||||
}
|
||||
|
||||
@Override
|
||||
public OsmBugResult closingBug(double latitude, double longitude, long id, String text){
|
||||
OsmNotesPoint p = new OsmNotesPoint();
|
||||
p.setId(id);
|
||||
p.setText(text);
|
||||
p.setLatitude(latitude);
|
||||
p.setLongitude(longitude);
|
||||
p.setAction(OsmPoint.Action.DELETE);
|
||||
return wrap(p, db.addOsmbugs(p));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package net.osmand.plus.osmedit;
|
||||
|
||||
|
||||
import net.osmand.PlatformUtil;
|
||||
import net.osmand.osm.io.Base64;
|
||||
import net.osmand.osm.io.NetworkUtils;
|
||||
|
@ -7,6 +8,7 @@ import net.osmand.plus.OsmandApplication;
|
|||
import net.osmand.plus.OsmandSettings;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.Version;
|
||||
import net.osmand.plus.osmedit.OsmPoint.Action;
|
||||
import net.osmand.util.Algorithms;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
|
@ -38,43 +40,33 @@ public class OsmBugsRemoteUtil implements OsmBugsUtil {
|
|||
this.app = app;
|
||||
settings = app.getSettings();
|
||||
}
|
||||
|
||||
@Override
|
||||
public OsmBugResult createNewBug(double latitude, double longitude, String text) {
|
||||
StringBuilder b = new StringBuilder();
|
||||
b.append(getNotesApi()).append("?"); //$NON-NLS-1$
|
||||
b.append("lat=").append(latitude); //$NON-NLS-1$
|
||||
b.append("&lon=").append(longitude); //$NON-NLS-1$
|
||||
b.append("&text=").append(URLEncoder.encode(text)); //$NON-NLS-1$
|
||||
return editingPOI(b.toString(), "POST", "creating bug"); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
@Override
|
||||
public OsmBugResult addingComment(double latitude, double longitude, long id, String text) {
|
||||
StringBuilder b = new StringBuilder();
|
||||
b.append(getNotesApi()).append("/");
|
||||
b.append(id); //$NON-NLS-1$
|
||||
b.append("/comment?text=").append(URLEncoder.encode(text)); //$NON-NLS-1$
|
||||
return editingPOI(b.toString(), "POST", "adding comment"); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
@Override
|
||||
public OsmBugResult reopenBug(double latitude, double longitude, long id, String text){
|
||||
public OsmBugResult commit(OsmNotesPoint point, String text, Action action) {
|
||||
StringBuilder b = new StringBuilder();
|
||||
b.append(getNotesApi()).append("/"); //$NON-NLS-1$
|
||||
b.append(id); //$NON-NLS-1$
|
||||
b.append("/reopen?text=").append(URLEncoder.encode(text)); //$NON-NLS-1$
|
||||
return editingPOI(b.toString(), "POST", "reopen bug"); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public OsmBugResult closingBug(double latitude, double longitude, long id, String text) {
|
||||
StringBuilder b = new StringBuilder();
|
||||
b.append(getNotesApi()).append("/");
|
||||
b.append(id); //$NON-NLS-1$
|
||||
b.append("/close?text=").append(URLEncoder.encode(text)); //$NON-NLS-1$
|
||||
return editingPOI(b.toString(), "POST", "close bug"); //$NON-NLS-1$
|
||||
String msg = "";
|
||||
if(action == OsmPoint.Action.CREATE) {
|
||||
b.append(getNotesApi()).append("?"); //$NON-NLS-1$
|
||||
b.append("lat=").append(point.getLatitude()); //$NON-NLS-1$
|
||||
b.append("&lon=").append(point.getLongitude()); //$NON-NLS-1$
|
||||
b.append("&text=").append(URLEncoder.encode(text)); //$NON-NLS-1$
|
||||
msg = "creating bug";
|
||||
} else {
|
||||
b.append(getNotesApi()).append("/");
|
||||
b.append(point.getId()); //$NON-NLS-1$
|
||||
if(action == OsmPoint.Action.REOPEN) {
|
||||
b.append("/reopen");
|
||||
msg = "reopen note";
|
||||
} else if(action == OsmPoint.Action.MODIFY) {
|
||||
b.append("/comment");
|
||||
msg = "adding comment";
|
||||
} else if(action == OsmPoint.Action.DELETE) {
|
||||
b.append("/close");
|
||||
msg = "close note";
|
||||
}
|
||||
b.append("?text=").append(URLEncoder.encode(text)); //$NON-NLS-1$
|
||||
}
|
||||
return editingPOI(b.toString(), "POST", msg);
|
||||
}
|
||||
|
||||
private OsmBugResult editingPOI(String url, String requestMethod, String userOperation) {
|
||||
|
|
|
@ -1,19 +1,14 @@
|
|||
package net.osmand.plus.osmedit;
|
||||
|
||||
import net.osmand.plus.osmedit.OsmPoint.Action;
|
||||
|
||||
public interface OsmBugsUtil {
|
||||
|
||||
public static enum Action {CREATE, MODIFY, CLOSE, REOPEN};
|
||||
|
||||
public static class OsmBugResult {
|
||||
OsmNotesPoint local;
|
||||
String warning;
|
||||
}
|
||||
|
||||
public OsmBugResult createNewBug(double latitude, double longitude, String text);
|
||||
|
||||
public OsmBugResult addingComment(double latitude, double longitude, long id, String text);
|
||||
|
||||
public OsmBugResult reopenBug(double latitude, double longitude, long id, String text);
|
||||
|
||||
public OsmBugResult closingBug(double latitude, double longitude, long id, String text);
|
||||
public OsmBugResult commit(OsmNotesPoint bug, String text, Action action);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,18 +1,7 @@
|
|||
package net.osmand.plus.osmedit;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.DialogInterface.OnClickListener;
|
||||
import android.content.Intent;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.EditText;
|
||||
import android.widget.Spinner;
|
||||
import android.widget.Toast;
|
||||
import java.util.List;
|
||||
|
||||
import net.osmand.PlatformUtil;
|
||||
import net.osmand.access.AccessibleToast;
|
||||
import net.osmand.data.Amenity;
|
||||
|
@ -38,7 +27,19 @@ import net.osmand.util.Algorithms;
|
|||
|
||||
import org.apache.commons.logging.Log;
|
||||
|
||||
import java.util.List;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.DialogInterface.OnClickListener;
|
||||
import android.content.Intent;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.EditText;
|
||||
import android.widget.Spinner;
|
||||
import android.widget.Toast;
|
||||
|
||||
|
||||
public class OsmEditingPlugin extends OsmandPlugin {
|
||||
|
@ -50,7 +51,8 @@ public class OsmEditingPlugin extends OsmandPlugin {
|
|||
OsmBugsDbHelper dbbug;
|
||||
OpenstreetmapLocalUtil localUtil;
|
||||
OpenstreetmapRemoteUtil remoteUtil;
|
||||
private OsmBugsRemoteUtil remoteNotesUtil;
|
||||
OsmBugsRemoteUtil remoteNotesUtil;
|
||||
OsmBugsLocalUtil localNotesUtil;
|
||||
|
||||
public OsmEditingPlugin(OsmandApplication app) {
|
||||
this.app = app;
|
||||
|
@ -90,6 +92,13 @@ public class OsmEditingPlugin extends OsmandPlugin {
|
|||
return remoteNotesUtil;
|
||||
}
|
||||
|
||||
public OsmBugsLocalUtil getOsmNotesLocalUtil() {
|
||||
if(localNotesUtil == null) {
|
||||
localNotesUtil = new OsmBugsLocalUtil(app, getDBBug());
|
||||
}
|
||||
return localNotesUtil;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -22,13 +22,13 @@ import android.widget.ArrayAdapter;
|
|||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import net.osmand.access.AccessibleToast;
|
||||
import net.osmand.plus.IconsCache;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.OsmandPlugin;
|
||||
import net.osmand.plus.ProgressImplementation;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.osmedit.OsmPoint.Action;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.ArrayList;
|
||||
|
@ -111,8 +111,8 @@ public class OsmEditsUploadListenerHelper implements OsmEditsUploadListener {
|
|||
builder.setTitle(getResources().getString(R.string.failed_to_upload))
|
||||
.setMessage(MessageFormat.format(
|
||||
getResources().getString(R.string.error_message_pattern), errorMessage))
|
||||
.setPositiveButton(R.string.shared_string_ok, null)
|
||||
.setNeutralButton(getResources().getString(R.string.delete_change),
|
||||
.setPositiveButton(R.string.shared_string_ok, null);
|
||||
builder.setNeutralButton(getResources().getString(R.string.delete_change),
|
||||
new DialogInterface.OnClickListener() {
|
||||
public void onClick(@Nullable DialogInterface dialog, int id) {
|
||||
OsmEditingPlugin plugin =
|
||||
|
|
|
@ -62,16 +62,7 @@ public class UploadOpenstreetmapPointAsyncTask
|
|||
loadErrorsMap.put(point, n != null ? null : "Unknown problem");
|
||||
} else if (point.getGroup() == OsmPoint.Group.BUG) {
|
||||
OsmNotesPoint p = (OsmNotesPoint) point;
|
||||
String errorMessage = null;
|
||||
if (p.getAction() == OsmPoint.Action.CREATE) {
|
||||
errorMessage = remotebug.createNewBug(p.getLatitude(), p.getLongitude(), p.getText()).warning;
|
||||
} else if (p.getAction() == OsmPoint.Action.MODIFY) {
|
||||
errorMessage = remotebug.addingComment(p.getLatitude(), p.getLongitude(), p.getId(), p.getText()).warning;
|
||||
} else if (p.getAction() == OsmPoint.Action.REOPEN) {
|
||||
errorMessage = remotebug.reopenBug(p.getLatitude(), p.getLongitude(), p.getId(), p.getText()).warning;
|
||||
} else if (p.getAction() == OsmPoint.Action.DELETE) {
|
||||
errorMessage = remotebug.closingBug(p.getLatitude(), p.getLongitude(), p.getId(), p.getText()).warning;
|
||||
}
|
||||
String errorMessage = remotebug.commit(p, p.getText(), p.getAction()).warning;
|
||||
if (errorMessage == null) {
|
||||
plugin.getDBBug().deleteAllBugModifications(p);
|
||||
publishProgress(p);
|
||||
|
|
|
@ -94,6 +94,8 @@ public class SendPoiDialogFragment extends DialogFragment {
|
|||
}
|
||||
|
||||
public interface ProgressDialogPoiUploader {
|
||||
|
||||
void showProgressDialog(OsmPoint[] points, boolean closeChangeSet);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue