Merge pull request #5020 from osmandapp/MeasureDistanceImprovements

Made improvements in Measure Distance
This commit is contained in:
Alexander Sytnyk 2018-02-14 12:49:54 +02:00 committed by GitHub
commit 077d24465b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 70 additions and 36 deletions

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<color name="map_toolbar_switch_track_color">#c5d2e6</color>
<color name="mapillary_color">#3db878</color> <color name="mapillary_color">#3db878</color>
<color name="mapillary_color_pressed">#3a9f73</color> <color name="mapillary_color_pressed">#3a9f73</color>
<color name="mapillary_action_bar">#14c45d</color> <color name="mapillary_action_bar">#14c45d</color>

View file

@ -9,6 +9,7 @@
3. All your modified/created strings are in the top of the file (to make easier find what\'s translated). 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 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="enter_the_file_name">Enter the file name.</string>
<string name="map_import_error">Map import error</string> <string name="map_import_error">Map import error</string>
<string name="map_imported_successfully">Map imported successfully</string> <string name="map_imported_successfully">Map imported successfully</string>
<string name="make_as_start_point">Make as Start Point</string> <string name="make_as_start_point">Make as Start Point</string>

View file

@ -96,6 +96,10 @@
<item name="android:statusBarColor">@color/status_bar_route_light</item> <item name="android:statusBarColor">@color/status_bar_route_light</item>
</style> </style>
<style name="TextAppearance.App.DarkTextInputLayout" parent="@android:style/TextAppearance">
<item name="android:textColor">@color/color_dialog_buttons_dark</item>
</style>
<!-- Osmand themes styles --> <!-- Osmand themes styles -->
<style name="OsmandLightTheme" parent="Theme.AppCompat.Light"> <style name="OsmandLightTheme" parent="Theme.AppCompat.Light">
<item name="android:statusBarColor">@color/status_bar_light</item> <item name="android:statusBarColor">@color/status_bar_light</item>

View file

@ -5,6 +5,7 @@ import android.content.Context;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.design.widget.TextInputLayout;
import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentManager;
import android.support.v4.content.ContextCompat; import android.support.v4.content.ContextCompat;
import android.view.ContextThemeWrapper; import android.view.ContextThemeWrapper;
@ -52,7 +53,7 @@ public class RenameMarkerBottomSheetDialogFragment extends BottomSheetDialogFrag
? R.layout.markers_track_name_text_field_box ? R.layout.markers_track_name_text_field_box
: R.layout.markers_track_name_edit_text; : R.layout.markers_track_name_edit_text;
contentLayout.addView(getLayoutInflater().inflate(layoutRes, contentLayout, false), 1); contentLayout.addView(getLayoutInflater().inflate(layoutRes, contentLayout, false), 1);
View textBox = mainView.findViewById(R.id.name_text_box);
if (portrait) { if (portrait) {
AndroidUtils.setBackground(getActivity(), mainView, nightMode, R.drawable.bg_bottom_menu_light, R.drawable.bg_bottom_menu_dark); AndroidUtils.setBackground(getActivity(), mainView, nightMode, R.drawable.bg_bottom_menu_light, R.drawable.bg_bottom_menu_dark);
} }
@ -60,12 +61,17 @@ public class RenameMarkerBottomSheetDialogFragment extends BottomSheetDialogFrag
final EditText nameEditText = (EditText) mainView.findViewById(R.id.name_edit_text); final EditText nameEditText = (EditText) mainView.findViewById(R.id.name_edit_text);
if (nightMode) { if (nightMode) {
nameEditText.setTextColor(ContextCompat.getColor(mapActivity, R.color.color_white)); nameEditText.setTextColor(ContextCompat.getColor(mapActivity, R.color.color_white));
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));
}
} }
nameEditText.setText(marker.getName(mapActivity)); nameEditText.setText(marker.getName(mapActivity));
nameEditText.requestFocus(); nameEditText.requestFocus();
final InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); final InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_IMPLICIT_ONLY); imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_IMPLICIT_ONLY);
View textBox = mainView.findViewById(R.id.name_text_box);
if (textBox instanceof OsmandTextFieldBoxes) { if (textBox instanceof OsmandTextFieldBoxes) {
((OsmandTextFieldBoxes) textBox).activate(true); ((OsmandTextFieldBoxes) textBox).activate(true);
} }

View file

@ -3,6 +3,8 @@ package net.osmand.plus.mapmarkers;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.design.widget.TextInputLayout;
import android.support.v4.content.ContextCompat;
import android.text.format.DateFormat; import android.text.format.DateFormat;
import android.view.ContextThemeWrapper; import android.view.ContextThemeWrapper;
import android.view.Gravity; import android.view.Gravity;
@ -59,6 +61,14 @@ public class SaveAsTrackBottomSheetDialogFragment extends BottomSheetDialogFragm
if (portrait) { if (portrait) {
AndroidUtils.setBackground(getActivity(), mainView, nightMode, R.drawable.bg_bottom_menu_light, R.drawable.bg_bottom_menu_dark); AndroidUtils.setBackground(getActivity(), mainView, nightMode, R.drawable.bg_bottom_menu_light, R.drawable.bg_bottom_menu_dark);
} }
View textBox = mainView.findViewById(R.id.name_text_box);
if (nightMode) {
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));
}
}
final File dir = mapActivity.getMyApplication().getAppPath(IndexConstants.GPX_INDEX_DIR + "/map markers"); final File dir = mapActivity.getMyApplication().getAppPath(IndexConstants.GPX_INDEX_DIR + "/map markers");
if (!dir.exists()) { if (!dir.exists()) {
@ -75,7 +85,6 @@ public class SaveAsTrackBottomSheetDialogFragment extends BottomSheetDialogFragm
} }
final EditText nameEditText = (EditText) mainView.findViewById(R.id.name_edit_text); final EditText nameEditText = (EditText) mainView.findViewById(R.id.name_edit_text);
nameEditText.setText(displayedName); nameEditText.setText(displayedName);
View textBox = mainView.findViewById(R.id.name_text_box);
if (textBox instanceof OsmandTextFieldBoxes) { if (textBox instanceof OsmandTextFieldBoxes) {
((OsmandTextFieldBoxes) textBox).activate(true); ((OsmandTextFieldBoxes) textBox).activate(true);
} }

View file

@ -1097,7 +1097,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
final LayoutInflater inflater = mapActivity.getLayoutInflater(); final LayoutInflater inflater = mapActivity.getLayoutInflater();
final View view = inflater.inflate(R.layout.save_gpx_dialog, null); final View view = inflater.inflate(R.layout.save_gpx_dialog, null);
final EditText nameEt = (EditText) view.findViewById(R.id.gpx_name_et); final EditText nameEt = (EditText) view.findViewById(R.id.gpx_name_et);
final TextView fileExistsTv = (TextView) view.findViewById(R.id.file_exists_text_view); final TextView warningTextView = (TextView) view.findViewById(R.id.file_exists_text_view);
final SwitchCompat showOnMapToggle = (SwitchCompat) view.findViewById(R.id.toggle_show_on_map); final SwitchCompat showOnMapToggle = (SwitchCompat) view.findViewById(R.id.toggle_show_on_map);
showOnMapToggle.setChecked(true); showOnMapToggle.setChecked(true);
@ -1111,31 +1111,9 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
} }
nameEt.setText(displayedName); nameEt.setText(displayedName);
nameEt.setSelection(displayedName.length()); nameEt.setSelection(displayedName.length());
final boolean[] textChanged = new boolean[1]; final boolean[] textChanged = new boolean[1];
nameEt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
} AlertDialog.Builder builder = new AlertDialog.Builder(mapActivity)
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if (new File(dir, editable.toString() + GPX_SUFFIX).exists()) {
fileExistsTv.setVisibility(View.VISIBLE);
} else {
fileExistsTv.setVisibility(View.INVISIBLE);
}
textChanged[0] = true;
}
});
new AlertDialog.Builder(mapActivity)
.setTitle(R.string.enter_gpx_name) .setTitle(R.string.enter_gpx_name)
.setView(view) .setView(view)
.setPositiveButton(R.string.shared_string_save, new DialogInterface.OnClickListener() { .setPositiveButton(R.string.shared_string_save, new DialogInterface.OnClickListener() {
@ -1154,8 +1132,38 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
saveNewGpx(dir, fileName, showOnMapToggle.isChecked(), saveType, false); saveNewGpx(dir, fileName, showOnMapToggle.isChecked(), saveType, false);
} }
}) })
.setNegativeButton(R.string.shared_string_cancel, null) .setNegativeButton(R.string.shared_string_cancel, null);
.show(); final AlertDialog dialog = builder.create();
dialog.show();
nameEt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if (new File(dir, editable.toString() + GPX_SUFFIX).exists()) {
warningTextView.setVisibility(View.VISIBLE);
warningTextView.setText(R.string.file_with_name_already_exists);
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(true);
} else if (editable.toString().trim().isEmpty()) {
warningTextView.setVisibility(View.VISIBLE);
warningTextView.setText(R.string.enter_the_file_name);
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
} else {
warningTextView.setVisibility(View.INVISIBLE);
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(true);
}
textChanged[0] = true;
}
});
} }
} }
@ -1168,13 +1176,13 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
} }
private void saveGpx(final File dir, private void saveGpx(final File dir,
final String fileName, final String fileName,
final boolean showOnMap, final boolean showOnMap,
final GPXFile gpx, final GPXFile gpx,
final boolean openTrackActivity, final boolean openTrackActivity,
final NewGpxData.ActionType actionType, final NewGpxData.ActionType actionType,
final SaveType saveType, final SaveType saveType,
final boolean close) { final boolean close) {
new AsyncTask<Void, Void, String>() { new AsyncTask<Void, Void, String>() {

View file

@ -1,6 +1,8 @@
package net.osmand.plus.views.mapwidgets; package net.osmand.plus.views.mapwidgets;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.support.v4.content.ContextCompat;
import android.support.v4.graphics.drawable.DrawableCompat;
import android.support.v7.widget.SwitchCompat; import android.support.v7.widget.SwitchCompat;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
@ -417,6 +419,9 @@ public class MapInfoWidgetsFactory {
view.updateVisibility(switchCompat, topBarSwitchVisible); view.updateVisibility(switchCompat, topBarSwitchVisible);
if (topBarSwitchVisible) { if (topBarSwitchVisible) {
switchCompat.setChecked(topBarSwitchChecked); switchCompat.setChecked(topBarSwitchChecked);
if (topBarSwitchChecked) {
DrawableCompat.setTint(switchCompat.getTrackDrawable(), ContextCompat.getColor(switchCompat.getContext(),R.color.map_toolbar_switch_track_color));
}
} }
if (view.getShadowView() != null) { if (view.getShadowView() != null) {
view.getShadowView().setVisibility(View.VISIBLE); view.getShadowView().setVisibility(View.VISIBLE);