add coordinate input to my places-tracks
This commit is contained in:
parent
f96525089d
commit
8c63958053
3 changed files with 21 additions and 12 deletions
|
@ -6,7 +6,6 @@ import android.content.ClipboardManager;
|
|||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.ColorStateList;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
|
@ -38,7 +37,6 @@ import android.view.MenuItem;
|
|||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewTreeObserver;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
|
@ -60,7 +58,6 @@ import net.osmand.plus.OsmAndLocationProvider.OsmAndLocationListener;
|
|||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.OsmandSettings;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
import net.osmand.plus.activities.TrackActivity;
|
||||
import net.osmand.plus.helpers.AndroidUiHelper;
|
||||
import net.osmand.plus.mapmarkers.CoordinateInputBottomSheetDialogFragment.CoordinateInputFormatChangeListener;
|
||||
|
@ -1225,9 +1222,9 @@ public class CoordinateInputDialogFragment extends DialogFragment implements Osm
|
|||
if (!compassUpdateAllowed) {
|
||||
return;
|
||||
}
|
||||
final MapActivity mapActivity = (MapActivity) getActivity();
|
||||
if (mapActivity != null && adapter != null) {
|
||||
mapActivity.getMyApplication().runInUIThread(new Runnable() {
|
||||
final OsmandApplication app = getMyApplication();
|
||||
if (app != null && adapter != null) {
|
||||
app.runInUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
adapter.notifyDataSetChanged();
|
||||
|
|
|
@ -21,9 +21,9 @@ import android.widget.TextView;
|
|||
|
||||
import net.osmand.AndroidUtils;
|
||||
import net.osmand.IndexConstants;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.widgets.OsmandTextFieldBoxes;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
import net.osmand.plus.base.BottomSheetDialogFragment;
|
||||
import net.osmand.plus.helpers.AndroidUiHelper;
|
||||
|
||||
|
@ -47,6 +47,7 @@ public class SaveAsTrackBottomSheetDialogFragment extends BottomSheetDialogFragm
|
|||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
final OsmandApplication app = getMyApplication();
|
||||
boolean isCoordInput = false;
|
||||
int number = 0;
|
||||
Bundle args = getArguments();
|
||||
|
@ -55,9 +56,8 @@ public class SaveAsTrackBottomSheetDialogFragment extends BottomSheetDialogFragm
|
|||
if (number != 0)
|
||||
isCoordInput = true;
|
||||
}
|
||||
MapActivity mapActivity = (MapActivity) getActivity();
|
||||
portrait = AndroidUiHelper.isOrientationPortrait(getActivity());
|
||||
final boolean nightMode = !getMyApplication().getSettings().isLightContent();
|
||||
final boolean nightMode = !app.getSettings().isLightContent();
|
||||
final int themeRes = nightMode ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme;
|
||||
|
||||
final View mainView = View.inflate(new ContextThemeWrapper(getContext(), themeRes), R.layout.fragment_marker_save_as_track_bottom_sheet_dialog, container);
|
||||
|
@ -81,16 +81,16 @@ public class SaveAsTrackBottomSheetDialogFragment extends BottomSheetDialogFragm
|
|||
if (textBox instanceof TextInputLayout) {
|
||||
((TextInputLayout) textBox).setHintTextAppearance(R.style.TextAppearance_App_DarkTextInputLayout);
|
||||
} else if (textBox instanceof OsmandTextFieldBoxes) {
|
||||
((OsmandTextFieldBoxes) textBox).setPrimaryColor(ContextCompat.getColor(mapActivity, R.color.color_dialog_buttons_dark));
|
||||
((OsmandTextFieldBoxes) textBox).setPrimaryColor(ContextCompat.getColor(app, R.color.color_dialog_buttons_dark));
|
||||
}
|
||||
}
|
||||
|
||||
final File dir = mapActivity.getMyApplication().getAppPath(IndexConstants.GPX_INDEX_DIR + "/map markers");
|
||||
final File dir = app.getAppPath(IndexConstants.GPX_INDEX_DIR + "/map markers");
|
||||
if (!dir.exists()) {
|
||||
dir.mkdirs();
|
||||
}
|
||||
Date date = new Date();
|
||||
final String suggestedName = mapActivity.getString(R.string.markers) + "_" + DateFormat.format("yyyy-MM-dd", date).toString();
|
||||
final String suggestedName = app.getString(R.string.markers) + "_" + DateFormat.format("yyyy-MM-dd", date).toString();
|
||||
String displayedName = suggestedName;
|
||||
File fout = new File(dir, suggestedName + GPX_SUFFIX);
|
||||
int ind = 1;
|
||||
|
|
|
@ -77,6 +77,7 @@ import net.osmand.plus.download.ui.LocalIndexesFragment;
|
|||
import net.osmand.plus.download.ui.LocalIndexesFragment.RenameCallback;
|
||||
import net.osmand.plus.helpers.AndroidUiHelper;
|
||||
import net.osmand.plus.helpers.GpxUiHelper.GPXDataSetType;
|
||||
import net.osmand.plus.mapmarkers.CoordinateInputDialogFragment;
|
||||
import net.osmand.plus.monitoring.OsmandMonitoringPlugin;
|
||||
import net.osmand.plus.osmedit.OsmEditingPlugin;
|
||||
import net.osmand.util.Algorithms;
|
||||
|
@ -474,6 +475,8 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
|||
});
|
||||
} else if (itemId == R.string.gpx_add_track) {
|
||||
addTrack();
|
||||
}else if (itemId == R.string.coordinate_input) {
|
||||
openCoordinatesInput();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -481,6 +484,9 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
|||
optionsMenuAdapter.addItem(new ContextMenuItem.ItemBuilder().setTitleId(R.string.gpx_add_track, getActivity())
|
||||
.setIcon(R.drawable.ic_action_plus)
|
||||
.setListener(listener).createItem());
|
||||
optionsMenuAdapter.addItem(new ContextMenuItem.ItemBuilder().setTitleId(R.string.coordinate_input, getActivity())
|
||||
.setIcon(R.drawable.ic_action_coordinates_longitude)
|
||||
.setListener(listener).createItem());
|
||||
optionsMenuAdapter.addItem(new ContextMenuItem.ItemBuilder().setTitleId(R.string.shared_string_show_on_map, getActivity())
|
||||
.setIcon(R.drawable.ic_show_on_map)
|
||||
.setListener(listener).createItem());
|
||||
|
@ -538,6 +544,12 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
|||
((FavoritesActivity) getActivity()).addTrack();
|
||||
}
|
||||
|
||||
private void openCoordinatesInput() {
|
||||
CoordinateInputDialogFragment fragment = new CoordinateInputDialogFragment();
|
||||
fragment.setRetainInstance(true);
|
||||
fragment.show(getChildFragmentManager(), CoordinateInputDialogFragment.TAG);
|
||||
}
|
||||
|
||||
public void showProgressBar() {
|
||||
((FavoritesActivity) getActivity()).setSupportProgressBarIndeterminateVisibility(true);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue